<?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.
-->
<wicket:extend xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
    <h1><span wicket:id="package"></span> <small><span wicket:id="version"></span> details</small></h1>

    <div class="row-fluid">
        <div class="span4">
            <h2>Exporter</h2>
            <a wicket:id="exporterLink">
                <span wicket:id="exporterLabel"></span>
            </a>
        </div>
        <div class="span4">
            <h2>Package</h2>
            <span wicket:id="packageDet"></span>
        </div>
        <div class="span4">
            <h2>Importer</h2>
            <ul>
                <li wicket:id="importers">
                    <a wicket:id="importerLink">
                        <span wicket:id="importerLabel"></span>
                    </a>
                </li>
            </ul>
        </div>
    </div>
</wicket:extend>