<!--
 -
 - 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.
 -
 -->
<div>
    <div class="portContainer" data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Port Attributes', open: true">

       <div class="clear name">
           <div class="formLabel-labelCell">Name:</div>
           <div class="nameValue"></div>
       </div>
       <div class="clear"></div>
       <div class="alignLeft">
           <div class="clear type">
               <div class="formLabel-labelCell">Port Type:</div>
               <div class="formValue-valueCell typeValue"></div>
           </div>
       </div>
        <div class="clear state">
           <div class="formLabel-labelCell">State:</div>
           <div class="formValue-valueCell stateValue"></div>
        </div>

        <div class="clear port">
           <div class="formLabel-labelCell">Port Number:</div>
           <div class="formValue-valueCell portValue"></div>
        </div>

        <div class="clear port">
            <div class="formLabel-labelCell">Bound Port Number:</div>
            <div class="formValue-valueCell boundPortValue"></div>
        </div>

        <div class="clear protocols">
           <div class="formLabel-labelCell">Protocols:</div>
           <div class="formValue-valueCell protocolsValue multiLineValue"></div>
        </div>

        <div class="clear authenticationProvider">
           <div class="formLabel-labelCell">Authentication Provider:</div>
           <div class="formValue-valueCell authenticationProviderValue"></div>
        </div>

        <div class="clear bindingAddress">
           <div class="formLabel-labelCell">Binding address:</div>
           <div class="formValue-valueCell bindingAddressValue"></div>
        </div>

        <div class="clear transports">
           <div class="formLabel-labelCell">Transports:</div>
           <div class="formValue-valueCell transportsValue multiLineValue"></div>
        </div>
        <div class="clear maxOpenConnections">
            <div class="formLabel-labelCell">Maximum number of connections:</div>
            <div class="formValue-valueCell maxOpenConnectionsValue"></div>
        </div>
        <div class="clear keyStore">
           <div class="formLabel-labelCell">Key Store:</div>
           <div class="formValue-valueCell keyStoreValue"></div>
        </div>

        <div class="clear needClientAuth">
           <div class="formLabel-labelCell">Need SSL Client Certificate:</div>
           <div class="formValue-valueCell needClientAuthValue"></div>
        </div>

        <div class="clear wantClientAuth">
           <div class="formLabel-labelCell">Want SSL Client Certificate:</div>
           <div class="formValue-valueCell wantClientAuthValue"></div>
        </div>

        <div class="clear">
            <div class="formLabel-labelCell">Client Certificate Recorder:</div>
            <div class="formValue-valueCell clientCertRecorderValue"></div>
        </div>

        <div class="clear trustStores">
           <div class="formLabel-labelCell">Trust Stores:</div>
           <div class="formValue-valueCell trustStoresValue multiLineValue"></div>
        </div>

        <div class="clear threadPoolMinimum">
            <div class="formLabel-labelCell">Minimum number of connection threads:</div>
            <div class="formValue-valueCell threadPoolMinimumValue"></div>
        </div>

        <div class="clear threadPoolMaximum">
            <div class="formLabel-labelCell">Maximum number of connection threads:</div>
            <div class="formValue-valueCell threadPoolMaximumValue"></div>
        </div>

        <div class="clear threadPoolSize">
            <div class="formLabel-labelCell">Number of connection threads:</div>
            <div class="formValue-valueCell threadPoolSizeValue"></div>
        </div>
        <div class="clear portAttributes"></div>
        <div class="clear"></div>
    </div>
    <div class="dijitDialogPaneActionBar">
        <button data-dojo-type="dijit.form.Button" class="updateTLSButton" type="button">Update TLS</button>
        <button data-dojo-type="dijit.form.Button" class="editPortButton" type="button">Edit</button>
        <button data-dojo-type="dijit.form.Button" class="deletePortButton" type="button">Delete</button>
    </div>
    <br/>
    <div class="portTypeSpecificDetails"></div>
</div>
