net.sourceforge.msscodefactory.cfbam.v2_7.CFBamJavaFX.CFBamJavaFXTablePickerPane.java Source code

Java tutorial

Introduction

Here is the source code for net.sourceforge.msscodefactory.cfbam.v2_7.CFBamJavaFX.CFBamJavaFXTablePickerPane.java

Source

// Description: Java 8 JavaFX Picker of Obj Pane implementation for Table.

/*
 *   CFBam
 *
 *   Copyright (c) 2014-2016 Mark Sobkow
 *   
 *   This program is available as free software under the GNU GPL v3, or
 *   under a commercial license from Mark Sobkow.  For commercial licensing
 *   details, please contact msobkow@sasktel.net.
 *   
 *   Under the terms of the GPL:
 *   
 *      This program is free software: you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation, either version 3 of the License, or
 *      (at your option) any later version.
 *     
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *     
 *      You should have received a copy of the GNU General Public License
 *      along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *   
 */

package net.sourceforge.msscodefactory.cfbam.v2_7.CFBamJavaFX;

import java.math.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import java.util.List;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.ScrollBarPolicy;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.control.TableView;
import javafx.util.Callback;
import net.sourceforge.msscodefactory.cflib.v2_7.CFLib.*;
import net.sourceforge.msscodefactory.cflib.v2_7.CFLib.JavaFX.*;
import org.apache.commons.codec.binary.Base64;
import net.sourceforge.msscodefactory.cfsecurity.v2_7.CFSecurity.*;
import net.sourceforge.msscodefactory.cfinternet.v2_7.CFInternet.*;
import net.sourceforge.msscodefactory.cfbam.v2_7.CFBam.*;
import net.sourceforge.msscodefactory.cfsecurity.v2_7.CFSecurityObj.*;
import net.sourceforge.msscodefactory.cfinternet.v2_7.CFInternetObj.*;
import net.sourceforge.msscodefactory.cfbam.v2_7.CFBamObj.*;
import net.sourceforge.msscodefactory.cfsecurity.v2_7.CFSecurityJavaFX.*;
import net.sourceforge.msscodefactory.cfinternet.v2_7.CFInternetJavaFX.*;

/**
 *   CFBamJavaFXTablePickerPane JavaFX Pick Obj Pane implementation
 *   for Table.
 */
public class CFBamJavaFXTablePickerPane extends CFBorderPane implements ICFBamJavaFXTablePaneList {
    public static String S_FormName = "Choose Table";
    protected ICFBamJavaFXSchema javafxSchema = null;
    protected Collection<ICFBamTableObj> javafxDataCollection = null;
    protected ObservableList<ICFBamTableObj> observableListOfTable = null;
    protected TableColumn<ICFBamTableObj, Long> tableColumnId = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnName = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnDbName = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnShortName = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnLabel = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnShortDescription = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnDescription = null;
    protected TableColumn<ICFBamTableObj, Boolean> tableColumnPageData = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnTableClassCode = null;
    protected TableColumn<ICFBamTableObj, Boolean> tableColumnPolyBase = null;
    protected TableColumn<ICFBamTableObj, Boolean> tableColumnIsInstantiable = null;
    protected TableColumn<ICFBamTableObj, Boolean> tableColumnHasHistory = null;
    protected TableColumn<ICFBamTableObj, Boolean> tableColumnHasAuditColumns = null;
    protected TableColumn<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum> tableColumnLoaderBehaviour = null;
    protected TableColumn<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum> tableColumnSecurityScope = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJObjMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJObjInterface = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJObjImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJObjImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJEditObjMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJEditObjInterface = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJEditObjImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJEditObjImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableInterface = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableObjImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableObjMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableObjInterface = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJTableObjImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJDb2LUWTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJDb2LUWTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJDb2LUWTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJMSSqlTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJMSSqlTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJMSSqlTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJMySqlTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJMySqlTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJMySqlTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJOracleTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJOracleTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJOracleTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJPgSqlTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJPgSqlTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJPgSqlTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJSybaseTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJSybaseTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJSybaseTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJRamTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJRamTableMembers = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJRamTableImplementation = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJSaxLoaderImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJSaxLoaderStartElement = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJSaxLoaderEndElement = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgTableFormatters = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgRqstTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgRspnTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgClientTableImport = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgRqstTableBody = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgRspnTableBody = null;
    protected TableColumn<ICFBamTableObj, String> tableColumnJXMsgClientTableBody = null;
    protected TableColumn<ICFBamTableObj, Boolean> tableColumnDefaultVisibility = null;
    protected TableColumn<ICFBamTableObj, ICFBamSchemaDefObj> tableColumnLookupDefSchema = null;
    protected TableColumn<ICFBamTableObj, ICFBamIndexObj> tableColumnLookupLookupIndex = null;
    protected TableColumn<ICFBamTableObj, ICFBamIndexObj> tableColumnLookupAltIndex = null;
    protected TableColumn<ICFBamTableObj, ICFBamTableObj> tableColumnLookupQualTable = null;
    protected TableColumn<ICFBamTableObj, ICFBamIndexObj> tableColumnLookupPrimaryIndex = null;
    protected TableView<ICFBamTableObj> dataTable = null;
    protected CFHBox hboxMenu = null;
    public final String S_ColumnNames[] = { "Name" };
    protected ICFFormManager cfFormManager = null;
    protected ICFBamJavaFXTableChosen invokeWhenChosen = null;
    protected ICFBamSchemaDefObj javafxContainer = null;
    protected CFButton buttonCancel = null;
    protected CFButton buttonChooseNone = null;
    protected CFButton buttonChooseSelected = null;

