<!--

    Copyright (c) 2013, 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

-->

<sun:treeNode id="jndi"
    text="$resource{i18n.tree.jndi}"
    toolTip="$resource{i18n.tree.jndi}"
    url="/full/jndi.jsf"
    imageURL="/resource/full/images/jndi.gif"
    >

    <dynamicTreeNode id="customResources"
	    treeAdaptorClass="org.glassfish.admingui.common.tree.ListTreeAdaptor"
	    children="#{requestScope.children}"
	    childImageURL="/resource/full/images/jndi.gif"
	    childExpanded="false"
	    childURL="/full/customResourceEdit.jsf?name=#{$this{valueBinding}.text}"
	    text="$resource{i18n.tree.customResources}"
	    url="/full/customResources.jsf">
	<ui:event type="beforeCreate">
	    gf.restRequest(endpoint="#{sessionScope.REST_URL}/resources/custom-resource.json" method="get" result="#{requestScope.resp}");
	    setAttribute(key="children" value="#{requestScope.resp.data.extraProperties.childResources}");
	</ui:event>
        <!facet image>
            <sun:iconHyperlink id="treeIcon" icon="TREE_FOLDER" url="/full/customResources.jsf"  border="0" immediate="true" alt="$resource{i18n.tree.customResources}"/>
        </facet>
    </dynamicTreeNode>
    <dynamicTreeNode id="externalResources"
	    treeAdaptorClass="org.glassfish.admingui.common.tree.ListTreeAdaptor"
	    children="#{requestScope.children}"
	    childImageURL="/resource/full/images/jndi.gif"
	    childExpanded="false"
	    childURL="/full/externalResourceEdit.jsf?name=#{$this{valueBinding}.text}"
	    text="$resource{i18n.tree.externalResources}"
	    url="/full/externalResources.jsf">
	<ui:event type="beforeCreate">
	    gf.restRequest(endpoint="#{sessionScope.REST_URL}/resources/external-jndi-resource.json" method="get" result="#{requestScope.resp}");
	    setAttribute(key="children" value="#{requestScope.resp.data.extraProperties.childResources}");
	</ui:event>
        <!facet image>
            <sun:iconHyperlink id="treeIcon" icon="TREE_FOLDER" url="/full/externalResources.jsf"  border="0" immediate="true" alt="$resource{i18n.tree.externalResources}"/>
        </facet>
    </dynamicTreeNode>
 </sun:treeNode> 
