<!--

    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

-->

<!-- jca/jca.jsf -->

<!initPage 
        setResourceBundle(key="i18n" bundle="org.glassfish.admingui.core.Strings")
        setResourceBundle(key="i18njca" bundle="org.glassfish.jca.admingui.Strings")
        setResourceBundle(key="help_jca" bundle="org.glassfish.jca.admingui.Helplinks")
/>

<!composition template="/templates/default.layout"  guiTitle="$resource{i18njca.connectors.pageTitle}" >
<!define name="content">

            <sun:form id="resourcesForm"> 
                <sun:title 
                id="resourcesPageTitle" 
                title="$resource{i18njca.connectors.pageTitle}" 
                helpText="$resource{i18njca.connectors.pageTitleHelp}"
                />
                <sun:propertySheet>
                    <sun:propertySheetSection>
                        <sun:property>
                        <sun:hyperlink 
                            toolTip="$resource{i18n.tree.adminObjectResources.tooltip}"
                            url="/jca/adminObjectResources.jsf" >
                            <sun:image url="/resource/jca/images/connector.png" />
                            <sun:staticText text="$resource{i18n.tree.adminObjectResources}" />
                            </sun:hyperlink>
                        </sun:property>
                        <sun:property>
                        <sun:hyperlink 
                            toolTip="$resource{i18n.tree.connectorResources.tooltip}"
                            url="/jca/connectorResources.jsf" >
                            <sun:image url="/resource/jca/images/connector.png" />
                            <sun:staticText text="$resource{i18n.tree.connectorResources}" />
                            </sun:hyperlink>
                        </sun:property>
                        <sun:property>
                        <sun:hyperlink 
                            toolTip="$resource{i18n.tree.connectorConnectionPools.tooltip}"
                            url="/jca/connectorConnectionPools.jsf" >
                            <sun:image url="/resource/jca/images/connector.png" />
                            <sun:staticText text="$resource{i18n.tree.connectorConnectionPools}" />
                            </sun:hyperlink>
                        </sun:property>
                        <sun:property>
                        <sun:hyperlink
                            toolTip="$resource{i18n.tree.workSecurityMaps.tooltip}"
                            url="/jca/workSecurityMaps.jsf" >
                            <sun:image url="/resource/jca/images/connector.png" />
                            <sun:staticText text="$resource{i18n.tree.workSecurityMaps}" />
                            </sun:hyperlink>
                        </sun:property>
                    </sun:propertySheetSection>
                </sun:propertySheet>
                <sun:hidden id="helpKey" value="$resource{help_jca.connectors}" />
            </sun:form>           
</define>
</composition>

