<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
    	  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>	
	<div class="adminPanel">
		<div class="adminPanelColumnTable">
			<span wicket:id="navigator">[dataview navigator]</span>
			<table class="adminListTable">
				<thead>
					<tr>
						<th class="ui-widget-header"><wicket:ommessage key="599" /></th>
						<th class="ui-widget-header"><wicket:ommessage key="600" /></th>
						<th class="ui-widget-header"><wicket:ommessage key="601" /></th>
						<th class="ui-widget-header"><wicket:ommessage key="602" /></th>
						<th class="ui-widget-header"><wicket:ommessage key="603" /></th>
						<th class="ui-widget-header"><wicket:ommessage key="1501" /></th>
					</tr>
				</thead>
				<tbody wicket:id="container" >
					<tr wicket:id="clientList">
						<td wicket:id="id"></td>
						<td wicket:id="login"></td>
						<td wicket:id="since"></td>
						<td wicket:id="scope"></td>
						<td><a wicket:id="kick"><wicket:ommessage key="603" /></a></td>
						<td wicket:id="server"></td>
					</tr>
				</tbody>
			</table>
		</div>
		<div class="adminPanelColumnForm">
			<table wicket:id="details" style="width: 450px;">
				<tr wicket:id="line"><td wicket:id="name"></td><td wicket:id="value"></td></tr>
			</table>
		</div>
	</div>
</wicket:panel>
</html>
