com.jFormTK
Class AppForms

java.lang.Object
  extended by com.jFormTK.AppForms
All Implemented Interfaces:
JConstants

public class AppForms
extends java.lang.Object
implements JConstants

        This 'jFormTK' Class is used to control the processing of the Applications
        Forms [i.e. Application JFormForm Sub-Classes]. It maintains a record, defined at 
        initialization time, in the 'items' Vector for each Application Form. 
        The default order of each Application Form is dictated by the order of the Forms 
        in this Vector...

        This Class is instanced by the 'AppDB' Class during "Application" loading.

        A 'JFormForm' record is established for each "Application" Form in the
        "Application" Initialization Phase. The "Controls" for each
        'JFormForm' of the "Application" are as follows:                        
                1)      Category:
                        The primary Category for the respective JFormForm.
                2)      FileName:
                        The file name for the associated 'JFormForm' SubClass. This name, and the
                        "Category" parameters are used to uniquely identify each Application Form...
                        For Example:
                        Given a "Category" = "Income" and File Names of "Wages", Pensions" and
                        "SocialSecurity" the following Windows "Folders" shall be used:
                                \Income\Wages
                                \Income\Pensions
                                \Income\SocialSecurity
                                where  is defined by the appDB.setRoot method...

        NOTE 1: For each "Application" JFormForm SubClass, the above fields are added to
                        this Items Vector via the "AppForms.addItem() method call...

                3)      JFormForm
                        A "Reference" to the JFormForm SubClass instance that exist for the
                        associated "Application" Form. This parameter is set via one of the
                        following AppForms 'setJFormForm' Method signatures:
                        a)      setJFormForm(
                                        String category,
                                        String fileName,
                                        JFormForm f);
                        b)      setJFormForm(
                                        int index,
                                        JFormForm f);
                                where "index" is computed by the AppForms
                                findItem(String category, String fileName) method...
        NOTE 2: The AppForms.loadJFormForm Methods shall be used to load an existing
                        JFormForm SubClass into the 'jFormTK' Show Panel for processing by the
                        jFormTK Application End User...

                4)      formOrder:
                This field contains the 'jFormTK' JFormForm processing Order, i.e. the order the
                Form's will be processed if the End User lets the "Application" Cycle through
                the Forms without any interaction via the Form Tree Window selection...

                This field is set automatically by the *this* 'addItem' method so that the
                default order the JFormForm SubClasses are processed is equivalent to the order
                the JFormForm's SubClasses are inserted into the 'AppForms' 'items' Vector...

        NOTE 3: The following text describes the "summaryTAB" feature that was started in the
                        old version. The information is NOT IMPLEMENTED in the 'Swing' jFormTK version
                        untill it is determined if it is required...
        
        //      String to indicate the type of "Summary TAB" Processing available...
                private static String[] summaryTAB;
        //      A "summaryTAB" is a String that defines the type(s) of summary reports to be
        //      provided for each jFormFrame of this application. Examples used in the SLPlus
        //      program are "Assets", "Liabilities" or "Assets|Liabilities", ie. SLPlus shall
        //      provide summary reports for the end user "Assets" iff the respective 'summaryTAB'
        //      element has the "Assets" annotation String. Also, if a form contains both
        //      "Assets" and "Liabilities", then the "Assets|Liabilities" String is used. The
        //      summary program will use the '|' character as the delimiter between summary TABS...

        Kernel Usage:
        This Class is hosted by the 'AppDB' Class. It is instanced in the 'AppDB.initialize'
        Method. The methods of this class are always referenced using the 'AppDB.AppForms'
        prefix, i.e. the class instance is a 'public' object of the 'AppDB' Class...
        

Version:
1.00, 11 Jan 2000
Author:
Jim Crowell
Professional Computer Solutions [PCS]
URL: http://jFormTK.com/
E-Mail: JimCrowell@EMail.com

Copyright (c) 2009 by Professional Computer Solutions [PCS]
All Rights Reserved

Field Summary
static java.util.Vector items
           
 
Fields inherited from interface com.jFormTK.JConstants
__, _AB, _AB_, _AField, _B, _BField, _CField, _CIField, _DField, _EU_, _H, _HEIGHT, _HEIGHT_INV, _HField, _I, _IField, _LField, _MField, _NField, _NotRequired, _PField, _PIField, _QField, _Required, _RField, _TAField, _TField, _WIDTH, _WIDTH_INV, _XField, AB, APP_TRACE_FOCUS, APP_TRACE_GET, APP_TRACE_SET, B_, BAR, BAR_, BB, BH, BI, BREAKPOINT_FOCUS, BREAKPOINT_GET, BREAKPOINT_SET, BVB, C_QUOTE, CLOSE, CLOSE_BRACKET, COLORS_DELIMITER, COMMA, COMMA_, D_ELEMENT, D_ELEMENT_N, D_ELEMENT_N1, D_ELEMENT_N2, D_ELEMENT_N3, D_FIELDS, D_FIELDS_N, D_FIELDS_N1, D_FIELDS_N2, D_FIELDS_N3, D_ITEMS, DASH, DOT, EOL, EOP, EOS, FIELD_TRACE_FOCUS, FIELD_TRACE_GET, FIELD_TRACE_SET, FONT_DELIMITER, H_, HB, HH, HI, I_, IB, IH, II, JLAF_DELIMITER, LF, LISTBRACKET, NO, OPEN, OPEN_BRACKET, pCheckboxGroup, QUOTE, SPACE_, TAB, YES
 
