<!--

    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!initPage
    setResourceBundle(key="i18njms" bundle="org.glassfish.jms.admingui.Strings");
    setResourceBundle(key="helpjms" bundle="org.glassfish.jms.admingui.Helplinks")
/>

<!composition template="/templates/default.layout"  guiTitle="$resource{i18njms.jms.ResourcesPageTitle}" >
<!define name="content">

<sun:form id="resourcesForm">
    <sun:title id="resourcesPageTitle" title="$resource{i18njms.jms.ResourcesPageTitle}"/>
    <sun:propertySheet>
        <sun:propertySheetSection>
            <sun:property>
                <sun:hyperlink toolTip="$resource{i18n.tree.connectionFactories}" url="/jms/jmsConnections.jsf" >
                    <sun:image url="#{request.contextPath}/resource/jms/images/tree_folder.gif" />
                    <sun:staticText text="$resource{i18n.tree.connectionFactories}" />
                </sun:hyperlink>
            </sun:property>
            <sun:property>
                <sun:hyperlink toolTip="$resource{i18n.tree.destinationResources}" url="/jms/jmsDestinations.jsf" >
                    <sun:image url="#{request.contextPath}/resource/jms/images/tree_folder.gif" />
                    <sun:staticText text="$resource{i18n.tree.destinationResources}" />
                </sun:hyperlink>
            </sun:property>
        </sun:propertySheetSection>
    </sun:propertySheet>
    <sun:hidden id="helpKey" value="$resource{helpjms.jmsResources}" />
</sun:form>
</define>
</composition>
