net.sourceforge.msscodefactory.cfasterisk.v2_4.CFAsteriskSwing.CFAsteriskSwingSecGroupFormAttrJPanel.java Source code

Java tutorial

Introduction

Here is the source code for net.sourceforge.msscodefactory.cfasterisk.v2_4.CFAsteriskSwing.CFAsteriskSwingSecGroupFormAttrJPanel.java

Source

// Description: Java 8 Swing Attribute JPanel implementation for SecGroupForm.

/*
 *   Code Factory Asterisk 11 Configuration Model
 *
 *   Copyright (c) 2014-2015 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.
 *   
 */

package net.sourceforge.msscodefactory.cfasterisk.v2_4.CFAsteriskSwing;

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_3.CFLib.*;
import net.sourceforge.msscodefactory.cflib.v2_3.CFLib.Swing.*;
import org.apache.commons.codec.binary.Base64;
import net.sourceforge.msscodefactory.cfsecurity.v2_4.CFSecurity.*;
import net.sourceforge.msscodefactory.cfinternet.v2_4.CFInternet.*;
import net.sourceforge.msscodefactory.cfasterisk.v2_4.CFAsterisk.*;
import net.sourceforge.msscodefactory.cfsecurity.v2_4.CFSecurityObj.*;
import net.sourceforge.msscodefactory.cfinternet.v2_4.CFInternetObj.*;
import net.sourceforge.msscodefactory.cfasterisk.v2_4.CFAsteriskObj.*;

/**
 *   CFAsteriskSwingSecGroupFormAttrJPanel Swing Attribute JPanel implementation
 *   for SecGroupForm.
 */