Constructor Summary
AppForms()
           
 
Method Summary
static int addItem(java.lang.Object obj)
           Add the given 'JFormForm' Sub-Class to the 'AppForms.items' Vectors in 'Category' order...
static int bbbbfindFormOrder(int formOrderIn)
           
static int fileNameIndex(java.lang.String fileName)
           Return the 'appForm' Index of the given File Name...
static int findActiveForm()
           
static JFormForm findForm(java.lang.String inFileName)
           
static JFormForm findFormFromTitle(java.lang.String inTitle)
           
static int findItem(JFormForm form)
          Find the given parameters in the 'AppForms' Vectors.
static int findItem(java.lang.String dotNotationFormName)
           Find the given parameters in the 'AppForms' Vectors.
static int findItem(java.lang.String sCategory, java.lang.String sFileName)
           Find the given parameters in the 'AppForms' Vectors.
static java.lang.String[] getApplicationCategories()
           
static java.lang.String[] getCategories()
           Return a String Array of the Categories in alpha numeric order...
static java.lang.String getCategory(int index)
           
static java.lang.String[] getCategoryActiveFormAnnotations(java.lang.String inCategory)
           Return a String Array of the Form Annotations for the given Category [inCategory] that are "Active", i.e.
static java.lang.String[] getCategoryFormTitles(java.lang.String inCategory)
           
static java.lang.String getFieldID(java.lang.String fullID)
           Strip the "Field ID" prefix from the given "Full ID" String [fullID] and return constructed "Field ID" portion only...
static java.lang.String getFileLocation(int Index)
           
static java.lang.String getFileName(int index)
           
static JFormForm getForm(int index)
           Return the 'JFormForm' for the 'AppForms' Items at the given index [index]...
 java.lang.String[] getFormAnnotations(java.lang.String categoryDelimitedList)
           Return a String Array of the "Active" "Forms Annotations" for each of the specified 'jFormTK' Application Categories.
static java.lang.String getFormID(java.lang.String fullID)
           Given a Full 'jFormTK.JFormField' ID, Return the Form ID...
static java.lang.String[] getFormIDs(java.lang.String fileName)
           Construct a String array of each 'JFormForm' ID that matches the given "File Name" String [fileName]...
static java.lang.String getFormIDsDisplay()
           Produce a Sting to display all the 'JFormForm' Sub-Class IDs...
static int getFormIndex(java.lang.String inID)
           Return the AppForms Object Index as an 'int' for the given Form ID [inID]...
static java.lang.String getFormStringIndex(java.lang.String inID)
           Return the AppForms Object Index as a String for the given Form ID [inID]...
static java.lang.String[] getFormTitles()
           
static java.lang.String getFullID(java.lang.String id)
           Take the given id [id] and modify it so that it is a "Full" ID, i.e.
static java.lang.String getGroupNameFromSavedJFormField(java.lang.String savedJFormField)
           
 JFormField getJFormField(java.lang.String fieldID)
           Return the 'JFormField' for the given 'JFormField ID'.
 JFormField getJFormField(java.lang.String[] fields)
           Return the 'JFormField' for the given 'JFormField ID'.
static java.lang.String[] getJFormFieldActiveNames(JFormForm form)
           
static java.lang.String[] getJFormFieldActiveNames(JFormForm form, boolean noButtons)
           Construct a String Array that contains the 'JFormField' Field Names for the specified 'JFormForm' Sub-Class [form].
static JFormForm getJFormForm(int index, java.lang.String from)
           
static JFormForm getJFormForm(java.lang.String anchor)
           Get the 'JFormForm' as a function of the given 'anchor'...
static JFormForm getJFormForm(java.lang.String category, java.lang.String fileName)
           Get a 'JFormForm' instance as a function of a given Category and File name...
static int getLastFormIndex()
           
static java.lang.String getNameFromSavedJFormField(java.lang.String savedJFormField)
           
static int getNumberOfForms()
           
static int getSetNumberFromSavedJFormField(java.lang.String savedJFormField)
           
 javax.swing.Icon getStatusIcon(java.lang.String formTitle)
           Build the Status Icon as a function of the 'isFile' and 'isComplete parameters of the 'associated' JFormForm Item as follows: 1) Find the *this* Items Vector Elements that match the given 'JFormForm' 'formTitle' field given in the 'formTitle' input parameter...
static char getTypeFromSavedJFormField(java.lang.String savedJFormField)
           
static java.lang.String getValue(java.lang.String inReference)
           Get the Value of the specified 'JFormField' of the given 'JFormForm'.
 JWorkSheet getWS(java.lang.String inID)
           Given a 'jFormTK' Field ID String [ID] find and return a "Reference" to the associated 'Work Sheet' instance...
