<!--

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

-->

<!-- configuration/ejbContainerGeneral.jsf -->


<!initPage
    setResourceBundle(key="i18n_ejbLite" bundle="org.glassfish.ejb-lite.admingui.Strings");
    setResourceBundle(key="help_ejbLite" bundle="org.glassfish.ejb-lite.admingui.Helplinks");
/>
<!composition template="/templates/default.layout"  guiTitle="$resource{i18n_ejbLite.headings.ejbSettings}" >
<!define name="content">
<event>
    <!beforeCreate
        setSessionAttribute(key="ejbContainerTabs" value="ejbSettingsTab");
        getRequestValue(key="configName" value=>$page{configName} default="server-config");
        setPageSessionAttribute(key="childType" value="ejb-container");
        setPageSessionAttribute(key="parentUrl", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}");
        setPageSessionAttribute(key="childType" value="ejb-container");
        setPageSessionAttribute(key="selfUrl", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}/ejb-container");
        setPageSessionAttribute(key="rest-api" value="true");

        gf.getEntityAttrs(endpoint="#{pageSession.selfUrl}.json", valueMap="#{pageSession.valueMap}");
        
        gf.restRequest(endpoint="#{pageSession.selfUrl}/property.json" method="GET" result="#{requestScope.propTable}");
        setPageSessionAttribute(key="tableList" value="#{requestScope.propTable.data.extraProperties.properties}");

        setPageSessionAttribute(key="selfPage" value="#{request.contextPath}/ejb-lite/configuration/ejbContainerGeneral.jsf?configName=#{pageSession.configName}");
        //set the following for including buttons.inc
        setPageSessionAttribute(key="edit" value="#{true}" );
        setPageSessionAttribute(key="showDefaultButton" value="#{true}" );
        setPageSessionAttribute(key="showCancelButton" value="#{false}" );
        setPageSessionAttribute(key="hasPropertySheet" value="#{true}" );
        setPageSessionAttribute(key="hasPropertyTable" value="#{true}" );
    />
    </event>

    <sun:form id="form1">
#include "/ejb-lite/configuration/ejbContainerTabs.inc"
#include "/common/shared/alertMsg.inc"
<sun:title id="propertyContentPage" title="$resource{i18n_ejbLite.headings.ejbSettings}" helpText="$resource{i18n_ejbLite.ejb.ejbSettingsInfo}" >
#include "/common/shared/editPageButtons.inc"
</sun:title>
     <!-- PropertySheet .... -->
     <sun:propertySheet id="propertySheet">
