net.sourceforge.msscodefactory.cfinternet.v2_1.CFInternetSwing.CFInternetSwingSecSessionAttrJPanel.java Source code

Java tutorial

Introduction

Here is the source code for net.sourceforge.msscodefactory.cfinternet.v2_1.CFInternetSwing.CFInternetSwingSecSessionAttrJPanel.java

Source

// Description: Java 7 Swing Attribute JPanel implementation for SecSession.

/*
 *   CF Internet template model
 *
 *   Copyright (c) 2014 Mark Sobkow
 *   
 *      Licensed 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.
 *   
 * ***********************************************************************
 *
 *   Code manufactured by MSS Code Factory
 */

package net.sourceforge.msscodefactory.cfinternet.v2_1.CFInternetSwing;

import java.math.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import net.sourceforge.msscodefactory.cflib.v2_1.CFLib.*;
import net.sourceforge.msscodefactory.cflib.v2_1.CFLib.Swing.*;
import org.apache.commons.codec.binary.Base64;
import net.sourceforge.msscodefactory.cfinternet.v2_1.CFInternet.*;
import net.sourceforge.msscodefactory.cfinternet.v2_1.CFInternetObj.*;

/**
 *   CFInternetSwingSecSessionAttrJPanel Swing Attribute JPanel implementation
 *   for SecSession.
 */