static boolean isCategory(java.lang.String inCategory)
           
static boolean isFieldName(java.lang.String inFileName, java.lang.String inFieldName)
           This method is designed to determine if the given FieldName [inFieldName] exist...
static boolean isFileName(java.lang.String inFileName)
           
static boolean isGroupName(java.lang.String inFileName, java.lang.String inGroupName)
           This metod is designed to determine if the given GroupName exist.
static boolean isID(java.lang.String idIn, java.lang.String from)
           Verify that the given ID String is a legitimate 'jFormTK.JFormField' ID...
static void loadJFormForm(BasejFormTK inBase, java.lang.String from)
           Load the Last Form Unloaded from a Previous 'jFormTK' Appplication Execution OR the First Form in the 'AppForms' Data Base if this is the initial execution of the 'jFormTK' Application...
static void loadJFormForm(int indexIn, java.lang.String from)
           Load the 'JFormForm' SubClass indicated by the given AppForms pointer [indexIn].
static void loadJFormForm(JFormForm form, java.lang.String from)
           Load the 'JFormForm' SubClass indicated by the given AppForms pointer [indexIn].
static void loadJFormForm(java.lang.String formIndexIn, java.lang.String from)
           Load a 'JFormForm' Sub-Class [Form] as a function of the given 'formIndex' control...
static void loadJFormForm(java.lang.String category, java.lang.String fileName, java.lang.String from)
           Load a 'JFormForm' Sub-Class signature with the "category" and "fileName" Parameters...
static int setJFormForm(int index, JFormForm f)
           
static int setJFormForm(java.lang.String category, java.lang.String fileName, JFormForm f)
           
 void setNodes()
           Set a 'Node' in the Application 'jFormTree' for each 'JFormForm' Item.
static void setValue(JFormForm form, java.lang.String reference, java.lang.String value, char type)
           Set the Value of a 'JFormField' that is uniquely identified by the "Reference" String OR the File/Field parameters in the Category, FileName, GroupName, FieldName and SetNumber parameters.
static java.lang.String setValueInSavedJFormField(JFormForm form, java.lang.String savedJFormField, java.lang.String Value, char Type)
           
static void showItems()
           
static void XXXloadJFormForm(int indexIn, java.lang.String from)
           Signature with a FOUND Index...
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

items

public static java.util.Vector items
Constructor Detail

AppForms

public AppForms()
Method Detail

fileNameIndex

public static int fileNameIndex(java.lang.String fileName)
        Return the 'appForm' Index of the given File Name...
        If the File Name is NOT found, then a -1 index is returned...

        Kernel Usage:
        1)      'Util.unpackVerifyFormID' iff the ONLY the Form Name [no Catalog] is found in
                the given Form ID...
        

Parameters:
fileName - File Name
Returns:
Index into the AppForms.items' Vector for the found File Name...

findForm

public static JFormForm findForm(java.lang.String inFileName)

findFormFromTitle

public static JFormForm findFormFromTitle(java.lang.String inTitle)

findItem

public static int findItem(JFormForm form)
Find the given parameters in the 'AppForms' Vectors. Return the Item's Vector Index if Found OR a -1 if NOT Found... Kernal Usage: 1) 'this.addItem' Method...

Parameters:
form -
Returns:
Item's Vector Index [int]...

findItem

public static int findItem(java.lang.String dotNotationFormName)
        Find the given parameters in the 'AppForms' Vectors.
        Return the Item's Vector Index if Found OR a -1 if NOT Found...

        Kernal Usage:
        1)      The *this* 'isFieldName' Method...
        

Parameters:
dotNotationFormName - Form ID with DOT Notation delimiters...
Returns:
Index [int] into the 'AppForms' working Vector for the given 'JFormForm' Sub-Class...

findItem

public static int findItem(java.lang.String sCategory,
                           java.lang.String sFileName)
        Find the given parameters in the 'AppForms' Vectors.
        Return the Item's Vector Index if Found OR a -1 if NOT Found...

        Kernal Usage:
        1)      'this.findItem' method with the 'JFormForm' parameter signature...
        2)      'this.getJFormForm' method...
        3)      'this.setValue' method...
        4)      'this.loadJFormForm[6] method...
        5)      'this.setJFormForm' method [NOT CURRENTLY USED]...
        6)      'JHDD_IO.writeToForm' method...

Parameters:
sCategory - The Category name [String]...
sFileName - The File Name [String]...
Returns:
Item's Vector Index [int] if Found OR a -1

getCategory

public static java.lang.String getCategory(int index)

getFieldID

public static java.lang.String getFieldID(java.lang.String fullID)
        Strip the "Field ID" prefix from the given "Full ID" String [fullID] and return
        constructed "Field ID" portion only...
        
        Assumption: the 'fullID' String is constructed in one of the following formats:
                "Cat.FileName.GroupName.FieldName.SetNumber"
                "Cat.FileName.GroupName.FieldName.SetNumber"
                "Cat.FileName.FieldName.SetNumber"
                "Cat.FileName.FieldName.SetNumber"

        Kernel Usage:
        1)      'JForwardReferenceQuery.Constructor' to construct the operator annotation
                about the Incongruent Forward Reference....
        