public class CFAsteriskSwingSecGroupFormAttrJPanel extends CFJPanel
        implements ICFAsteriskSwingSecGroupFormJPanelCommon {
    protected ICFAsteriskSwingSchema swingSchema = null;
    boolean swingIsInitializing = true;

    protected class SecGroupFormClusterJLabel extends JLabel {
        public SecGroupFormClusterJLabel() {
            super();
            setText("Cluster");
        }
    }

    protected class CallbackSecGroupFormClusterChosen implements ICFAsteriskSwingClusterChosen {
        public CallbackSecGroupFormClusterChosen() {
        }

        public void choseCluster(ICFSecurityClusterObj value) {
            Component cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                if (!((JInternalFrame) cont).isClosed()) {
                    if (swingReferenceOwnerCluster != null) {
                        ICFSecuritySecGroupFormObj cur = getSwingFocusAsSecGroupForm();
                        if (cur != null) {
                            ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) cur.getEdit();
                            if (null != editObj) {
                                CFJPanel.PanelMode curMode = getPanelMode();
                                if ((curMode == CFJPanel.PanelMode.Add) || (curMode == CFJPanel.PanelMode.Edit)) {
                                    swingReferenceOwnerCluster.setReferencedObject(value);
                                    editObj.setRequiredOwnerCluster(value);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            if (focus != null) {
                ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) focus.getEdit();
                if (editObj != null) {
                    focus = editObj;
                }
                JInternalFrame frame = null;
                Container cont;
                JDesktopPane desktop;
                ICFAsteriskClusterObj referencedObj = (ICFAsteriskClusterObj) focus
                        .getRequiredOwnerCluster(swingIsInitializing);
                if (referencedObj != null) {
                    String classCode = referencedObj.getClassCode();
                    if ("CLUS".equals(classCode)) {
                        frame = swingSchema.getClusterFactory().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, "ICFAsteriskClusterObj");
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            Container cont;
            JDesktopPane desktop;
            ICFAsteriskSchemaObj schemaObj = swingSchema.getSchema();
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            ICFSecuritySecGroupFormEditObj editObj = (ICFSecuritySecGroupFormEditObj) focus.getEdit();
            if (editObj != null) {
                focus = editObj;
            }
            ICFAsteriskClusterObj referencedObj = (ICFAsteriskClusterObj) focus
                    .getRequiredOwnerCluster(swingIsInitializing);
            java.util.List<ICFSecurityClusterObj> listOfCluster = null;
            listOfCluster = schemaObj.getClusterTableObj().readAllCluster();
            if (listOfCluster == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "listOfCluster");
            }
            Collection<ICFSecurityClusterObj> cltn = listOfCluster;
            JInternalFrame frame = swingSchema.getClusterFactory().newPickerJInternalFrame(referencedObj, null,
                    cltn, new CallbackSecGroupFormClusterChosen());
            ((ICFAsteriskSwingClusterJPanelCommon) 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 SecGroupFormClusterCFJReferenceEditor extends CFJReferenceEditor {
        public SecGroupFormClusterCFJReferenceEditor() {
            super(new ActionPickSecGroupFormClusterReference(), new ActionViewSecGroupFormClusterReference());
        }
    }

    protected class SecGroupFormGroupJLabel extends JLabel {
        public SecGroupFormGroupJLabel() {
            super();
            setText("Group");
        }
    }

    protected class CallbackSecGroupFormGroupChosen implements ICFAsteriskSwingSecGroupChosen {
        public CallbackSecGroupFormGroupChosen() {
        }

        public void choseSecGroup(ICFSecuritySecGroupObj value) {
            Component cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                if (!((JInternalFrame) cont).isClosed()) {
                    if (swingReferenceContainerGroup != null) {
                        ICFSecuritySecGroupFormObj cur = getSwingFocusAsSecGroupForm();
                        if (cur != null) {
                            ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) cur.getEdit();
                            if (null != editObj) {
                                CFJPanel.PanelMode curMode = getPanelMode();
                                if ((curMode == CFJPanel.PanelMode.Add) || (curMode == CFJPanel.PanelMode.Edit)) {
                                    swingReferenceContainerGroup.setReferencedObject(value);
                                    editObj.setRequiredContainerGroup(value);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            if (focus != null) {
                ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) focus.getEdit();
                if (editObj != null) {
                    focus = editObj;
                }
                JInternalFrame frame = null;
                Container cont;
                JDesktopPane desktop;
                ICFAsteriskSecGroupObj referencedObj = (ICFAsteriskSecGroupObj) focus
                        .getRequiredContainerGroup(swingIsInitializing);
                if (referencedObj != null) {
                    String classCode = referencedObj.getClassCode();
                    if ("SGRP".equals(classCode)) {
                        frame = swingSchema.getSecGroupFactory().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, "ICFAsteriskSecGroupObj");
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            Container cont;
            JDesktopPane desktop;
            ICFAsteriskSchemaObj schemaObj = swingSchema.getSchema();
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            ICFSecuritySecGroupFormEditObj editObj = (ICFSecuritySecGroupFormEditObj) focus.getEdit();
            if (editObj != null) {
                focus = editObj;
            }
            ICFAsteriskSecGroupObj referencedObj = (ICFAsteriskSecGroupObj) focus
                    .getRequiredContainerGroup(swingIsInitializing);
            java.util.List<ICFSecuritySecGroupObj> listOfSecGroup = null;
            CFSecurityAuthorization auth = schemaObj.getAuthorization();
            long containingClusterId = auth.getSecClusterId();
            listOfSecGroup = schemaObj.getSecGroupTableObj().readSecGroupByClusterIdx(containingClusterId);
            if (listOfSecGroup == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "listOfSecGroup");
            }
            Collection<ICFSecuritySecGroupObj> cltn = listOfSecGroup;
            JInternalFrame frame = swingSchema.getSecGroupFactory().newPickerJInternalFrame(referencedObj, null,
                    cltn, new CallbackSecGroupFormGroupChosen());
            ((ICFAsteriskSwingSecGroupJPanelCommon) 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 SecGroupFormGroupCFJReferenceEditor extends CFJReferenceEditor {
        public SecGroupFormGroupCFJReferenceEditor() {
            super(new ActionPickSecGroupFormGroupReference(), new ActionViewSecGroupFormGroupReference());
        }
    }

    protected class SecGroupFormAppJLabel extends JLabel {
        public SecGroupFormAppJLabel() {
            super();
            setText("App");
        }
    }

    protected class CallbackSecGroupFormAppChosen implements ICFAsteriskSwingSecAppChosen {
        public CallbackSecGroupFormAppChosen() {
        }

        public void choseSecApp(ICFSecuritySecAppObj value) {
            Component cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                if (!((JInternalFrame) cont).isClosed()) {
                    if (swingReferenceParentApp != null) {
                        ICFSecuritySecGroupFormObj cur = getSwingFocusAsSecGroupForm();
                        if (cur != null) {
                            ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) cur.getEdit();
                            if (null != editObj) {
                                CFJPanel.PanelMode curMode = getPanelMode();
                                if ((curMode == CFJPanel.PanelMode.Add) || (curMode == CFJPanel.PanelMode.Edit)) {
                                    swingReferenceParentApp.setReferencedObject(value);
                                    editObj.setRequiredParentApp(value);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            if (focus != null) {
                ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) focus.getEdit();
                if (editObj != null) {
                    focus = editObj;
                }
                JInternalFrame frame = null;
                Container cont;
                JDesktopPane desktop;
                ICFAsteriskSecAppObj referencedObj = (ICFAsteriskSecAppObj) focus
                        .getRequiredParentApp(swingIsInitializing);
                if (referencedObj != null) {
                    String classCode = referencedObj.getClassCode();
                    if ("SAPP".equals(classCode)) {
                        frame = swingSchema.getSecAppFactory().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, "ICFAsteriskSecAppObj");
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            Container cont;
            JDesktopPane desktop;
            ICFAsteriskSchemaObj schemaObj = swingSchema.getSchema();
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            ICFSecuritySecGroupFormEditObj editObj = (ICFSecuritySecGroupFormEditObj) focus.getEdit();
            if (editObj != null) {
                focus = editObj;
            }
            ICFAsteriskSecAppObj referencedObj = (ICFAsteriskSecAppObj) focus
                    .getRequiredParentApp(swingIsInitializing);
            java.util.List<ICFSecuritySecAppObj> listOfSecApp = null;
            CFSecurityAuthorization auth = schemaObj.getAuthorization();
            long containingClusterId = auth.getSecClusterId();
            listOfSecApp = schemaObj.getSecAppTableObj().readSecAppByClusterIdx(containingClusterId);
            if (listOfSecApp == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "listOfSecApp");
            }
            Collection<ICFSecuritySecAppObj> cltn = listOfSecApp;
            JInternalFrame frame = swingSchema.getSecAppFactory().newPickerJInternalFrame(referencedObj, null, cltn,
                    new CallbackSecGroupFormAppChosen());
            ((ICFAsteriskSwingSecAppJPanelCommon) 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 SecGroupFormAppCFJReferenceEditor extends CFJReferenceEditor {
        public SecGroupFormAppCFJReferenceEditor() {
            super(new ActionPickSecGroupFormAppReference(), new ActionViewSecGroupFormAppReference());
        }
    }

    protected class SecGroupFormFormJLabel extends JLabel {
        public SecGroupFormFormJLabel() {
            super();
            setText("Form");
        }
    }

    protected class CallbackSecGroupFormFormChosen implements ICFAsteriskSwingSecFormChosen {
        public CallbackSecGroupFormFormChosen() {
        }

        public void choseSecForm(ICFSecuritySecFormObj value) {
            Component cont = getParent();
            while ((cont != null) && (!(cont instanceof JInternalFrame))) {
                cont = cont.getParent();
            }
            if (cont != null) {
                if (!((JInternalFrame) cont).isClosed()) {
                    if (swingReferenceParentForm != null) {
                        ICFSecuritySecGroupFormObj cur = getSwingFocusAsSecGroupForm();
                        if (cur != null) {
                            ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) cur.getEdit();
                            if (null != editObj) {
                                CFJPanel.PanelMode curMode = getPanelMode();
                                if ((curMode == CFJPanel.PanelMode.Add) || (curMode == CFJPanel.PanelMode.Edit)) {
                                    swingReferenceParentForm.setReferencedObject(value);
                                    editObj.setRequiredParentForm(value);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            if (focus != null) {
                ICFSecuritySecGroupFormEditObj editObj = (ICFAsteriskSecGroupFormEditObj) focus.getEdit();
                if (editObj != null) {
                    focus = editObj;
                }
                JInternalFrame frame = null;
                Container cont;
                JDesktopPane desktop;
                ICFAsteriskSecFormObj referencedObj = (ICFAsteriskSecFormObj) focus
                        .getRequiredParentForm(swingIsInitializing);
                if (referencedObj != null) {
                    String classCode = referencedObj.getClassCode();
                    if ("SFRM".equals(classCode)) {
                        frame = swingSchema.getSecFormFactory().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, "ICFAsteriskSecFormObj");
                    }
                }
            }
        }
    }

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

        public void actionPerformed(ActionEvent e) {
            final String S_ProcName = "actionPerformed";
            Container cont;
            JDesktopPane desktop;
            ICFAsteriskSchemaObj schemaObj = swingSchema.getSchema();
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            ICFSecuritySecGroupFormEditObj editObj = (ICFSecuritySecGroupFormEditObj) focus.getEdit();
            if (editObj != null) {
                focus = editObj;
            }
            ICFAsteriskSecFormObj referencedObj = (ICFAsteriskSecFormObj) focus
                    .getRequiredParentForm(swingIsInitializing);
            java.util.List<ICFSecuritySecFormObj> listOfSecForm = null;
            Collection<ICFSecuritySecFormObj> cltn = null;
            JInternalFrame frame = swingSchema.getSecFormFactory().newPickerJInternalFrame(referencedObj, null,
                    cltn, new CallbackSecGroupFormFormChosen());
            ((ICFAsteriskSwingSecFormJPanelCommon) 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 SecGroupFormFormCFJReferenceEditor extends CFJReferenceEditor {
        public SecGroupFormFormCFJReferenceEditor() {
            super(new ActionPickSecGroupFormFormReference(), new ActionViewSecGroupFormFormReference());
        }
    }

    protected class SecGroupFormIdJLabel extends JLabel {
        public SecGroupFormIdJLabel() {
            super();
            setText("Security Group Form Id");
        }
    }

    protected class SecGroupFormIdJEditor extends CFJInt64Editor {
        public SecGroupFormIdJEditor() {
            super();
            setMinValue(0L);
        }
    }

    protected ICFAsteriskClusterObj swingOwnerClusterObj = null;
    protected SecGroupFormClusterJLabel swingLabelOwnerCluster = null;
    protected SecGroupFormClusterCFJReferenceEditor swingReferenceOwnerCluster = null;
    protected ICFAsteriskSecGroupObj swingContainerGroupObj = null;
    protected SecGroupFormGroupJLabel swingLabelContainerGroup = null;
    protected SecGroupFormGroupCFJReferenceEditor swingReferenceContainerGroup = null;
    protected ICFAsteriskSecAppObj swingParentAppObj = null;
    protected SecGroupFormAppJLabel swingLabelParentApp = null;
    protected SecGroupFormAppCFJReferenceEditor swingReferenceParentApp = null;
    protected ICFAsteriskSecFormObj swingParentFormObj = null;
    protected SecGroupFormFormJLabel swingLabelParentForm = null;
    protected SecGroupFormFormCFJReferenceEditor swingReferenceParentForm = null;
    protected SecGroupFormIdJLabel swingLabelSecGroupFormId = null;
    protected SecGroupFormIdJEditor swingEditorSecGroupFormId = null;

    public CFAsteriskSwingSecGroupFormAttrJPanel(ICFAsteriskSwingSchema argSchema,
            ICFSecuritySecGroupFormObj 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;
        setSwingFocusAsSecGroupForm(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 = getSwingLabelOwnerCluster();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        reference = getSwingReferenceOwnerCluster();
        add(reference);
        reference.setBounds(fieldx, y, fieldwidth, height);
        y = y + vspacing;

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

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

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

        label = getSwingLabelSecGroupFormId();
        add(label);
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorSecGroupFormId();
        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 ICFAsteriskSwingSchema getSwingSchema() {
        return (swingSchema);
    }

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

    public ICFSecuritySecGroupFormObj getSwingFocusAsSecGroupForm() {
        return ((ICFSecuritySecGroupFormObj) getSwingFocus());
    }

    public void setSwingFocusAsSecGroupForm(ICFSecuritySecGroupFormObj value) {
        setSwingFocus(value);
    }

    public ICFAsteriskClusterObj getSwingOwnerClusterObj() {
        return (swingOwnerClusterObj);
    }

    public void setSwingOwnerClusterObj(ICFAsteriskClusterObj value) {
        swingOwnerClusterObj = value;
    }

    public SecGroupFormClusterJLabel getSwingLabelOwnerCluster() {
        if (swingLabelOwnerCluster == null) {
            swingLabelOwnerCluster = new SecGroupFormClusterJLabel();
        }
        return (swingLabelOwnerCluster);
    }

    public CFJReferenceEditor getSwingReferenceOwnerCluster() {
        if (swingReferenceOwnerCluster == null) {
            swingReferenceOwnerCluster = new SecGroupFormClusterCFJReferenceEditor();
        }
        return (swingReferenceOwnerCluster);
    }

    public void setSwingReferenceOwnerCluster(SecGroupFormClusterCFJReferenceEditor value) {
        swingReferenceOwnerCluster = value;
    }

    public ICFAsteriskSecGroupObj getSwingContainerGroupObj() {
        if (swingContainerGroupObj == null) {
        }
        return (swingContainerGroupObj);
    }

    public void setSwingContainerGroupObj(ICFAsteriskSecGroupObj value) {
        swingContainerGroupObj = value;
    }

    public SecGroupFormGroupJLabel getSwingLabelContainerGroup() {
        if (swingLabelContainerGroup == null) {
            swingLabelContainerGroup = new SecGroupFormGroupJLabel();
        }
        return (swingLabelContainerGroup);
    }

    public SecGroupFormGroupCFJReferenceEditor getSwingReferenceContainerGroup() {
        if (swingReferenceContainerGroup == null) {
            swingReferenceContainerGroup = new SecGroupFormGroupCFJReferenceEditor();
        }
        return (swingReferenceContainerGroup);
    }

    public void setSwingReferenceContainerGroup(SecGroupFormGroupCFJReferenceEditor value) {
        swingReferenceContainerGroup = value;
    }

    public ICFAsteriskSecAppObj getSwingParentAppObj() {
        return (swingParentAppObj);
    }

    public void setSwingParentAppObj(ICFAsteriskSecAppObj value) {
        swingParentAppObj = value;
    }

    public JLabel getSwingLabelParentApp() {
        if (swingLabelParentApp == null) {
            swingLabelParentApp = new SecGroupFormAppJLabel();
        }
        return (swingLabelParentApp);
    }

    public CFJReferenceEditor getSwingReferenceParentApp() {
        if (swingReferenceParentApp == null) {
            swingReferenceParentApp = new SecGroupFormAppCFJReferenceEditor();
        }
        return (swingReferenceParentApp);
    }

    public void setSwingReferenceParentApp(SecGroupFormAppCFJReferenceEditor value) {
        swingReferenceParentApp = value;
    }

    public ICFAsteriskSecFormObj getSwingParentFormObj() {
        return (swingParentFormObj);
    }

    public void setSwingParentFormObj(ICFAsteriskSecFormObj value) {
        swingParentFormObj = value;
    }

    public JLabel getSwingLabelParentForm() {
        if (swingLabelParentForm == null) {
            swingLabelParentForm = new SecGroupFormFormJLabel();
        }
        return (swingLabelParentForm);
    }

    public CFJReferenceEditor getSwingReferenceParentForm() {
        if (swingReferenceParentForm == null) {
            swingReferenceParentForm = new SecGroupFormFormCFJReferenceEditor();
        }
        return (swingReferenceParentForm);
    }

    public void setSwingReferenceParentForm(SecGroupFormFormCFJReferenceEditor value) {
        swingReferenceParentForm = value;
    }

    public SecGroupFormIdJLabel getSwingLabelSecGroupFormId() {
        if (swingLabelSecGroupFormId == null) {
            swingLabelSecGroupFormId = new SecGroupFormIdJLabel();
        }
        return (swingLabelSecGroupFormId);
    }

    public void setSwingLabelSecGroupFormId(SecGroupFormIdJLabel value) {
        swingLabelSecGroupFormId = value;
    }

    public SecGroupFormIdJEditor getSwingEditorSecGroupFormId() {
        if (swingEditorSecGroupFormId == null) {
            swingEditorSecGroupFormId = new SecGroupFormIdJEditor();
        }
        return (swingEditorSecGroupFormId);
    }

    public void setSwingEditorSecGroupFormId(SecGroupFormIdJEditor value) {
        swingEditorSecGroupFormId = 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 = getSwingLabelOwnerCluster();
        label.setBounds(labelx, y, labelwidth, height);
        reference = getSwingReferenceOwnerCluster();
        reference.setBounds(fieldx, y, usefieldwidth, height);
        y = y + vspacing;

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

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

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

        label = getSwingLabelSecGroupFormId();
        label.setBounds(labelx, y, labelwidth, height);
        compo = getSwingEditorSecGroupFormId();
        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() {
        ICFSecuritySecGroupFormObj popObj;
        ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
        if (focus != null) {
            popObj = (ICFSecuritySecGroupFormObj) (focus.getEdit());
            if (popObj == null) {
                popObj = focus;
            }
        } else {
            popObj = null;
        }
        if (getPanelMode() == CFJPanel.PanelMode.Unknown) {
            popObj = null;
        }
        if (popObj == null) {
            swingOwnerClusterObj = null;
        } else {
            swingOwnerClusterObj = (ICFAsteriskClusterObj) popObj.getRequiredOwnerCluster(swingIsInitializing);
        }
        if (swingReferenceOwnerCluster != null) {
            swingReferenceOwnerCluster.setReferencedObject(swingOwnerClusterObj);
        }

        if (popObj == null) {
            swingContainerGroupObj = null;
        } else {
            swingContainerGroupObj = (ICFAsteriskSecGroupObj) popObj.getRequiredContainerGroup(swingIsInitializing);
        }
        if (swingReferenceContainerGroup != null) {
            swingReferenceContainerGroup.setReferencedObject(swingContainerGroupObj);
        }

        if (popObj == null) {
            swingParentAppObj = null;
        } else {
            swingParentAppObj = (ICFAsteriskSecAppObj) popObj.getRequiredParentApp(swingIsInitializing);
        }
        if (swingReferenceParentApp != null) {
            swingReferenceParentApp.setReferencedObject(swingParentAppObj);
        }

        if (popObj == null) {
            swingParentFormObj = null;
        } else {
            swingParentFormObj = (ICFAsteriskSecFormObj) popObj.getRequiredParentForm(swingIsInitializing);
        }
        if (swingReferenceParentForm != null) {
            swingReferenceParentForm.setReferencedObject(swingParentFormObj);
        }

        if (popObj == null) {
            getSwingEditorSecGroupFormId().setInt64Value(null);
        } else {
            getSwingEditorSecGroupFormId().setInt64Value(popObj.getRequiredSecGroupFormId());
        }
    }

    public void postFields() {
        final String S_ProcName = "postFields";
        ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
        ICFSecuritySecGroupFormEditObj editObj;
        if (focus != null) {
            editObj = (ICFSecuritySecGroupFormEditObj) (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

        swingParentAppObj = (ICFAsteriskSecAppObj) (swingReferenceParentApp.getReferencedObject());
        editObj.setRequiredParentApp(swingParentAppObj);

        swingParentFormObj = (ICFAsteriskSecFormObj) (swingReferenceParentForm.getReferencedObject());
        editObj.setRequiredParentForm(swingParentFormObj);
    }

    public void setPanelMode(CFJPanel.PanelMode value) {
        final String S_ProcName = "setPanelMode";
        CFJPanel.PanelMode oldValue = getPanelMode();
        if (oldValue == value) {
            return;
        }
        ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
        if ((value != CFJPanel.PanelMode.Unknown) && (value != CFJPanel.PanelMode.View)) {
            if (focus == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "swingFocus");
            }
        }
        ICFSecuritySecGroupFormEditObj editObj;
        if (focus != null) {
            editObj = (ICFSecuritySecGroupFormEditObj) 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 = (ICFSecuritySecGroupFormEditObj) 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 = (ICFSecuritySecGroupFormEditObj) 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 = (ICFSecuritySecGroupFormEditObj) 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 = (ICFSecuritySecGroupFormEditObj) 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 = (ICFAsteriskSecGroupFormObj) 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 = (ICFSecuritySecGroupFormEditObj) 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 = (ICFSecuritySecGroupFormEditObj) 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 = (ICFSecuritySecGroupFormEditObj) 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) {
            ICFSecuritySecGroupFormObj focus = getSwingFocusAsSecGroupForm();
            if (focus == null) {
                isEditing = false;
            } else if (null == focus.getEdit()) {
                isEditing = false;
            }
        }
        if (swingReferenceOwnerCluster != null) {
            swingReferenceOwnerCluster.setEnabled(false);
        }
        if (swingReferenceContainerGroup != null) {
            swingReferenceContainerGroup.setEnabled(false);
        }
        if (swingReferenceParentApp != null) {
            swingReferenceParentApp.setEnabled(isEditing);
        }
        if (swingReferenceParentForm != null) {
            swingReferenceParentForm.setEnabled(isEditing);
        }
        if (swingEditorSecGroupFormId != null) {
            swingEditorSecGroupFormId.setEnabled(false);
        }
    }
}