public class CFInternetSwingSecSessionAttrJPanel extends CFJPanel
        implements ICFInternetSwingSecSessionJPanelCommon {
    protected ICFInternetSwingSchema swingSchema = null;
    boolean swingIsInitializing = true;

    protected class SecSessionUserJLabel extends JLabel {
        public SecSessionUserJLabel() {
            super();
            setText("Security User");
        }
    }

    protected class CallbackSecSessionUserChosen implements ICFInternetSwingSecUserChosen {
        public CallbackSecSessionUserChosen() {
        }

        public void choseSecUser(ICFInternetSecUserObj value) {
            Component cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                if (!((JInternalFrame) cont).isClosed()) {
                    if (swingReferenceContainerSecUser != null) {
                        ICFInternetSecSessionObj cur = getSwingFocusAsSecSession();
                        if (cur != null) {
                            ICFInternetSecSessionEditObj editObj = (ICFInternetSecSessionEditObj) cur.getEdit();
                            if (null != editObj) {
                                CFJPanel.PanelMode curMode = getPanelMode();
                                if ((curMode == CFJPanel.PanelMode.Add) || (curMode == CFJPanel.PanelMode.Edit)) {
                                    swingReferenceContainerSecUser.setReferencedObject(value);
                                    editObj.setRequiredContainerSecUser(value);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    protected class ActionViewSecSessionUserReference extends AbstractAction {
        public ActionViewSecSessionUserReference() {
            super();
            setEnabled(true);
        }

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
            if (focus != null) {
                ICFInternetSecSessionEditObj editObj = (ICFInternetSecSessionEditObj) focus.getEdit();
                if (editObj != null) {
                    focus = editObj;
                }
                JInternalFrame frame = null;
                Container cont;
                JDesktopPane desktop;
                ICFInternetSecUserObj referencedObj = focus.getRequiredContainerSecUser(swingIsInitializing);
                if (referencedObj != null) {
                    String classCode = referencedObj.getClassCode();
                    if ("SUSR".equals(classCode)) {
                        frame = swingSchema.getSecUserFactory().newViewEditJInternalFrame(referencedObj);
                        cont = getParent();
                        while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                            cont = cont.getParent();
                        }
                        if (cont != null) {
                            JInternalFrame myInternalFrame = (JInternalFrame) cont;
                            myInternalFrame.getDesktopPane().add(frame);
                            frame.setVisible(true);
                            frame.show();
                        }
                    } else {
                        throw CFLib.getDefaultExceptionFactory().newUnsupportedClassException(getClass(),
                                S_ProcName, "swingFocus", focus, "ICFInternetSecUserObj");
                    }
                }
            }
        }
    }

    protected class ActionPickSecSessionUserReference extends AbstractAction {
        public ActionPickSecSessionUserReference() {
            super();
            setEnabled(true);
        }

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            Container cont;
            JDesktopPane desktop;
            ICFInternetSchemaObj schemaObj = swingSchema.getSchema();
            ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
            ICFInternetSecSessionEditObj editObj = (ICFInternetSecSessionEditObj) focus.getEdit();
            if (editObj != null) {
                focus = editObj;
            }
            ICFInternetSecUserObj referencedObj = focus.getRequiredContainerSecUser(swingIsInitializing);
            java.util.List<ICFInternetSecUserObj> listOfSecUser = null;
            listOfSecUser = schemaObj.getSecUserTableObj().readAllSecUser();
            if (listOfSecUser == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "listOfSecUser");
            }
            Collection<ICFInternetSecUserObj> cltn = listOfSecUser;
            JInternalFrame frame = swingSchema.getSecUserFactory().newPickerJInternalFrame(referencedObj, null,
                    cltn, new CallbackSecSessionUserChosen());
            ((ICFInternetSwingSecUserJPanelCommon) frame).setPanelMode(CFJPanel.PanelMode.View);
            cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                JInternalFrame myInternalFrame = (JInternalFrame) cont;
                myInternalFrame.getDesktopPane().add(frame);
                frame.setVisible(true);
                frame.show();
            }
        }
    }

    protected class SecSessionUserCFJReferenceEditor extends CFJReferenceEditor {
        public SecSessionUserCFJReferenceEditor() {
            super(new ActionPickSecSessionUserReference(), new ActionViewSecSessionUserReference());
        }
    }

    protected class SecSessionProxyJLabel extends JLabel {
        public SecSessionProxyJLabel() {
            super();
            setText("Security Proxy User");
        }
    }

    protected class CallbackSecSessionProxyChosen implements ICFInternetSwingSecUserChosen {
        public CallbackSecSessionProxyChosen() {
        }

        public void choseSecUser(ICFInternetSecUserObj value) {
            Component cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                if (!((JInternalFrame) cont).isClosed()) {
                    if (swingReferenceParentSecProxy != null) {
                        ICFInternetSecSessionObj cur = getSwingFocusAsSecSession();
                        if (cur != null) {
                            ICFInternetSecSessionEditObj editObj = (ICFInternetSecSessionEditObj) cur.getEdit();
                            if (null != editObj) {
                                CFJPanel.PanelMode curMode = getPanelMode();
                                if ((curMode == CFJPanel.PanelMode.Add) || (curMode == CFJPanel.PanelMode.Edit)) {
                                    swingReferenceParentSecProxy.setReferencedObject(value);
                                    editObj.setRequiredParentSecProxy(value);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    protected class ActionViewSecSessionProxyReference extends AbstractAction {
        public ActionViewSecSessionProxyReference() {
            super();
            setEnabled(true);
        }

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
            if (focus != null) {
                ICFInternetSecSessionEditObj editObj = (ICFInternetSecSessionEditObj) focus.getEdit();
                if (editObj != null) {
                    focus = editObj;
                }
                JInternalFrame frame = null;
                Container cont;
                JDesktopPane desktop;
                ICFInternetSecUserObj referencedObj = focus.getRequiredParentSecProxy(swingIsInitializing);
                if (referencedObj != null) {
                    String classCode = referencedObj.getClassCode();
                    if ("SUSR".equals(classCode)) {
                        frame = swingSchema.getSecUserFactory().newViewEditJInternalFrame(referencedObj);
                        cont = getParent();
                        while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                            cont = cont.getParent();
                        }
                        if (cont != null) {
                            JInternalFrame myInternalFrame = (JInternalFrame) cont;
                            myInternalFrame.getDesktopPane().add(frame);
                            frame.setVisible(true);
                            frame.show();
                        }
                    } else {
                        throw CFLib.getDefaultExceptionFactory().newUnsupportedClassException(getClass(),
                                S_ProcName, "swingFocus", focus, "ICFInternetSecUserObj");
                    }
                }
            }
        }
    }

    protected class ActionPickSecSessionProxyReference extends AbstractAction {
        public ActionPickSecSessionProxyReference() {
            super();
            setEnabled(true);
        }

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            Container cont;
            JDesktopPane desktop;
            ICFInternetSchemaObj schemaObj = swingSchema.getSchema();
            ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
            ICFInternetSecSessionEditObj editObj = (ICFInternetSecSessionEditObj) focus.getEdit();
            if (editObj != null) {
                focus = editObj;
            }
            ICFInternetSecUserObj referencedObj = focus.getRequiredParentSecProxy(swingIsInitializing);
            java.util.List<ICFInternetSecUserObj> listOfSecUser = null;
            listOfSecUser = schemaObj.getSecUserTableObj().readAllSecUser();
            if (listOfSecUser == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "listOfSecUser");
            }
            Collection<ICFInternetSecUserObj> cltn = listOfSecUser;
            JInternalFrame frame = swingSchema.getSecUserFactory().newPickerJInternalFrame(referencedObj, null,
                    cltn, new CallbackSecSessionProxyChosen());
            ((ICFInternetSwingSecUserJPanelCommon) frame).setPanelMode(CFJPanel.PanelMode.View);
            cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                JInternalFrame myInternalFrame = (JInternalFrame) cont;
                myInternalFrame.getDesktopPane().add(frame);
                frame.setVisible(true);
                frame.show();
            }
        }
    }

    protected class SecSessionProxyCFJReferenceEditor extends CFJReferenceEditor {
        public SecSessionProxyCFJReferenceEditor() {
            super(new ActionPickSecSessionProxyReference(), new ActionViewSecSessionProxyReference());
        }
    }

    protected class SecSessionIdJLabel extends JLabel {
        public SecSessionIdJLabel() {
            super();
            setText("Security Session Id");
        }
    }

    protected class SecSessionIdJEditor extends CFJUuidEditor {
        public SecSessionIdJEditor() {
            super();
        }
    }

    protected class SecDevNameJLabel extends JLabel {
        public SecDevNameJLabel() {
            super();
            setText("Sesion Device Name");
        }
    }

    protected class SecDevNameJEditor extends CFJStringEditor {
        public SecDevNameJEditor() {
            super();
            setMaxLen(32);
        }
    }

    protected class StartJLabel extends JLabel {
        public StartJLabel() {
            super();
            setText("Start");
        }
    }

    protected class StartJEditor extends CFJTimestampEditor {
        public StartJEditor() {
            super();
        }
    }

    protected class FinishJLabel extends JLabel {
        public FinishJLabel() {
            super();
            setText("Finish");
        }
    }

    protected class FinishJEditor extends CFJTimestampEditor {
        public FinishJEditor() {
            super();
        }
    }

    protected ICFInternetSecUserObj swingContainerSecUserObj = null;
    protected SecSessionUserJLabel swingLabelContainerSecUser = null;
    protected SecSessionUserCFJReferenceEditor swingReferenceContainerSecUser = null;
    protected ICFInternetSecUserObj swingParentSecProxyObj = null;
    protected SecSessionProxyJLabel swingLabelParentSecProxy = null;
    protected SecSessionProxyCFJReferenceEditor swingReferenceParentSecProxy = null;
    protected SecSessionIdJLabel swingLabelSecSessionId = null;
    protected SecSessionIdJEditor swingEditorSecSessionId = null;
    protected SecDevNameJLabel swingLabelSecDevName = null;
    protected SecDevNameJEditor swingEditorSecDevName = null;
    protected StartJLabel swingLabelStart = null;
    protected StartJEditor swingEditorStart = null;
    protected FinishJLabel swingLabelFinish = null;
    protected FinishJEditor swingEditorFinish = null;

    public CFInternetSwingSecSessionAttrJPanel(ICFInternetSwingSchema argSchema,
            ICFInternetSecSessionObj argFocus) {
        super();
        JLabel label;
        JComponent compo;
        CFJReferenceEditor reference;
        final String S_ProcName = "construct-schema-focus";
        if (argSchema == null) {
            throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                    "argSchema");
        }
        // argFocus is optional; focus may be set later during execution as
        // conditions of the runtime change.
        swingSchema = argSchema;
        setSwingFocusAsSecSession(argFocus);
        final int spacing = 5;
        int y = spacing;
        final int height = 25;
        final int textheight = 80;
        final int vspacing = height + spacing;
        final int textvspacing = textheight + spacing;
        final int labelx = spacing;
        final int labelwidth = 200;
        final int fieldx = labelx + labelwidth + spacing;
        final int fieldwidth = 785;
        final int panelwidth = fieldx + fieldwidth + spacing;
        // temporary -- I think you have to have a panel bigger than the coordinates initially
        setSize(panelwidth, 100000);

        label = getSwingLabelContainerSecUser();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        reference = getSwingReferenceContainerSecUser();
        add(reference);
        reference.setBounds(fieldx, y, fieldwidth, height);
        y = y + vspacing;

        label = getSwingLabelParentSecProxy();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        reference = getSwingReferenceParentSecProxy();
        add(reference);
        reference.setBounds(fieldx, y, fieldwidth, height);
        y = y + vspacing;

        label = getSwingLabelSecSessionId();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorSecSessionId();
        add(compo);
        compo.setBounds(fieldx, y, fieldwidth, height);
        y = y + vspacing;

        label = getSwingLabelSecDevName();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorSecDevName();
        add(compo);
        compo.setBounds(fieldx, y, fieldwidth, height);
        y = y + vspacing;

        label = getSwingLabelStart();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorStart();
        add(compo);
        compo.setBounds(fieldx, y, fieldwidth, height);
        y = y + vspacing;

        label = getSwingLabelFinish();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorFinish();
        add(compo);
        compo.setBounds(fieldx, y, fieldwidth, height);
        y = y + vspacing;

        // Now we can set the proper size based on the fields and references populated
        setSize(panelwidth, y);
        Dimension pfsz = new Dimension(panelwidth, y);
        setPreferredSize(pfsz);
        Dimension min = new Dimension(400, y);
        setMinimumSize(min);
        populateFields();
        adjustComponentEnableStates();
        swingIsInitializing = false;
    }

    public ICFInternetSwingSchema getSwingSchema() {
        return (swingSchema);
    }

    public void setSwingFocus(ICFLibAnyObj value) {
        final String S_ProcName = "setSwingFocus";
        if ((value == null) || (value instanceof ICFInternetSecSessionObj)) {
            super.setSwingFocus(value);
        } else {
            throw CFLib.getDefaultExceptionFactory().newUnsupportedClassException(getClass(), S_ProcName, "value",
                    value, "ICFInternetSecSessionObj");
        }
        populateFields();
        adjustComponentEnableStates();
    }

    public ICFInternetSecSessionObj getSwingFocusAsSecSession() {
        return ((ICFInternetSecSessionObj) getSwingFocus());
    }

    public void setSwingFocusAsSecSession(ICFInternetSecSessionObj value) {
        setSwingFocus(value);
    }

    public ICFInternetSecUserObj getSwingContainerSecUserObj() {
        if (swingContainerSecUserObj == null) {
        }
        return (swingContainerSecUserObj);
    }

    public void setSwingContainerSecUserObj(ICFInternetSecUserObj value) {
        swingContainerSecUserObj = value;
    }

    public SecSessionUserJLabel getSwingLabelContainerSecUser() {
        if (swingLabelContainerSecUser == null) {
            swingLabelContainerSecUser = new SecSessionUserJLabel();
        }
        return (swingLabelContainerSecUser);
    }

    public SecSessionUserCFJReferenceEditor getSwingReferenceContainerSecUser() {
        if (swingReferenceContainerSecUser == null) {
            swingReferenceContainerSecUser = new SecSessionUserCFJReferenceEditor();
        }
        return (swingReferenceContainerSecUser);
    }

    public void setSwingReferenceContainerSecUser(SecSessionUserCFJReferenceEditor value) {
        swingReferenceContainerSecUser = value;
    }

    public ICFInternetSecUserObj getSwingParentSecProxyObj() {
        return (swingParentSecProxyObj);
    }

    public void setSwingParentSecProxyObj(ICFInternetSecUserObj value) {
        swingParentSecProxyObj = value;
    }

    public JLabel getSwingLabelParentSecProxy() {
        if (swingLabelParentSecProxy == null) {
            swingLabelParentSecProxy = new SecSessionProxyJLabel();
        }
        return (swingLabelParentSecProxy);
    }

    public CFJReferenceEditor getSwingReferenceParentSecProxy() {
        if (swingReferenceParentSecProxy == null) {
            swingReferenceParentSecProxy = new SecSessionProxyCFJReferenceEditor();
        }
        return (swingReferenceParentSecProxy);
    }

    public void setSwingReferenceParentSecProxy(SecSessionProxyCFJReferenceEditor value) {
        swingReferenceParentSecProxy = value;
    }

    public SecSessionIdJLabel getSwingLabelSecSessionId() {
        if (swingLabelSecSessionId == null) {
            swingLabelSecSessionId = new SecSessionIdJLabel();
        }
        return (swingLabelSecSessionId);
    }

    public void setSwingLabelSecSessionId(SecSessionIdJLabel value) {
        swingLabelSecSessionId = value;
    }

    public SecSessionIdJEditor getSwingEditorSecSessionId() {
        if (swingEditorSecSessionId == null) {
            swingEditorSecSessionId = new SecSessionIdJEditor();
        }
        return (swingEditorSecSessionId);
    }

    public void setSwingEditorSecSessionId(SecSessionIdJEditor value) {
        swingEditorSecSessionId = value;
    }

    public SecDevNameJLabel getSwingLabelSecDevName() {
        if (swingLabelSecDevName == null) {
            swingLabelSecDevName = new SecDevNameJLabel();
        }
        return (swingLabelSecDevName);
    }

    public void setSwingLabelSecDevName(SecDevNameJLabel value) {
        swingLabelSecDevName = value;
    }

    public SecDevNameJEditor getSwingEditorSecDevName() {
        if (swingEditorSecDevName == null) {
            swingEditorSecDevName = new SecDevNameJEditor();
        }
        return (swingEditorSecDevName);
    }

    public void setSwingEditorSecDevName(SecDevNameJEditor value) {
        swingEditorSecDevName = value;
    }

    public StartJLabel getSwingLabelStart() {
        if (swingLabelStart == null) {
            swingLabelStart = new StartJLabel();
        }
        return (swingLabelStart);
    }

    public void setSwingLabelStart(StartJLabel value) {
        swingLabelStart = value;
    }

    public StartJEditor getSwingEditorStart() {
        if (swingEditorStart == null) {
            swingEditorStart = new StartJEditor();
        }
        return (swingEditorStart);
    }

    public void setSwingEditorStart(StartJEditor value) {
        swingEditorStart = value;
    }

    public FinishJLabel getSwingLabelFinish() {
        if (swingLabelFinish == null) {
            swingLabelFinish = new FinishJLabel();
        }
        return (swingLabelFinish);
    }

    public void setSwingLabelFinish(FinishJLabel value) {
        swingLabelFinish = value;
    }

    public FinishJEditor getSwingEditorFinish() {
        if (swingEditorFinish == null) {
            swingEditorFinish = new FinishJEditor();
        }
        return (swingEditorFinish);
    }

    public void setSwingEditorFinish(FinishJEditor value) {
        swingEditorFinish = value;
    }

    public void doLayout() {
        JLabel label;
        JComponent compo;
        CFJReferenceEditor reference;
        Dimension dim;
        final int spacing = 5;
        int y = spacing;
        final int height = 25;
        final int textheight = 80;
        final int vspacing = height + spacing;
        final int textvspacing = textheight + spacing;
        final int labelx = spacing;
        final int labelwidth = 200;
        final int fieldx = labelx + labelwidth + spacing;
        final int fieldwidth = 1024;
        Dimension jpsz = getSize();
        int usefieldwidth = jpsz.width - 215;

        label = getSwingLabelContainerSecUser();
        label.setBounds(labelx, y, labelwidth, height);
        reference = getSwingReferenceContainerSecUser();
        reference.setBounds(fieldx, y, usefieldwidth, height);
        y = y + vspacing;

        label = getSwingLabelParentSecProxy();
        label.setBounds(labelx, y, labelwidth, height);
        reference = getSwingReferenceParentSecProxy();
        reference.setBounds(fieldx, y, usefieldwidth, height);
        y = y + vspacing;

        label = getSwingLabelSecSessionId();
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorSecSessionId();
        dim = compo.getMaximumSize();
        if (dim.width < usefieldwidth) {
            compo.setBounds(fieldx, y, dim.width, height);
        } else {
            compo.setBounds(fieldx, y, fieldwidth, height);
        }
        y = y + vspacing;

        label = getSwingLabelSecDevName();
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorSecDevName();
        dim = compo.getMaximumSize();
        if (dim.width < usefieldwidth) {
            compo.setBounds(fieldx, y, dim.width, height);
        } else {
            compo.setBounds(fieldx, y, fieldwidth, height);
        }
        y = y + vspacing;

        label = getSwingLabelStart();
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorStart();
        dim = compo.getMaximumSize();
        if (dim.width < usefieldwidth) {
            compo.setBounds(fieldx, y, dim.width, height);
        } else {
            compo.setBounds(fieldx, y, fieldwidth, height);
        }
        y = y + vspacing;

        label = getSwingLabelFinish();
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorFinish();
        dim = compo.getMaximumSize();
        if (dim.width < usefieldwidth) {
            compo.setBounds(fieldx, y, dim.width, height);
        } else {
            compo.setBounds(fieldx, y, fieldwidth, height);
        }
        y = y + vspacing;

    }

    public void populateFields() {
        ICFInternetSecSessionObj popObj;
        ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
        if (focus != null) {
            popObj = (ICFInternetSecSessionObj) (focus.getEdit());
            if (popObj == null) {
                popObj = focus;
            }
        } else {
            popObj = null;
        }
        if (getPanelMode() == CFJPanel.PanelMode.Unknown) {
            popObj = null;
        }
        if (popObj == null) {
            swingContainerSecUserObj = null;
        } else {
            swingContainerSecUserObj = popObj.getRequiredContainerSecUser(swingIsInitializing);
        }
        if (swingReferenceContainerSecUser != null) {
            swingReferenceContainerSecUser.setReferencedObject(swingContainerSecUserObj);
        }

        if (popObj == null) {
            swingParentSecProxyObj = null;
        } else {
            swingParentSecProxyObj = popObj.getRequiredParentSecProxy(swingIsInitializing);
        }
        if (swingReferenceParentSecProxy != null) {
            swingReferenceParentSecProxy.setReferencedObject(swingParentSecProxyObj);
        }

        if (popObj == null) {
            getSwingEditorSecSessionId().setUuidValue(null);
        } else {
            getSwingEditorSecSessionId().setUuidValue(popObj.getRequiredSecSessionId());
        }

        if (popObj == null) {
            getSwingEditorSecDevName().setStringValue(null);
        } else {
            getSwingEditorSecDevName().setStringValue(popObj.getOptionalSecDevName());
        }

        if (popObj == null) {
            getSwingEditorStart().setTimestampValue(null);
        } else {
            getSwingEditorStart().setTimestampValue(popObj.getRequiredStart());
        }

        if (popObj == null) {
            getSwingEditorFinish().setTimestampValue(null);
        } else {
            getSwingEditorFinish().setTimestampValue(popObj.getOptionalFinish());
        }
    }

    public void postFields() {
        final String S_ProcName = "postFields";
        ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
        ICFInternetSecSessionEditObj editObj;
        if (focus != null) {
            editObj = (ICFInternetSecSessionEditObj) (focus.getEdit());
        } else {
            editObj = null;
        }
        if (editObj == null) {
            throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                    "Panel is unfocused or is not editing the focus object");
        }
        // You are not allowed to edit the Container or Owner references, so they're not retrieved

        swingParentSecProxyObj = (ICFInternetSecUserObj) (swingReferenceParentSecProxy.getReferencedObject());
        editObj.setRequiredParentSecProxy(swingParentSecProxyObj);

        editObj.setOptionalSecDevName(getSwingEditorSecDevName().getStringValue());

        editObj.setRequiredStart(getSwingEditorStart().getTimestampValue());

        editObj.setOptionalFinish(getSwingEditorFinish().getTimestampValue());
    }

    public void setPanelMode(CFJPanel.PanelMode value) {
        final String S_ProcName = "setPanelMode";
        CFJPanel.PanelMode oldValue = getPanelMode();
        if (oldValue == value) {
            return;
        }
        ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
        if ((value != CFJPanel.PanelMode.Unknown) && (value != CFJPanel.PanelMode.View)) {
            if (focus == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "swingFocus");
            }
        }
        ICFInternetSecSessionEditObj editObj;
        if (focus != null) {
            editObj = (ICFInternetSecSessionEditObj) focus.getEdit();
        } else {
            editObj = null;
        }
        switch (value) {
        case Unknown:
            switch (oldValue) {
            case Unknown:
                break;
            default:
                if (editObj != null) {
                    editObj.endEdit();
                }
                break;
            }
            break;
        case Add:
            switch (oldValue) {
            case Unknown:
            case Add:
            case View:
                if (editObj == null) {
                    if (focus != null) {
                        if (!focus.getIsNew()) {
                            throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                    "Transitioning to PanelMode Add requires Focus.getIsNew() to be true");
                        }
                        editObj = (ICFInternetSecSessionEditObj) focus.beginEdit();
                        if (editObj == null) {
                            throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                    "Expected beginEdit() to return a new edition of the focus object");
                        }
                    } else {
                        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                                "focus");
                    }
                }
                break;
            case Edit:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode Edit to Add");
            case Update:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode Update to Add");
            case Delete:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode Delete to Add");
            default:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode default to Add");
            }
            break;
        case View:
            switch (oldValue) {
            case Unknown:
                break;
            case View:
                break;
            case Edit:
                break;
            case Update:
                break;
            case Delete:
                break;
            default:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode " + oldValue + " to View");
            }
            if (editObj != null) {
                editObj.endEdit();
            }
            break;
        case Edit:
            switch (oldValue) {
            case Unknown:
                if (editObj == null) {
                    editObj = (ICFInternetSecSessionEditObj) focus.beginEdit();
                    if (editObj == null) {
                        throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                "Expected beginEdit() to return a new edition of the focus object");
                    }
                }
                break;
            case View:
                if (editObj == null) {
                    editObj = (ICFInternetSecSessionEditObj) focus.beginEdit();
                    if (editObj == null) {
                        throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                "Expected beginEdit() to return a new edition of the focus object");
                    }
                }
                break;
            case Edit:
                if (editObj == null) {
                    editObj = (ICFInternetSecSessionEditObj) focus.beginEdit();
                    if (editObj == null) {
                        throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                "Expected beginEdit() to return a new edition of the focus object");
                    }
                }
                break;
            default:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode " + oldValue + " to Edit");
            }
            break;
        case Update:
            if ((oldValue != CFJPanel.PanelMode.Edit) && (oldValue != CFJPanel.PanelMode.Add)) {
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition from mode " + oldValue + " to Update");
            }
            super.setPanelMode(value);
            if (editObj != null) {
                postFields();
                if (editObj.getIsNew()) {
                    focus = (ICFInternetSecSessionObj) editObj.create();
                    setSwingFocus(focus);
                } else {
                    editObj.update();
                }
                editObj.endEdit();
                editObj = null;
            }
            setPanelMode(CFJPanel.PanelMode.View);
            break;
        case Delete:
            switch (oldValue) {
            case View:
                if (focus != null) {
                    if (editObj == null) {
                        editObj = (ICFInternetSecSessionEditObj) focus.beginEdit();
                        if (editObj == null) {
                            throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                    "Expected beginEdit() to return a new edition of the focus object");
                        }
                    }
                }
                break;
            case Edit:
                if (focus != null) {
                    if (editObj == null) {
                        editObj = (ICFInternetSecSessionEditObj) focus.beginEdit();
                        if (editObj == null) {
                            throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                    "Expected beginEdit() to return a new edition of the focus object");
                        }
                    }
                }
                break;
            case Update:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode Update to Delete");
            case Delete:
                if (editObj == null) {
                    editObj = (ICFInternetSecSessionEditObj) focus.beginEdit();
                    if (editObj == null) {
                        throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                                "Expected beginEdit() to return a new edition of the focus object");
                    }
                }
                break;
            default:
                throw CFLib.getDefaultExceptionFactory().newUsageException(getClass(), S_ProcName,
                        "Cannot transition PanelMode " + oldValue + " to Delete");
            }
            editObj.delete();
            editObj.endEdit();
            setSwingFocus(null);
            setPanelMode(CFJPanel.PanelMode.Unknown);
            break;
        default:
            switch (oldValue) {
            case Unknown:
                break;
            default:
                if (editObj != null) {
                    editObj.endEdit();
                }
                break;
            }
            break;
        }
        super.setPanelMode(value);
        populateFields();
        adjustComponentEnableStates();
    }

    public void adjustComponentEnableStates() {
        CFJPanel.PanelMode mode = getPanelMode();
        boolean isEditing;
        switch (mode) {
        case Unknown:
        case View:
        case Delete:
            isEditing = false;
            break;
        case Add:
        case Edit:
        case Update:
            isEditing = true;
            break;
        default:
            isEditing = false;
            break;
        }
        if (isEditing) {
            ICFInternetSecSessionObj focus = getSwingFocusAsSecSession();
            if (focus == null) {
                isEditing = false;
            } else if (null == focus.getEdit()) {
                isEditing = false;
            }
        }
        if (swingReferenceContainerSecUser != null) {
            swingReferenceContainerSecUser.setEnabled(false);
        }
        if (swingReferenceParentSecProxy != null) {
            swingReferenceParentSecProxy.setEnabled(isEditing);
        }
        if (swingEditorSecSessionId != null) {
            swingEditorSecSessionId.setEnabled(false);
        }
        if (swingEditorSecDevName != null) {
            swingEditorSecDevName.setEnabled(isEditing);
        }
        if (swingEditorStart != null) {
            swingEditorStart.setEnabled(isEditing);
        }
        if (swingEditorFinish != null) {
            swingEditorFinish.setEnabled(isEditing);
        }
    }
}