Parameters:
fullID - A String ID with a minimum of a Category, Form Name and Field Name are provided with a "." delimiter...
Returns:
Field Name using "." delimiters...

getFormID

public static java.lang.String getFormID(java.lang.String fullID)
        Given a Full 'jFormTK.JFormField' ID,
        Return the Form ID...

        Kernel Usage:
        1)      'this.loadJFormForm[7]' method when the Form Index is NOT a numeric value...
        

Parameters:
fullID -
Returns:
the Form ID String matching the full ID String...

getFileName

public static java.lang.String getFileName(int index)

getForm

public static JFormForm getForm(int index)
        Return the 'JFormForm' for the 'AppForms' Items at the given index [index]...

        Kernel Usage:
        1)      'AppForms.findForm' Method...
        2)      'JFocus.goToForm' Method...
        3)      'Util.setJFormTKDB' Method to adjust 'JFormField' JLAF usage...
        

Parameters:
index - 'AppForms' Array index [int]...
Returns:
'JFormForm' Sub-Class instance OR 'null' if Not processed...

getFullID

public static java.lang.String getFullID(java.lang.String id)
        Take the given id [id] and modify it so that it is a "Full" ID, i.e.
        it contains the Category, File Name, Group Name, FieldName
        and SetNumber fields that are appropriate.

        This is done to eliminate any ambiguity as Application Forms are swaped in
        and out of the 'showPanel'...

        It allows the 'jFormTK' developer to provide just the Form [File] Name iff
        the Form Name is unique, that is the form name is used in only one
        Category set...

        Kernel Usage:
        1)      
        

Parameters:
id - The given id...
Returns:
The constructed "Full" ID...

getGroupNameFromSavedJFormField

public static java.lang.String getGroupNameFromSavedJFormField(java.lang.String savedJFormField)

getJFormFieldActiveNames

public static java.lang.String[] getJFormFieldActiveNames(JFormForm form)

getJFormFieldActiveNames

public static java.lang.String[] getJFormFieldActiveNames(JFormForm form,
                                                          boolean noButtons)
        Construct a String Array that contains the 'JFormField' Field Names for the
        specified 'JFormForm' Sub-Class [form].

        NOTE:   see below comment on Buttons...

        Kernel Usage:
        1)      '*this*.getJFormFieldActiveNames' signature with no 'noButtons' parameter...
        2)      'BasejFormTK.SelectField.mouseClicked' method when serviving a 'jFormTK'
                "Breakpoint"...
        3)      'BasejFormTK.SelectField.Constructor' method when serviving a 'jFormTK'
                "Breakpoint"...
        

Parameters:
form - The 'JFormForm' Sub-Class that host the JFormField's...
noButtons - Control to allow OR disallow the 'JFormField' Buttons... NOTE: Looks like No Buttons are included no matter what the 'noButton' flag is set to???
Returns:
String array of the 'fieldNames'...

getJFormForm

public static JFormForm getJFormForm(int index,
                                     java.lang.String from)

getJFormForm

public static JFormForm getJFormForm(java.lang.String anchor)
        Get the 'JFormForm' as a function of the given 'anchor'...
        

Parameters:
anchor - String with a DOT notation Category, Form File Name...
Returns:
The found 'JFormFrm' Instance...

getJFormForm

public static JFormForm getJFormForm(java.lang.String category,
                                     java.lang.String fileName)
        Get a 'JFormForm' instance as a function of a given Category and File name...

        Kernel Usage:
        1)
        

Parameters:
category - Category parameter...
fileName - 'JFormForm' Sub-Class File Name...
Returns:
Found 'JFormForm' Sub-Class instance...

getNameFromSavedJFormField

public static java.lang.String getNameFromSavedJFormField(java.lang.String savedJFormField)

getSetNumberFromSavedJFormField

public static int getSetNumberFromSavedJFormField(java.lang.String savedJFormField)

getTypeFromSavedJFormField

public static char getTypeFromSavedJFormField(java.lang.String savedJFormField)

getValue

public static java.lang.String getValue(java.lang.String inReference)
        Get the Value of the specified 'JFormField' of the given 'JFormForm'. It the
        Value can not be constructed from the existing 'JFormForm' Vectors, then the
        method shall search the associated 'Work Sheet' file. If the 'Work Sheet' file
        exist and the given 'Group Name / FieldName' pair is validated, then a
        "Reference" to the specified 'JFormForm' and 'JFormField' is returned.

        NOTE:
        The returned referenced uses the "REF<" prefix and the ">" suffix to annotate
        the Value as a "Forward Reference" 'JFormField'...

        If the given 'JFormField' Reference is NOT validated,
        Then the following String is returned:
                String value = "ERR<" + Reference String + ">"

        Kernel Usage:
        1)      Called from 'JFocusManager.actionPerformed' processor to get the value of a
                'Dynamic Reference' Property Request...
        2)      Envoked by the 'Util.getReferenceValue' Method when processing the
                "Reference" Field, i.e. the field set by the application developer via the
                'JFormField.setReference' Method...
        