    public CFBamJavaFXTablePickerPane(ICFFormManager formManager, ICFBamJavaFXSchema argSchema,
            ICFBamTableObj argFocus, ICFBamSchemaDefObj argContainer, Collection<ICFBamTableObj> argDataCollection,
            ICFBamJavaFXTableChosen whenChosen) {
        super();
        final String S_ProcName = "construct-schema-focus";
        if (formManager == null) {
            throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1,
                    "formManager");
        }
        cfFormManager = formManager;
        if (argSchema == null) {
            throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 2,
                    "argSchema");
        }
        if (whenChosen == null) {
            throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 6,
                    "whenChosen");
        }
        invokeWhenChosen = whenChosen;
        // argFocus is optional; focus may be set later during execution as
        // conditions of the runtime change.
        javafxSchema = argSchema;
        javaFXFocus = argFocus;
        javafxContainer = argContainer;
        setJavaFXDataCollection(argDataCollection);
        dataTable = new TableView<ICFBamTableObj>();
        tableColumnId = new TableColumn<ICFBamTableObj, Long>("Id");
        tableColumnId
                .setCellValueFactory(new Callback<CellDataFeatures<ICFBamTableObj, Long>, ObservableValue<Long>>() {
                    public ObservableValue<Long> call(CellDataFeatures<ICFBamTableObj, Long> p) {
                        ICFBamScopeObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            long value = obj.getRequiredId();
                            Long wrapped = new Long(value);
                            ReadOnlyObjectWrapper<Long> observable = new ReadOnlyObjectWrapper<Long>();
                            observable.setValue(wrapped);
                            return (observable);
                        }
                    }
                });
        tableColumnId
                .setCellFactory(new Callback<TableColumn<ICFBamTableObj, Long>, TableCell<ICFBamTableObj, Long>>() {
                    @Override
                    public TableCell<ICFBamTableObj, Long> call(TableColumn<ICFBamTableObj, Long> arg) {
                        return new CFInt64TableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnId);
        tableColumnName = new TableColumn<ICFBamTableObj, String>("Name");
        tableColumnName.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getRequiredName();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnName.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFStringTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnName);
        tableColumnDbName = new TableColumn<ICFBamTableObj, String>("Db Name");
        tableColumnDbName.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalDbName();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnDbName.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFStringTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnDbName);
        tableColumnShortName = new TableColumn<ICFBamTableObj, String>("Short Name");
        tableColumnShortName.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalShortName();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnShortName.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFStringTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnShortName);
        tableColumnLabel = new TableColumn<ICFBamTableObj, String>("Label");
        tableColumnLabel.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalLabel();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnLabel.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFStringTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnLabel);
        tableColumnShortDescription = new TableColumn<ICFBamTableObj, String>("Short Description");
        tableColumnShortDescription.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalShortDescription();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnShortDescription.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFStringTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnShortDescription);
        tableColumnDescription = new TableColumn<ICFBamTableObj, String>("Description");
        tableColumnDescription.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalDescription();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnDescription.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFStringTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnDescription);
        tableColumnPageData = new TableColumn<ICFBamTableObj, Boolean>("PageData");
        tableColumnPageData.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, Boolean>, ObservableValue<Boolean>>() {
                    public ObservableValue<Boolean> call(CellDataFeatures<ICFBamTableObj, Boolean> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            boolean value = obj.getRequiredPageData();
                            Boolean wrapped = new Boolean(value);
                            ReadOnlyObjectWrapper<Boolean> observable = new ReadOnlyObjectWrapper<Boolean>();
                            observable.setValue(wrapped);
                            return (observable);
                        }
                    }
                });
        tableColumnPageData.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, Boolean>, TableCell<ICFBamTableObj, Boolean>>() {
                    @Override
                    public TableCell<ICFBamTableObj, Boolean> call(TableColumn<ICFBamTableObj, Boolean> arg) {
                        return new CFBoolTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnPageData);
        tableColumnTableClassCode = new TableColumn<ICFBamTableObj, String>("Table Class Code");
        tableColumnTableClassCode.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getRequiredTableClassCode();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnTableClassCode.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFStringTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnTableClassCode);
        tableColumnPolyBase = new TableColumn<ICFBamTableObj, Boolean>("Polymorphic Base");
        tableColumnPolyBase.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, Boolean>, ObservableValue<Boolean>>() {
                    public ObservableValue<Boolean> call(CellDataFeatures<ICFBamTableObj, Boolean> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            boolean value = obj.getRequiredPolyBase();
                            Boolean wrapped = new Boolean(value);
                            ReadOnlyObjectWrapper<Boolean> observable = new ReadOnlyObjectWrapper<Boolean>();
                            observable.setValue(wrapped);
                            return (observable);
                        }
                    }
                });
        tableColumnPolyBase.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, Boolean>, TableCell<ICFBamTableObj, Boolean>>() {
                    @Override
                    public TableCell<ICFBamTableObj, Boolean> call(TableColumn<ICFBamTableObj, Boolean> arg) {
                        return new CFBoolTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnPolyBase);
        tableColumnIsInstantiable = new TableColumn<ICFBamTableObj, Boolean>("Is Instantiable");
        tableColumnIsInstantiable.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, Boolean>, ObservableValue<Boolean>>() {
                    public ObservableValue<Boolean> call(CellDataFeatures<ICFBamTableObj, Boolean> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            boolean value = obj.getRequiredIsInstantiable();
                            Boolean wrapped = new Boolean(value);
                            ReadOnlyObjectWrapper<Boolean> observable = new ReadOnlyObjectWrapper<Boolean>();
                            observable.setValue(wrapped);
                            return (observable);
                        }
                    }
                });
        tableColumnIsInstantiable.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, Boolean>, TableCell<ICFBamTableObj, Boolean>>() {
                    @Override
                    public TableCell<ICFBamTableObj, Boolean> call(TableColumn<ICFBamTableObj, Boolean> arg) {
                        return new CFBoolTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnIsInstantiable);
        tableColumnHasHistory = new TableColumn<ICFBamTableObj, Boolean>("Has History");
        tableColumnHasHistory.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, Boolean>, ObservableValue<Boolean>>() {
                    public ObservableValue<Boolean> call(CellDataFeatures<ICFBamTableObj, Boolean> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            boolean value = obj.getRequiredHasHistory();
                            Boolean wrapped = new Boolean(value);
                            ReadOnlyObjectWrapper<Boolean> observable = new ReadOnlyObjectWrapper<Boolean>();
                            observable.setValue(wrapped);
                            return (observable);
                        }
                    }
                });
        tableColumnHasHistory.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, Boolean>, TableCell<ICFBamTableObj, Boolean>>() {
                    @Override
                    public TableCell<ICFBamTableObj, Boolean> call(TableColumn<ICFBamTableObj, Boolean> arg) {
                        return new CFBoolTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnHasHistory);
        tableColumnHasAuditColumns = new TableColumn<ICFBamTableObj, Boolean>("Has Audit Columns");
        tableColumnHasAuditColumns.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, Boolean>, ObservableValue<Boolean>>() {
                    public ObservableValue<Boolean> call(CellDataFeatures<ICFBamTableObj, Boolean> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            boolean value = obj.getRequiredHasAuditColumns();
                            Boolean wrapped = new Boolean(value);
                            ReadOnlyObjectWrapper<Boolean> observable = new ReadOnlyObjectWrapper<Boolean>();
                            observable.setValue(wrapped);
                            return (observable);
                        }
                    }
                });
        tableColumnHasAuditColumns.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, Boolean>, TableCell<ICFBamTableObj, Boolean>>() {
                    @Override
                    public TableCell<ICFBamTableObj, Boolean> call(TableColumn<ICFBamTableObj, Boolean> arg) {
                        return new CFBoolTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnHasAuditColumns);
        tableColumnLoaderBehaviour = new TableColumn<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum>(
                "Loader Behaviour");
        tableColumnLoaderBehaviour.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum>, ObservableValue<ICFBamSchema.LoaderBehaviourEnum>>() {
                    public ObservableValue<ICFBamSchema.LoaderBehaviourEnum> call(
                            CellDataFeatures<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            ICFBamSchema.LoaderBehaviourEnum value = obj.getRequiredLoaderBehaviour();
                            ReadOnlyObjectWrapper<ICFBamSchema.LoaderBehaviourEnum> observable = new ReadOnlyObjectWrapper<ICFBamSchema.LoaderBehaviourEnum>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnLoaderBehaviour.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum>, TableCell<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum>>() {
                    @Override
                    public TableCell<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum> call(
                            TableColumn<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum> arg) {
                        return new CFEnumTableCell<ICFBamTableObj, ICFBamSchema.LoaderBehaviourEnum>();
                    }
                });
        dataTable.getColumns().add(tableColumnLoaderBehaviour);
        tableColumnSecurityScope = new TableColumn<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum>(
                "Security Scope");
        tableColumnSecurityScope.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum>, ObservableValue<ICFBamSchema.SecurityScopeEnum>>() {
                    public ObservableValue<ICFBamSchema.SecurityScopeEnum> call(
                            CellDataFeatures<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            ICFBamSchema.SecurityScopeEnum value = obj.getRequiredSecurityScope();
                            ReadOnlyObjectWrapper<ICFBamSchema.SecurityScopeEnum> observable = new ReadOnlyObjectWrapper<ICFBamSchema.SecurityScopeEnum>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnSecurityScope.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum>, TableCell<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum>>() {
                    @Override
                    public TableCell<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum> call(
                            TableColumn<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum> arg) {
                        return new CFEnumTableCell<ICFBamTableObj, ICFBamSchema.SecurityScopeEnum>();
                    }
                });
        dataTable.getColumns().add(tableColumnSecurityScope);
        tableColumnJObjMembers = new TableColumn<ICFBamTableObj, String>("JObjMembers");
        tableColumnJObjMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJObjMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJObjMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJObjMembers);
        tableColumnJObjInterface = new TableColumn<ICFBamTableObj, String>("JObjInterface");
        tableColumnJObjInterface.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJObjInterface();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJObjInterface.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJObjInterface);
        tableColumnJObjImport = new TableColumn<ICFBamTableObj, String>("JObjImport");
        tableColumnJObjImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJObjImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJObjImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJObjImport);
        tableColumnJObjImplementation = new TableColumn<ICFBamTableObj, String>("JObjImplementation");
        tableColumnJObjImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJObjImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJObjImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJObjImplementation);
        tableColumnJEditObjMembers = new TableColumn<ICFBamTableObj, String>("JEditObjMembers");
        tableColumnJEditObjMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJEditObjMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJEditObjMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJEditObjMembers);
        tableColumnJEditObjInterface = new TableColumn<ICFBamTableObj, String>("JEditObjInterface");
        tableColumnJEditObjInterface.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJEditObjInterface();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJEditObjInterface.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJEditObjInterface);
        tableColumnJEditObjImport = new TableColumn<ICFBamTableObj, String>("JEditObjImport");
        tableColumnJEditObjImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJEditObjImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJEditObjImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJEditObjImport);
        tableColumnJEditObjImplementation = new TableColumn<ICFBamTableObj, String>("JEditObjImplementation");
        tableColumnJEditObjImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJEditObjImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJEditObjImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJEditObjImplementation);
        tableColumnJTableImport = new TableColumn<ICFBamTableObj, String>("JTableImport");
        tableColumnJTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableImport);
        tableColumnJTableMembers = new TableColumn<ICFBamTableObj, String>("JTableMembers");
        tableColumnJTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableMembers);
        tableColumnJTableInterface = new TableColumn<ICFBamTableObj, String>("JTableInterface");
        tableColumnJTableInterface.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableInterface();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableInterface.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableInterface);
        tableColumnJTableImplementation = new TableColumn<ICFBamTableObj, String>("JTableImplementation");
        tableColumnJTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableImplementation);
        tableColumnJTableObjImport = new TableColumn<ICFBamTableObj, String>("JTableObjImport");
        tableColumnJTableObjImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableObjImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableObjImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableObjImport);
        tableColumnJTableObjMembers = new TableColumn<ICFBamTableObj, String>("JTableObjMembers");
        tableColumnJTableObjMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableObjMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableObjMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableObjMembers);
        tableColumnJTableObjInterface = new TableColumn<ICFBamTableObj, String>("JTableObjInterface");
        tableColumnJTableObjInterface.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableObjInterface();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableObjInterface.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableObjInterface);
        tableColumnJTableObjImplementation = new TableColumn<ICFBamTableObj, String>("JTableObjImplementation");
        tableColumnJTableObjImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJTableObjImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJTableObjImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJTableObjImplementation);
        tableColumnJDb2LUWTableImport = new TableColumn<ICFBamTableObj, String>("JDb2LUWTableImport");
        tableColumnJDb2LUWTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJDb2LUWTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJDb2LUWTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJDb2LUWTableImport);
        tableColumnJDb2LUWTableMembers = new TableColumn<ICFBamTableObj, String>("JDb2LUWTableMembers");
        tableColumnJDb2LUWTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJDb2LUWTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJDb2LUWTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJDb2LUWTableMembers);
        tableColumnJDb2LUWTableImplementation = new TableColumn<ICFBamTableObj, String>(
                "JDb2LUWTableImplementation");
        tableColumnJDb2LUWTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJDb2LUWTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJDb2LUWTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJDb2LUWTableImplementation);
        tableColumnJMSSqlTableImport = new TableColumn<ICFBamTableObj, String>("JMSSqlTableImport");
        tableColumnJMSSqlTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJMSSqlTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJMSSqlTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJMSSqlTableImport);
        tableColumnJMSSqlTableMembers = new TableColumn<ICFBamTableObj, String>("JMSSqlTableMembers");
        tableColumnJMSSqlTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJMSSqlTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJMSSqlTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJMSSqlTableMembers);
        tableColumnJMSSqlTableImplementation = new TableColumn<ICFBamTableObj, String>("JMSSqlTableImplementation");
        tableColumnJMSSqlTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJMSSqlTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJMSSqlTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJMSSqlTableImplementation);
        tableColumnJMySqlTableImport = new TableColumn<ICFBamTableObj, String>("JMySqlTableImport");
        tableColumnJMySqlTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJMySqlTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJMySqlTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJMySqlTableImport);
        tableColumnJMySqlTableMembers = new TableColumn<ICFBamTableObj, String>("JMySqlTableMembers");
        tableColumnJMySqlTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJMySqlTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJMySqlTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJMySqlTableMembers);
        tableColumnJMySqlTableImplementation = new TableColumn<ICFBamTableObj, String>("JMySqlTableImplementation");
        tableColumnJMySqlTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJMySqlTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJMySqlTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJMySqlTableImplementation);
        tableColumnJOracleTableImport = new TableColumn<ICFBamTableObj, String>("JOracleTableImport");
        tableColumnJOracleTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJOracleTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJOracleTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJOracleTableImport);
        tableColumnJOracleTableMembers = new TableColumn<ICFBamTableObj, String>("JOracleTableMembers");
        tableColumnJOracleTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJOracleTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJOracleTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJOracleTableMembers);
        tableColumnJOracleTableImplementation = new TableColumn<ICFBamTableObj, String>(
                "JOracleTableImplementation");
        tableColumnJOracleTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJOracleTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJOracleTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJOracleTableImplementation);
        tableColumnJPgSqlTableImport = new TableColumn<ICFBamTableObj, String>("JPgSqlTableImport");
        tableColumnJPgSqlTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJPgSqlTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJPgSqlTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJPgSqlTableImport);
        tableColumnJPgSqlTableMembers = new TableColumn<ICFBamTableObj, String>("JPgSqlTableMembers");
        tableColumnJPgSqlTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJPgSqlTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJPgSqlTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJPgSqlTableMembers);
        tableColumnJPgSqlTableImplementation = new TableColumn<ICFBamTableObj, String>("JPgSqlTableImplementation");
        tableColumnJPgSqlTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJPgSqlTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJPgSqlTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJPgSqlTableImplementation);
        tableColumnJSybaseTableImport = new TableColumn<ICFBamTableObj, String>("JSybaseTableImport");
        tableColumnJSybaseTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJSybaseTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJSybaseTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJSybaseTableImport);
        tableColumnJSybaseTableMembers = new TableColumn<ICFBamTableObj, String>("JSybaseTableMembers");
        tableColumnJSybaseTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJSybaseTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJSybaseTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJSybaseTableMembers);
        tableColumnJSybaseTableImplementation = new TableColumn<ICFBamTableObj, String>(
                "JSybaseTableImplementation");
        tableColumnJSybaseTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJSybaseTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJSybaseTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJSybaseTableImplementation);
        tableColumnJRamTableImport = new TableColumn<ICFBamTableObj, String>("JRamTableImport");
        tableColumnJRamTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJRamTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJRamTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJRamTableImport);
        tableColumnJRamTableMembers = new TableColumn<ICFBamTableObj, String>("JRamTableMembers");
        tableColumnJRamTableMembers.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJRamTableMembers();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJRamTableMembers.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJRamTableMembers);
        tableColumnJRamTableImplementation = new TableColumn<ICFBamTableObj, String>("JRamTableImplementation");
        tableColumnJRamTableImplementation.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJRamTableImplementation();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJRamTableImplementation.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJRamTableImplementation);
        tableColumnJSaxLoaderImport = new TableColumn<ICFBamTableObj, String>("JSaxLoaderImport");
        tableColumnJSaxLoaderImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJSaxLoaderImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJSaxLoaderImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJSaxLoaderImport);
        tableColumnJSaxLoaderStartElement = new TableColumn<ICFBamTableObj, String>("JSaxLoaderStartElement");
        tableColumnJSaxLoaderStartElement.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJSaxLoaderStartElement();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJSaxLoaderStartElement.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJSaxLoaderStartElement);
        tableColumnJSaxLoaderEndElement = new TableColumn<ICFBamTableObj, String>("JSaxLoaderEndElement");
        tableColumnJSaxLoaderEndElement.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJSaxLoaderEndElement();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJSaxLoaderEndElement.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJSaxLoaderEndElement);
        tableColumnJXMsgTableImport = new TableColumn<ICFBamTableObj, String>("JXMsgTableImport");
        tableColumnJXMsgTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgTableImport);
        tableColumnJXMsgTableFormatters = new TableColumn<ICFBamTableObj, String>("JXMsgTableFormatters");
        tableColumnJXMsgTableFormatters.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgTableFormatters();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgTableFormatters.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgTableFormatters);
        tableColumnJXMsgRqstTableImport = new TableColumn<ICFBamTableObj, String>("JXMsgRqstTableImport");
        tableColumnJXMsgRqstTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgRqstTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgRqstTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgRqstTableImport);
        tableColumnJXMsgRspnTableImport = new TableColumn<ICFBamTableObj, String>("JXMsgRspnTableImport");
        tableColumnJXMsgRspnTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgRspnTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgRspnTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgRspnTableImport);
        tableColumnJXMsgClientTableImport = new TableColumn<ICFBamTableObj, String>("JXMsgClientTableImport");
        tableColumnJXMsgClientTableImport.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgClientTableImport();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgClientTableImport.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgClientTableImport);
        tableColumnJXMsgRqstTableBody = new TableColumn<ICFBamTableObj, String>("JXMsgRqstTableBody");
        tableColumnJXMsgRqstTableBody.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgRqstTableBody();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgRqstTableBody.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgRqstTableBody);
        tableColumnJXMsgRspnTableBody = new TableColumn<ICFBamTableObj, String>("JXMsgRspnTableBody");
        tableColumnJXMsgRspnTableBody.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgRspnTableBody();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgRspnTableBody.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgRspnTableBody);
        tableColumnJXMsgClientTableBody = new TableColumn<ICFBamTableObj, String>("JXMsgClientTableBody");
        tableColumnJXMsgClientTableBody.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(CellDataFeatures<ICFBamTableObj, String> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            String value = obj.getOptionalJXMsgClientTableBody();
                            ReadOnlyObjectWrapper<String> observable = new ReadOnlyObjectWrapper<String>();
                            observable.setValue(value);
                            return (observable);
                        }
                    }
                });
        tableColumnJXMsgClientTableBody.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, String>, TableCell<ICFBamTableObj, String>>() {
                    @Override
                    public TableCell<ICFBamTableObj, String> call(TableColumn<ICFBamTableObj, String> arg) {
                        return new CFTextTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnJXMsgClientTableBody);
        tableColumnDefaultVisibility = new TableColumn<ICFBamTableObj, Boolean>("DefaultVisibility");
        tableColumnDefaultVisibility.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, Boolean>, ObservableValue<Boolean>>() {
                    public ObservableValue<Boolean> call(CellDataFeatures<ICFBamTableObj, Boolean> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            boolean value = obj.getRequiredDefaultVisibility();
                            Boolean wrapped = new Boolean(value);
                            ReadOnlyObjectWrapper<Boolean> observable = new ReadOnlyObjectWrapper<Boolean>();
                            observable.setValue(wrapped);
                            return (observable);
                        }
                    }
                });
        tableColumnDefaultVisibility.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, Boolean>, TableCell<ICFBamTableObj, Boolean>>() {
                    @Override
                    public TableCell<ICFBamTableObj, Boolean> call(TableColumn<ICFBamTableObj, Boolean> arg) {
                        return new CFBoolTableCell<ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnDefaultVisibility);
        tableColumnLookupDefSchema = new TableColumn<ICFBamTableObj, ICFBamSchemaDefObj>(
                "Defining Schema Definition");
        tableColumnLookupDefSchema.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, ICFBamSchemaDefObj>, ObservableValue<ICFBamSchemaDefObj>>() {
                    public ObservableValue<ICFBamSchemaDefObj> call(
                            CellDataFeatures<ICFBamTableObj, ICFBamSchemaDefObj> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            ICFBamSchemaDefObj ref = obj.getOptionalLookupDefSchema();
                            ReadOnlyObjectWrapper<ICFBamSchemaDefObj> observable = new ReadOnlyObjectWrapper<ICFBamSchemaDefObj>();
                            observable.setValue(ref);
                            return (observable);
                        }
                    }
                });
        tableColumnLookupDefSchema.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, ICFBamSchemaDefObj>, TableCell<ICFBamTableObj, ICFBamSchemaDefObj>>() {
                    @Override
                    public TableCell<ICFBamTableObj, ICFBamSchemaDefObj> call(
                            TableColumn<ICFBamTableObj, ICFBamSchemaDefObj> arg) {
                        return new CFReferenceTableCell<ICFBamTableObj, ICFBamSchemaDefObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnLookupDefSchema);
        tableColumnLookupLookupIndex = new TableColumn<ICFBamTableObj, ICFBamIndexObj>("Lookup Index");
        tableColumnLookupLookupIndex.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, ICFBamIndexObj>, ObservableValue<ICFBamIndexObj>>() {
                    public ObservableValue<ICFBamIndexObj> call(
                            CellDataFeatures<ICFBamTableObj, ICFBamIndexObj> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            ICFBamIndexObj ref = obj.getOptionalLookupLookupIndex();
                            ReadOnlyObjectWrapper<ICFBamIndexObj> observable = new ReadOnlyObjectWrapper<ICFBamIndexObj>();
                            observable.setValue(ref);
                            return (observable);
                        }
                    }
                });
        tableColumnLookupLookupIndex.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, ICFBamIndexObj>, TableCell<ICFBamTableObj, ICFBamIndexObj>>() {
                    @Override
                    public TableCell<ICFBamTableObj, ICFBamIndexObj> call(
                            TableColumn<ICFBamTableObj, ICFBamIndexObj> arg) {
                        return new CFReferenceTableCell<ICFBamTableObj, ICFBamIndexObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnLookupLookupIndex);
        tableColumnLookupAltIndex = new TableColumn<ICFBamTableObj, ICFBamIndexObj>("Alt Index");
        tableColumnLookupAltIndex.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, ICFBamIndexObj>, ObservableValue<ICFBamIndexObj>>() {
                    public ObservableValue<ICFBamIndexObj> call(
                            CellDataFeatures<ICFBamTableObj, ICFBamIndexObj> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            ICFBamIndexObj ref = obj.getOptionalLookupAltIndex();
                            ReadOnlyObjectWrapper<ICFBamIndexObj> observable = new ReadOnlyObjectWrapper<ICFBamIndexObj>();
                            observable.setValue(ref);
                            return (observable);
                        }
                    }
                });
        tableColumnLookupAltIndex.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, ICFBamIndexObj>, TableCell<ICFBamTableObj, ICFBamIndexObj>>() {
                    @Override
                    public TableCell<ICFBamTableObj, ICFBamIndexObj> call(
                            TableColumn<ICFBamTableObj, ICFBamIndexObj> arg) {
                        return new CFReferenceTableCell<ICFBamTableObj, ICFBamIndexObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnLookupAltIndex);
        tableColumnLookupQualTable = new TableColumn<ICFBamTableObj, ICFBamTableObj>("Qualifying Table");
        tableColumnLookupQualTable.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, ICFBamTableObj>, ObservableValue<ICFBamTableObj>>() {
                    public ObservableValue<ICFBamTableObj> call(
                            CellDataFeatures<ICFBamTableObj, ICFBamTableObj> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            ICFBamTableObj ref = obj.getOptionalLookupQualTable();
                            ReadOnlyObjectWrapper<ICFBamTableObj> observable = new ReadOnlyObjectWrapper<ICFBamTableObj>();
                            observable.setValue(ref);
                            return (observable);
                        }
                    }
                });
        tableColumnLookupQualTable.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, ICFBamTableObj>, TableCell<ICFBamTableObj, ICFBamTableObj>>() {
                    @Override
                    public TableCell<ICFBamTableObj, ICFBamTableObj> call(
                            TableColumn<ICFBamTableObj, ICFBamTableObj> arg) {
                        return new CFReferenceTableCell<ICFBamTableObj, ICFBamTableObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnLookupQualTable);
        tableColumnLookupPrimaryIndex = new TableColumn<ICFBamTableObj, ICFBamIndexObj>("Primary Index");
        tableColumnLookupPrimaryIndex.setCellValueFactory(
                new Callback<CellDataFeatures<ICFBamTableObj, ICFBamIndexObj>, ObservableValue<ICFBamIndexObj>>() {
                    public ObservableValue<ICFBamIndexObj> call(
                            CellDataFeatures<ICFBamTableObj, ICFBamIndexObj> p) {
                        ICFBamTableObj obj = p.getValue();
                        if (obj == null) {
                            return (null);
                        } else {
                            ICFBamIndexObj ref = obj.getOptionalLookupPrimaryIndex();
                            ReadOnlyObjectWrapper<ICFBamIndexObj> observable = new ReadOnlyObjectWrapper<ICFBamIndexObj>();
                            observable.setValue(ref);
                            return (observable);
                        }
                    }
                });
        tableColumnLookupPrimaryIndex.setCellFactory(
                new Callback<TableColumn<ICFBamTableObj, ICFBamIndexObj>, TableCell<ICFBamTableObj, ICFBamIndexObj>>() {
                    @Override
                    public TableCell<ICFBamTableObj, ICFBamIndexObj> call(
                            TableColumn<ICFBamTableObj, ICFBamIndexObj> arg) {
                        return new CFReferenceTableCell<ICFBamTableObj, ICFBamIndexObj>();
                    }
                });
        dataTable.getColumns().add(tableColumnLookupPrimaryIndex);
        dataTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<ICFBamTableObj>() {
            @Override
            public void changed(ObservableValue<? extends ICFBamTableObj> observable, ICFBamTableObj oldValue,
                    ICFBamTableObj newValue) {
                setJavaFXFocus(newValue);
                if (buttonChooseSelected != null) {
                    if (newValue != null) {
                        buttonChooseSelected.setDisable(false);
                    } else {
                        buttonChooseSelected.setDisable(true);
                    }
                }
            }
        });
        hboxMenu = new CFHBox(10);
        buttonCancel = new CFButton();
        buttonCancel.setMinWidth(200);
        buttonCancel.setText("Cancel");
        buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                final String S_ProcName = "handle";
                try {
                    cfFormManager.closeCurrentForm();
                } catch (Throwable t) {
                    CFConsole.formException(S_FormName, ((CFButton) e.getSource()).getText(), t);
                }
            }
        });
        hboxMenu.getChildren().add(buttonCancel);
        buttonChooseNone = new CFButton();
        buttonChooseNone.setMinWidth(200);
        buttonChooseNone.setText("ChooseNone");
        buttonChooseNone.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                final String S_ProcName = "handle";
                try {
                    ICFBamSchemaObj schemaObj = (ICFBamSchemaObj) javafxSchema.getSchema();
                    if (schemaObj == null) {
                        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                                "schemaObj");
                    }
                    invokeWhenChosen.choseTable(null);
                    cfFormManager.closeCurrentForm();
                } catch (Throwable t) {
                    CFConsole.formException(S_FormName, ((CFButton) e.getSource()).getText(), t);
                }
            }
        });
        hboxMenu.getChildren().add(buttonChooseNone);
        buttonChooseSelected = new CFButton();
        buttonChooseSelected.setMinWidth(200);
        buttonChooseSelected.setText("ChooseSelected");
        buttonChooseSelected.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                final String S_ProcName = "handle";
                try {
                    ICFBamSchemaObj schemaObj = (ICFBamSchemaObj) javafxSchema.getSchema();
                    if (schemaObj == null) {
                        throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                                "schemaObj");
                    }
                    ICFBamTableObj selectedInstance = getJavaFXFocusAsTable();
                    invokeWhenChosen.choseTable(selectedInstance);
                    cfFormManager.closeCurrentForm();
                } catch (Throwable t) {
                    CFConsole.formException(S_FormName, ((CFButton) e.getSource()).getText(), t);
                }
            }
        });
        hboxMenu.getChildren().add(buttonChooseSelected);
        if (argFocus != null) {
            dataTable.getSelectionModel().select(argFocus);
        }
        setTop(hboxMenu);
        setCenter(dataTable);
    }

    public ICFFormManager getCFFormManager() {
        return (cfFormManager);
    }

    public void setCFFormManager(ICFFormManager value) {
        final String S_ProcName = "setCFFormManager";
        if (value == null) {
            throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 1, "value");
        }
        cfFormManager = value;
    }

    public ICFBamJavaFXSchema getJavaFXSchema() {
        return (javafxSchema);
    }

    public void setJavaFXFocus(ICFLibAnyObj value) {
        final String S_ProcName = "setJavaFXFocus";
        if ((value == null) || (value instanceof ICFBamTableObj)) {
            super.setJavaFXFocus(value);
        } else {
            throw CFLib.getDefaultExceptionFactory().newUnsupportedClassException(getClass(), S_ProcName, "value",
                    value, "ICFBamTableObj");
        }
        if (dataTable == null) {
            return;
        }
    }

    public ICFBamTableObj getJavaFXFocusAsTable() {
        return ((ICFBamTableObj) getJavaFXFocus());
    }

    public void setJavaFXFocusAsTable(ICFBamTableObj value) {
        setJavaFXFocus(value);
    }

    public class TableByQualNameComparator implements Comparator<ICFBamTableObj> {
        public TableByQualNameComparator() {
        }

        public int compare(ICFBamTableObj lhs, ICFBamTableObj rhs) {
            if (lhs == null) {
                if (rhs == null) {
                    return (0);
                } else {
                    return (-1);
                }
            } else if (rhs == null) {
                return (1);
            } else {
                String lhsValue = lhs.getObjQualifiedName();
                String rhsValue = rhs.getObjQualifiedName();
                if (lhsValue == null) {
                    if (rhsValue == null) {
                        return (0);
                    } else {
                        return (-1);
                    }
                } else if (rhsValue == null) {
                    return (1);
                } else {
                    return (lhsValue.compareTo(rhsValue));
                }
            }
        }
    }

    protected TableByQualNameComparator compareTableByQualName = new TableByQualNameComparator();

    public Collection<ICFBamTableObj> getJavaFXDataCollection() {
        return (javafxDataCollection);
    }

    public void setJavaFXDataCollection(Collection<ICFBamTableObj> value) {
        final String S_ProcName = "setJavaFXDataCollection";
        javafxDataCollection = value;
        observableListOfTable = null;
        if (javafxDataCollection != null) {
            observableListOfTable = FXCollections.observableArrayList(javafxDataCollection);
            observableListOfTable.sort(compareTableByQualName);
        } else {
            observableListOfTable = FXCollections.observableArrayList();
        }
        if (dataTable != null) {
            dataTable.setItems(observableListOfTable);
            // Hack from stackoverflow to fix JavaFX TableView refresh issue
            ((TableColumn) dataTable.getColumns().get(0)).setVisible(false);
            ((TableColumn) dataTable.getColumns().get(0)).setVisible(true);
        }
    }

    public ICFBamSchemaDefObj getJavaFXContainer() {
        return (javafxContainer);
    }

    public void setJavaFXContainer(ICFBamSchemaDefObj value) {
        javafxContainer = value;
    }
}