#include "/common/shared/configNameSection.inc"

         <!-- General Settings section -->
         <sun:propertySheetSection id="generalPropertySection">
             <sun:property id="SessionStoreProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.sessionStoreLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.sessionStoreHelp}">
                 <sun:textField id="SessionStore" columns="$int{65}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.sessionStore']}"  text="#{pageSession.valueMap['sessionStore']}" />
             </sun:property>
             <sun:property id="commitOptionProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.commitOptionLabel}">
                 <sun:radioButton id="optB"  name="commitOptGrp" label="$resource{i18n_ejbLite.ejbSettings.optB}" selected="#{pageSession.valueMap['commitOption']}" selectedValue="B"
                            onClick="document.getElementById('form1:option').value='B';"
                  />
                 <sun:helpInline id="optBHelpText" style="padding: 4pt" style="font-size: 8pt" text="$resource{i18n_ejbLite.ejbSettings.optBHelp}"/>
                 "<br />
                 <sun:radioButton id="optC"  name="commitOptGrp" label="$resource{i18n_ejbLite.ejbSettings.optC}" selected="#{pageSession.valueMap['commitOption']}" selectedValue="C"
                                  onClick="document.getElementById('form1:option').value='C';"
                  />
                 <sun:helpInline id="optCHelpText" style="padding: 4pt" style="font-size: 8pt" text="$resource{i18n_ejbLite.ejbSettings.optCHelp}"/>
                 "<br />
             </sun:property>
         </sun:propertySheetSection>
         <!-- Pool Settings section -->
         <sun:propertySheetSection id="poolSettingSection" label="$resource{i18n_ejbLite.ejbSettings.poolSettingsLabel}">
             <sun:property id="MinSizeProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.minSizeLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.minSizeHelp}">
                 <sun:textField id="MinSize" styleClass="integer"  columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.minSize']}" text="#{pageSession.valueMap['steadyPoolSize']}" />
                 <sun:staticText id="nobeans" style="padding: 8pt" text="$resource{i18n_ejbLite.ejb.NumBeans}"/>
             </sun:property>
             <sun:property id="MaxSizeProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.maxSizeLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.maxSizeHelp}">
                 <sun:textField id="MaxSize" styleClass="integer"  columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.maxSize']}" text="#{pageSession.valueMap['maxPoolSize']}" />
                 <sun:staticText id="nobeans" style="padding: 8pt" text="$resource{i18n_ejbLite.ejb.NumBeans}"/>
             </sun:property>
             <sun:property id="PoolResizeProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.poolResizeLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.poolResizeHelp}">
                 <sun:textField id="PoolResize" styleClass="integer"  columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.poolResize']}" text="#{pageSession.valueMap['poolResizeQuantity']}" />
                 <sun:staticText id="nobeans" style="padding: 8pt" text="$resource{i18n_ejbLite.ejb.NumBeans}"/>
             </sun:property>
             <sun:property id="TimeoutProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.timeoutLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.timeoutHelp}">
                 <sun:textField id="Timeout" styleClass="integer" columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.timeout']}" style="padding-bottom 8pt" text="#{pageSession.valueMap['poolIdleTimeoutInSeconds']}" />
                 <sun:staticText id="sec" style="padding: 8pt" text="$resource{i18n.common.Seconds}"/>
             </sun:property>
         </sun:propertySheetSection>
         <!-- Cache Settings section -->
         <sun:propertySheetSection id="cacheSettingSection" label="$resource{i18n_ejbLite.ejbSettings.cacheSettingsLabel}">
             <sun:property id="MaxCacheProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.maxCacheLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.maxCacheHelp}">
                 <sun:textField id="MaxCache" styleClass="integer"  columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.maxCache']}" text="#{pageSession.valueMap['maxCacheSize']}" />
                 <sun:staticText id="nobeans" style="padding: 8pt" text="$resource{i18n_ejbLite.ejb.NumBeans}"/>
             </sun:property>
             <sun:property id="CacheResizeProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.cacheReSizeLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.cacheReSizeHelp}">
                 <sun:textField id="CacheResize" styleClass="integer"  columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.cacheReSize']}" text="#{pageSession.valueMap['cacheResizeQuantity']}" />
             </sun:property>
             <sun:property id="RemTimoutProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.remTimoutLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.remTimoutHelp}">
                 <sun:textField id="RemTimout"styleClass="integer"   columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.remTimout']}" text="#{pageSession.valueMap['removalTimeoutInSeconds']}" />
                 <sun:staticText id="sec" style="padding: 8pt" text="$resource{i18n.common.Seconds}"/>
             </sun:property>
             <sun:property id="RemPolicyProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.remSelectionLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.remSelectionHelp}">
                 <sun:dropDown id="RemPolicy"
                    labels={"$resource{i18n_ejbLite.ejbSettings.removalSelection.nru}", "$resource{i18n_ejbLite.ejbSettings.removalSelection.fifo}", "$resource{i18n_ejbLite.ejbSettings.removalSelection.lru}" }
                    values={"nru", "fifo", "lru" }
                    selected="#{pageSession.valueMap['victimSelectionPolicy']}"  />
             </sun:property>
             <sun:property id="CacheIdleProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_ejbLite.ejbSettings.cacheIdleLabel}" helpText="$resource{i18n_ejbLite.ejbSettings.cacheIdleHelp}">
                 <sun:textField id="CacheIdle" styleClass="integer"  columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.ejbSettings.cacheIdle']}" text="#{pageSession.valueMap['cacheIdleTimeoutInSeconds']}" />
                 <sun:staticText id="sec" style="padding: 8pt" text="$resource{i18n.common.Seconds}"/>
             </sun:property>
         </sun:propertySheetSection>
     </sun:propertySheet>

#include "/common/shared/propertyDescTable.inc"
#include "/common/shared/editPageBottomButtons.inc"
               
	<sun:hidden id="helpKey" value="$resource{help_ejbLite.ejbContainerGeneral}" />
        <sun:hidden id="option" value="#{pageSession.valueMap['commitOption']}" />
    </sun:form>
    "<br/>
#include "/common/shared/changeButtonsJS.inc"
</define>
</composition>