Parameters:
inReference -
Returns:
Value [String] of the specified 'JFormField' of the given 'JFormForm'

isCategory

public static boolean isCategory(java.lang.String inCategory)

isFieldName

public static boolean isFieldName(java.lang.String inFileName,
                                  java.lang.String inFieldName)
        This method is designed to determine if the given FieldName [inFieldName] exist...

        First the 'JFormForm' Sub-Class Instance is determnined.
        Next, the 'formFields' Vector of the Form is compared to the Field Name as a
        function of the Form's 'Load State'...

        If the 'Load State is 'N',
        Then the 'Work Sheet' is loaded and searched...

        Kernel Usage:
        1)      'Util.getFieldNamefromAnchor'...
        2)      'Util.unpackVerifyID'...
        

Parameters:
inFileName - 'JFormForm' SubClass File Name String...
inFieldName - Field Name String to be referenced...
Returns:
Flag [boolean] as a function of search results...

isFileName

public static boolean isFileName(java.lang.String inFileName)

isGroupName

public static boolean isGroupName(java.lang.String inFileName,
                                  java.lang.String inGroupName)
        This metod is designed to determine if the given GroupName exist.

        Kernel Usage:
        1)      Called from the following utility Methods:
                        - Util.getFieldNamefromAnchor
                        - Util.unpackFieldName
                        - Util.unpackVerifyFieldName
                        - Util.unpackVerifyID
        2)      Called from 'JFormField.setReferenceValue' processor to
                unpack the given 'Reference' Property...
        

Parameters:
inFileName - 'JFormForm' Sub-Class File Name [String]...
inGroupName - 'Group Name [String] to search for...
Returns:
Flag set as a function of Group Name Existence...

isID

public static boolean isID(java.lang.String idIn,
                           java.lang.String from)
        Verify that the given ID String is a legitimate 'jFormTK.JFormField' ID...

        Kernel Usage:
        1)      'BasejFormTK.doTabSelectPostProcess' Method to get a reference to the
                currenly focused 'JFormField' [currentFld] iff the Last 'FocusedFlowControl'
                is a 'JFormField' reference...
        2)      'BasejFormTK.doAddressBookPanelTAB' Method to conditionally envoke the 
                'JUnLoadForm.add' Method, i.e. envoke iff the Last 'FocusedFlowControl'
                is a 'JFormField' reference...
        

Parameters:
idIn - A full 'JFormField' Reference, i.e. has both the 'JFormForm' ID and the 'JFormField' ID controls...
Returns:
boolean flag based on the resulting verification...

setValue

public static void setValue(JFormForm form,
                            java.lang.String reference,
                            java.lang.String value,
                            char type)
        Set the Value of a 'JFormField' that is uniquely identified by the
        "Reference" String OR the File/Field parameters in the Category,
        FileName, GroupName, FieldName and SetNumber parameters.

        The Value is set from the given [Value] String and the 'JFormField' Type [Type]
        char.

        If an illegal 'setValue' request is made, an Application Warning Dialog Message
        is displayed as follows:
                1)      Unsuccessful due to Invalid File / Field Specification...
                2)      Unsuccessful because of Incompatible Modifier's...
        NOTE:
        Once a 'jFormTK' Application is fully tested, these Message should never appear
        to the Application User...

        Kernel Usage:
        1)      Used by the 'jFormTK' End User in their pre / post Processor Application
                Methods...
        2)      'Util.getIDValue' Method when a "Forward Reference" is made and the computed
                'Value' must be saved in the 'jFormWorkSheet' instance...
        

Parameters:
form - The Host 'JFormForm' reference...
reference - The Full ID for the Forward Referenced 'JFormField', i.e. a String with the FormID and the Field ID with "Dot" notation. For Example: "Cat2.Form2.object0a"...
value - The Value to be set into the Forward Referenced 'JFormField'...
type - The Forward Referenced 'jFormField' Type...

setValueInSavedJFormField

public static java.lang.String setValueInSavedJFormField(JFormForm form,
                                                         java.lang.String savedJFormField,
                                                         java.lang.String Value,
                                                         char Type)

showItems

public static void showItems()

addItem

public static int addItem(java.lang.Object obj)
        Add the given 'JFormForm' Sub-Class to the 'AppForms.items' Vectors in
        'Category' order...

        Kernel Usage:
        1)      Called by the "Main.build_AppForms" method of the 'jFormTK' 'Main' Class during
                the initialization phase. Each call establishes a new "Application"
                'JFormForm' and returns the new Form's index that is then used to load the
                associated 'JFormForm' instance into *this* Data Base Object...
        

Parameters:
obj - The 'JFormForm' Object to be added to the 'items' Vector...
Returns:
Return the app Forms index to the calling program...

findActiveForm

public static int findActiveForm()

bbbbfindFormOrder

public static int bbbbfindFormOrder(int formOrderIn)

getCategoryActiveFormAnnotations

public static java.lang.String[] getCategoryActiveFormAnnotations(java.lang.String inCategory)
        Return a String Array of the Form Annotations for the given Category
        [inCategory] that are "Active", i.e. the Form is NOT null.

        A Form Annotation is the Form ID followed by a DASH and the Form Title...

        Kernel Usage:
        1)      'this.getFormAnnotations' method to build a list of Form Annotations that
                the user of the 'Find / Edit' TAB may select from...              
        

Parameters:
inCategory - Category Name to be searched...
Returns:
String Array of Active Form Annotations...

getApplicationCategories

public static java.lang.String[] getApplicationCategories()

getCategories

public static java.lang.String[] getCategories()
        Return a String Array of the Categories in alpha numeric order...

        Kernel Usage:
        1)      'findEditDialog' Constructor to construct a list for 'EndUser'
                Category Selection...
        

Returns:
String Array of Categories...

getCategoryFormTitles

public static java.lang.String[] getCategoryFormTitles(java.lang.String inCategory)

getFileLocation

public static java.lang.String getFileLocation(int Index)

getFormAnnotations

public java.lang.String[] getFormAnnotations(java.lang.String categoryDelimitedList)
        Return a String Array of the "Active" "Forms Annotations" for each of the
        specified 'jFormTK' Application Categories.

        Each "Forms Annotations" is formatted as follows:
                -       Form ID
                -       ":'
                -       Form Title

        Kernel Usage:
        1)      'FindEditDialog.Constructor:' Method...
        

Parameters:
categoryDelimitedList - String of 'Category' names delimited by the 'JFormTKDB.itemsDelimiter'...
Returns:
String Array of the "Active" "Forms Annotations"

getFormIDs

public static java.lang.String[] getFormIDs(java.lang.String fileName)
        Construct a String array of each 'JFormForm' ID that matches the given
        "File Name" String [fileName]...

        If the given "File Name" String [fileName] is the null String, i.e. [""]
        Then return all the 'JFormForm' Sub-Class names...

        NOTE: The 'items' Vector is constructed as follows:
                        items[0]: String - Category
                        items[1]: String - FileName
                        items[2]: String - 'JFormForm' reference
                        items[3]: String - FormOrder
        The above repeats for each 'JFormForm' of the Application...

        Kernel Usage:
        1)      '*this".getFormIDsDisplay' Method to get All the names so that a
                list of all the Application Forms may be constructed...
        2)      'Util.unpackVerifyID' Method...

Parameters:
fileName - File Name to find in the 'items' Vector OR a null String to get All the Application Form ID's...
Returns:
String array of found 'formID's...

getFormIDsDisplay

public static java.lang.String getFormIDsDisplay()
        Produce a Sting to display all the 'JFormForm' Sub-Class IDs...

        Kernel Usage:
        1)      In various 'Util'softAbort' messages to help the 'jFormTK' developer
                to fix "Development Time' Errors...
        

Returns:
String with the constructed 'JFormForm' Sub-Class ID's...

getFormStringIndex

public static java.lang.String getFormStringIndex(java.lang.String inID)
        Return the AppForms Object Index as a String for the given Form ID [inID]...

        Kernel Usage:
        1)      'BasejFormTK.doAddressBookPanelTAB' to add a record to the 'AppDB.jUnLoadForm'
                instance...
        2)      'BasejFormTK.doControlsPanelTAB' to add a record to the 'AppDB.jUnLoadForm'
                instance...
        3)      'BasejFormTK.doQuickEditPanelTAB' to add a record to the 'AppDB.jUnLoadForm'
                instance...
        4)      'BasejFormTK.doTableEditPanelTAB' to add a record to the 'AppDB.jUnLoadForm'
                instance...
        5)      'BasejFormTK.doTabSelectPostProcess' to add a record to the 'AppDB.jUnLoadForm'
                instance...
        6)      'BasejFormTK.doTabSelectPostProcess' to add a record to the 'AppDB.jUnLoadForm'
                instance...
        7)      'JFormControl.doFocus' to add a record to the 'AppDB.jUnLoadForm' instance...
        8)      'JFormFrame.verifySaveForm' to add a record to the 'AppDB.jUnLoadForm' instance...
        9)      'JHDD_IO.exitApplication' to add a record to the 'AppDB.jUnLoadForm' instance...

        

Parameters:
inID - 'jFormTK' Form ID String...
Returns:
Index [String] into the '*this*items' Vector...

getFormIndex

public static int getFormIndex(java.lang.String inID)
        Return the AppForms Object Index as an 'int' for the given Form ID [inID]...

        Kernel Usage:
        1)      'JFormWorkSheets.bProcess_actionPerformed' to convert the Selected Form
                Titles to appForm Object Indices...
        ?)      'Util.setHighliteLAF' to fetch a 'JFormForm' Sub-Class instance given
                a 'jFormTK' Form ID...
        

Parameters:
inID - 'jFormTK' Form ID String...
Returns:
Index [int] into the '*this*items' Vector...

getFormTitles

public static java.lang.String[] getFormTitles()

getJFormField

public JFormField getJFormField(java.lang.String fieldID)
        Return the 'JFormField' for the given 'JFormField ID'. The 'Field ID' has the 
        'Category.SubCagegory.FieldName.GroupName.FieldName.SetNumber' informatiuon
        required to find the requested Application Unique 'JFormField'...

        Kernel Usage:
        1)      'AddressBook.doRemoveYes' Method...
        2)      'BaseJFormTK.quickEditDialog.doEdit' Inner Class to get a Reference to the
                'JFormField' that was selected from the 'Quick Edit' List...
        

Parameters:
fieldID - A 'JFormField' ID String...
Returns:
The matching 'JFormField' instance from 'items' Vector...

getJFormField

public JFormField getJFormField(java.lang.String[] fields)
        Return the 'JFormField' for the given 'JFormField ID'. The 'Field ID' has the 
        'Category.SubCagegory.FieldName.GroupName.FieldName.SetNumber' information
        required to find the requested Application Unique 'JFormField'...

        Kernel Usage:
        1)      'JFocus.doFocus' when the 'flowControl' is a Form or Field ID...
        

Parameters:
fields - String array of Unpacked 'JFormField' ID...
Returns:
The matching JFormField instance...

getLastFormIndex

public static int getLastFormIndex()

getNumberOfForms

public static int getNumberOfForms()

getStatusIcon

public javax.swing.Icon getStatusIcon(java.lang.String formTitle)
        Build the Status Icon as a function of the 'isFile' and 'isComplete parameters
        of the 'associated' JFormForm Item as follows:
        1)      Find the *this* Items Vector Elements that match the given 'JFormForm'
                'formTitle' field given in the 'formTitle' input parameter...
        2)      Return the .gif file that represents the current Status of the matched 'JFormForm'
                as follows:
                        'isFile'        'isComplete'    'gif' Icon File...
                        false                   NA                      appDB.getNoFile()
                        true                    false           appDB.getFileNotComplete()
                        true                    true            appDB.FileComplete()

        Kernel Usage:
        1)              Called from the 'jFormTree.JTreeCellRenderer.getTreeCellRenderer' Method
                        when a 'jFormTree' Leaf is Rendered...
        ASSUMPTION: Each Application 'JFormForm' has a UNIQUE Title!
        

Parameters:
formTitle -
Returns:
The Status Icon f['isFile' and 'isComplete] parameters...

getWS

public JWorkSheet getWS(java.lang.String inID)
        Given a 'jFormTK' Field ID String [ID] find and return a "Reference" to the
        associated 'Work Sheet' instance...
        

Parameters:
inID - 'JFormForm' SubClass Form ID [String]...
Returns:
JWorkSheet reference if found, else a'null'...

loadJFormForm

public static void loadJFormForm(BasejFormTK inBase,
                                 java.lang.String from)
        Load the Last Form Unloaded from a Previous 'jFormTK' Appplication Execution
        OR the First Form in the 'AppForms' Data Base if this is the initial execution
        of the 'jFormTK' Application...

        Kernel Usage:
        1)      'JFormTK' Application's 'Main" Class ['Main.initializebasejFormTK']
                after ALL of the 'JFormForm' Sub-Class Forms have been set and instanced in
                the 'AppForms' Control Vector [items] during the Application Load phase...
        

Parameters:
inBase - A Reference to the 'BasejFormTK' instance...

XXXloadJFormForm

public static void XXXloadJFormForm(int indexIn,
                                    java.lang.String from)
        Signature with a FOUND Index...

        Kernel Usage:
        1)      This [1] signature If an "Open' 'JFormForm' Sub-Class [form] was found.
        2)      This [1] signature If a "Next" form is requested and found.
        3)      This [1] signature If the next form is requested but all the Application
                forms have been serviced. The current Form is loaded.
        4)      This [2] signature to load the last unloaded form, i.e. the form that had
                the focus when the Application was exited.
        5)      This [2] signature with index = 0 for the initial Application load.
        6)      This [6] signature after an index is found in the 'items' Vector for the
                given 'JFormForm' Sub-Class parameters.
        7)      'JFormTree.TreeSelectionListener' once the Application End User has selected
                a form from the form tree of the "Controls' 'jFormTK' TAB…
        

Parameters:
indexIn - Index into the 'items' Vector for the 'JFormForm' Sub-Class to be loaded...
from - DEBUG Trace String annottion of calling method...

loadJFormForm

public static void loadJFormForm(int indexIn,
                                 java.lang.String from)
        Load the 'JFormForm' SubClass indicated by the given AppForms pointer [indexIn].
        Signature with a FOUND Index and the 'resetPrevious' Flag...

        Kernel Usage:
        1)      Used by the 'jFormFrame.doPriorForm' method when the Application End User
                selects the 'prior' Button...
        2)      This 'AppForms.loadJFormForm[2]' method when no Form Index is know and a
                load of the first 'JFormForm' Sub-Class is required...
        3)      This 'AppForms.loadJFormForm[6]' method when the given Category, Form File
                name parameters have yielded an accurate Form Index...
        4)      This 'AppForms.loadJFormForm[7]' method when the "Form Index" String is
                "Next" OR "Last" and the requested 'formIndex' int has been evaluated from
                the *This* AppForms Vector [items]...
        5)      'JFormTree.TreeSelectionListener' when the 'jFormTK' Application End User has
                selected a 'JFormForm' Sub-Class Form from the "Firms Tree" of the 'jFormTK'
                Framework Controls TAB...

        NOTE 1:
        The given 'index' [indexIn] points to the first element of the 'items' set that
        is associated with the appropriate Form by the Category and
        File Name Parameters...

        NOTE 2:
        The 'resetPrevious' set to 'false' indicates that the 'jFormState' instance
        shall not be set to the previous 'JFormForm'. This is done so that the 'doPrior'
        'jFormFrame' control button will cycle thru the forms as they were processed by
        the App End User as long as there are consecutive 'doPrior' request,
        i.e. no 'doNext' Control Button usage...
        

Parameters:
indexIn - Index [int] pointer to the 'JFormForm' SubClass to be loaded...

loadJFormForm

public static void loadJFormForm(JFormForm form,
                                 java.lang.String from)
        Load the 'JFormForm' SubClass indicated by the given AppForms pointer [indexIn].
        Signature with a FOUND Index and the 'resetPrevious' Flag...

        Kernel Usage:
        1)      'JFormControl.doFocus' when a 'JFormControl' instance has a request to load
                a new 'JFormForm' Sub-Class…
        2)      'JFocus.doFocus' when a 'flowControl' references a 'JFormForm' Sub-Class ID…
                [NOTE: 'JFocus.doFocus' is Not currently used]...
        

Parameters:
form - 'JFormForm' Sub-Class reference...

loadJFormForm

public static void loadJFormForm(java.lang.String category,
                                 java.lang.String fileName,
                                 java.lang.String from)
        Load a 'JFormForm' Sub-Class signature with the "category" and
        "fileName" Parameters...
        NOTE:   This Signature assumes that the associated 'JFormForm' has been loaded
                        into the 'items' Vector via the 'setJFormForm' Method. If the found
                        'JFormForm'     Element is a 'null', Then a "Warning" Message is provided...
 
        Kernel Usage:
        1)      This [5] signature to load a 'JFormForm' Sub-Class given it's category,
                file name parameters for the specified 'JFormForm' Sub-Class…
        2)      'AddressBook.doGoToForm' when the Application End User selectes the
                "Go To Form" Button…
        3)      'QuickEditDialog.doGoTo' when the Application End User selectes the
                "Go To Form' Button…
        4)      'JFocus.doFocus' when the 'flowControl' contains a 'JFormForm' Sub-Class ID…
        

Parameters:
category - Category String...
fileName - Form Name String...

loadJFormForm

public static void loadJFormForm(java.lang.String formIndexIn,
                                 java.lang.String from)
        Load a 'JFormForm' Sub-Class [Form] as a function of the given 'formIndex'
        control...

        Note:
        'formIndex' is a 'JUnLoadForm' parameter that contains the following:
                if >= 0, then the 'AppForms' index for a specific 'JFormForm' Sub-Class
                if <  0, then a reference to a 'jFormTK' Framework TAB.
        For this method the 'formIndex' may also contain the following unique controls:
                if "Last", then load the last unloaded 'JFormForm' Sub-Class [Form]...
                if "Next", then re-load OR make an ititial load of the "Next" 'JFormForm'
                        Sub-Class...

        Kernel Usage:
        1)      this 'AppForms.loadJFormForm[2]' Method iff the 'this.lastJFormFormIndex' is
                >= 0. i.e. it points to a 'JFormForm' Sub-Class that was "Last" loaded...
        2)      'JFocus.goToForm' method if a "Focus Point" was established as a function of
                the 'JUnloadForm' instance...
        3)      'JFormFrame.doQuit' iff the load next form Flag [loadNextForm] is true... 
        

Parameters:
formIndexIn - String as defined above...
from - DEBUG annotation String...

setJFormForm

public static int setJFormForm(int index,
                               JFormForm f)

setJFormForm

public static int setJFormForm(java.lang.String category,
                               java.lang.String fileName,
                               JFormForm f)

setNodes

public void setNodes()
        Set a 'Node' in the Application 'jFormTree' for each 'JFormForm' Item. Also,
        this method will compute the 'popup Form Names' String array that is used by each
        'JFormField' instance to display the 'Dynamic Reference' Form Names...

        Kernel Usage:
        1)      Called from the 'BasejFormTK' Class after ALL of the 'JFormForm' Application
                Form's have been registered with *this* Object...

        NOTE:
        The nodes MUST be added to the 'jFormTree' Object after they have all been
        identified so that the Java 'JTree' Object will display the nested Categoty,
        FileName Folders in the familiar Window's Explorer Style...