Example usage for com.jgoodies.forms.layout FormLayout FormLayout

List of usage examples for com.jgoodies.forms.layout FormLayout FormLayout

Introduction

In this page you can find the example usage for com.jgoodies.forms.layout FormLayout FormLayout.

Prototype

public FormLayout(ColumnSpec[] colSpecs, RowSpec[] rowSpecs) 

Source Link

Document

Constructs a FormLayout using the given column and row specifications.

Usage

From source file:ca.sqlpower.architect.swingui.olap.HierarchyEditPanel.java

License:Open Source License

/**
 * Creates a new property editor for the given OLAP Hierarchy. 
 * /*  w  ww. j  av  a2 s  .  c o m*/
 * @param cube The data model of the hierarchy to edit
 */
public HierarchyEditPanel(Hierarchy hierarchy) throws SQLObjectException {
    this.hierarchy = hierarchy;

    List<SQLTable> tables = OLAPUtil.getAvailableTables(hierarchy);

    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.append(status, 3);
    builder.append("Name", name = new JTextField(hierarchy.getName()));
    builder.append("Caption", captionField = new JTextField(hierarchy.getCaption()));
    builder.append("Has All", hasAll = new JCheckBox());
    hasAll.setSelected(hierarchy.getHasAll() != null ? hierarchy.getHasAll() : true);
    builder.append("All Level Name", allLevelName = new JTextField(
            hierarchy.getAllLevelName() != null ? hierarchy.getAllLevelName() : "All"));

    builder.append("Table", tableChooser = new JComboBox(new Vector<SQLTable>(tables)));
    builder.append("Primary Key", primaryKey = new JComboBox());

    if (tables.isEmpty()) {
        tableChooser.addItem("Database has no tables");
        tableChooser.setEnabled(false);
        primaryKey.addItem("Table not selected");
        primaryKey.setEnabled(false);
    } else {
        SQLTable t = OLAPUtil.tableForHierarchy(hierarchy);
        if (tables.contains(t)) {
            tableChooser.setSelectedItem(t);
        } else {
            t = (SQLTable) tableChooser.getSelectedItem();
        }
        updateColumns(hierarchy.getPrimaryKey());
    }

    tableChooser.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            updateColumns(null);
        }
    });

    handler = new FormValidationHandler(status, true);
    Validator validator = new OLAPObjectNameValidator((OLAPObject) hierarchy.getParent(), hierarchy, true);
    handler.addValidateObject(name, validator);
    handler.addValidateObject(primaryKey, new NotNullValidator("Primary key"));

    panel = builder.getPanel();
}

From source file:ca.sqlpower.architect.swingui.olap.JoinEntryPanel.java

License:Open Source License

private void buildUI() {
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("fill:max(500dlu;pref):grow", "pref, fill:max(300dlu;pref):grow"), panel);
    JToolBar toolbar = new JToolBar();
    toolbar.add(pen.getDeleteButton());/*from w w w.j a  v a 2  s . com*/
    toolbar.add(pen.getCreateJoinButton());
    toolbar.addSeparator();
    toolbar.add(pen.getZoomSliderContainer());
    builder.append(toolbar);
    builder.nextLine();
    JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    splitPane.add(pen.getScrollPane(), JSplitPane.LEFT);

    SQLObjectRoot root = new SQLObjectRoot();
    TreeModel treeModel;
    DBTree tree;
    try {
        root.addChild(db);
        tree = new DBTree(session);
        treeModel = new DBTreeModel(root, tree);
    } catch (SQLObjectException e) {
        throw new RuntimeException(e);
    }
    tree.setModel(treeModel);
    tree.setPopupMenuEnabled(false);

    JPanel treePanel = new JPanel(new BorderLayout());
    treePanel.add(new JLabel(db.getName()), BorderLayout.NORTH);
    treePanel.add(new JScrollPane(tree));

    splitPane.add(treePanel, JSplitPane.RIGHT);
    splitPane.setResizeWeight(0.95);

    builder.append(splitPane);
}

From source file:ca.sqlpower.architect.swingui.olap.LevelEditPanel.java

License:Open Source License

/**
 * Creates a new property editor for the given level of a hierarchy.
 * /*from  www  .  ja  v  a  2s .  c o  m*/
 * @param cube
 *            The data model of the Level to edit
 * @throws SQLObjectException
 *             if digging up the source table results in a database error
 */
public LevelEditPanel(Level level) throws SQLObjectException {
    this.level = level;

    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.append(status, 3);
    builder.append("Name", name = new JTextField(level.getName()));
    builder.append("Caption", captionField = new JTextField(level.getCaption()));
    builder.append("Column", columnChooser = new JComboBox());

    if (level.getUniqueMembers() != null) {
        builder.append("Unique Members", uniqueMembers = new JCheckBox("", level.getUniqueMembers()));
    } else {
        builder.append("Unique Members", uniqueMembers = new JCheckBox(""));
    }

    Hierarchy hierarchy = (Hierarchy) level.getParent();

    Dimension dimension = (Dimension) hierarchy.getParent();

    // Currently, the levelType attribute appears to only apply to Time Dimensions
    if (dimension.getType() != null && dimension.getType().equals("TimeDimension")) {
        builder.append("Level Type", levelType = new JComboBox(LevelType.values()));
        if (level.getLevelType() != null) {
            levelType.setSelectedItem(LevelType.valueOf(level.getLevelType()));
        } else {
            levelType.setSelectedItem(LevelType.values()[0]);
        }
    }

    SQLTable dimensionTable = OLAPUtil.tableForHierarchy(hierarchy);

    // if the hierarchy's table was not set, then we try to find it from elsewhere.
    // we'll look through the cubes that reference the hierarchy's parent dimension
    // and if the fact table and foreign keys of those are same through out, we set
    // those values for the hierarchy.
    if (dimensionTable == null) {
        OLAPSession oSession = OLAPUtil.getSession(level);
        Schema sch = oSession.getSchema();
        String parentDimName = hierarchy.getParent().getName();

        boolean valid = true;
        Table fact = null;
        String foreignKey = null;
        for (int i = 0; i < sch.getCubes().size() && valid; i++) {
            Cube c = sch.getCubes().get(i);
            if (c.getFact() == null)
                continue;
            for (CubeDimension cd : c.getDimensions()) {
                if (cd instanceof DimensionUsage) {
                    DimensionUsage du = (DimensionUsage) cd;
                    if (du.getSource().equalsIgnoreCase(parentDimName)) {
                        Table rel = (Table) c.getFact();
                        String fk = du.getForeignKey();

                        if (fk != null) {
                            if (fact == null && foreignKey == null) {
                                fact = rel;
                                foreignKey = fk;
                            } else {
                                if (!fact.getSchema().equalsIgnoreCase(rel.getSchema())
                                        || !fact.getName().equalsIgnoreCase(rel.getName())
                                        || !foreignKey.equalsIgnoreCase(fk)) {
                                    valid = false;
                                }
                            }
                        }

                        break;
                    }
                }
            }
        }

        if (valid && fact != null && foreignKey != null) {
            dimensionTable = OLAPUtil.getSQLTableFromOLAPTable(oSession.getDatabase(), fact);
            Table tab = new Table();
            tab.setSchema(fact.getSchema());
            tab.setName(fact.getName());
            hierarchy.setRelation(tab);
            hierarchy.setPrimaryKey(foreignKey);
        }
    }

    if (dimensionTable == null) {
        columnChooser.addItem("Parent hierarchy has no table");
        columnChooser.setEnabled(false);
    } else if (dimensionTable.getColumns().isEmpty()) {
        columnChooser.addItem("Parent hierarchy table has no columns");
        columnChooser.setEnabled(false);
    } else {
        columnChooser.setModel(new SQLObjectComboBoxModel(dimensionTable, SQLColumn.class));
        for (SQLColumn col : dimensionTable.getColumns()) {
            if (col.getName().equalsIgnoreCase(level.getColumn())) {
                columnChooser.setSelectedItem(col);
            }
        }
    }

    handler = new FormValidationHandler(status, true);
    Validator validator = new OLAPObjectNameValidator((OLAPObject) level.getParent(), level, false);
    handler.addValidateObject(name, validator);
    handler.addValidateObject(columnChooser, new NotNullValidator("Column"));

    builder.appendSeparator("Properties");
    propertiesPanel = new PropertiesEditPanel(dimensionTable, handler);
    builder.append(propertiesPanel, 3);

    panel = builder.getPanel();
}

From source file:ca.sqlpower.architect.swingui.olap.MeasureEditPanel.java

License:Open Source License

/**
 * Creates a new property editor for the given OLAP Measure. 
 * //from w ww . j  a va2s.  c o m
 * @param cube The data model of the measure to edit
 * @throws SQLObjectException
 *             if populating the necessary SQLObjects fails
 */
public MeasureEditPanel(Measure measure) throws SQLObjectException {
    this.measure = measure;

    handler = new FormValidationHandler(status, true);
    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.append(status, 3);
    builder.append("Name", name = new JTextField(measure.getName()));
    builder.append("Caption", captionField = new JTextField(measure.getCaption()));

    String[] rolapAggregates = new String[] { "sum", "count", "min", "max", "avg", "distinct-count" };
    builder.append("Aggregator", aggregator = new JComboBox(rolapAggregates));
    if (measure.getAggregator() != null) {
        aggregator.setSelectedItem(measure.getAggregator());
    }

    builder.appendSeparator("Value");

    Action radioButtonsAction = new AbstractAction() {
        public void actionPerformed(ActionEvent arg0) {
            columnChooser.setEnabled(columnRadioButton.isSelected());
            expression.setEnabled(expRadioButton.isSelected());
            handler.performFormValidation();
        }
    };

    columnRadioButton = new JRadioButton();
    columnRadioButton.setAction(radioButtonsAction);
    columnRadioButton.setText("Use Column");
    expRadioButton = new JRadioButton();
    expRadioButton.setAction(radioButtonsAction);
    expRadioButton.setText("Use Expression");

    ButtonGroup buttonGroup = new ButtonGroup();
    buttonGroup.add(columnRadioButton);
    buttonGroup.add(expRadioButton);

    builder.append(columnRadioButton, 3);
    builder.append(columnChooser = new JComboBox(), 3);
    builder.append(expRadioButton, 3);
    builder.append(new JScrollPane(expression = new JTextArea(4, 30)), 3);
    expression.setLineWrap(true);

    Cube parentCube = (Cube) measure.getParent();
    SQLTable cubeTable = OLAPUtil.tableForCube(parentCube);
    boolean enableColumns = false;
    if (cubeTable == null) {
        columnChooser.addItem("Parent Cube has no table");
    } else if (cubeTable.getColumns().isEmpty()) {
        columnChooser.addItem("Parent Cube table has no columns");
    } else {
        columnChooser.setModel(new SQLObjectComboBoxModel(cubeTable, SQLColumn.class));
        columnRadioButton.doClick();
        for (SQLColumn col : cubeTable.getColumns()) {
            if (col.getName().equalsIgnoreCase(measure.getColumn())) {
                columnChooser.setSelectedItem(col);
                break;
            }
        }
        enableColumns = true;
    }
    columnChooser.setEnabled(enableColumns);
    columnRadioButton.setEnabled(enableColumns);

    SQL exp = null;
    MeasureExpression mExp = measure.getMeasureExp();
    if (mExp != null) {
        for (SQL sql : measure.getMeasureExp().getExpressions()) {
            // we only support generic expressions right now.
            if (sql.getDialect() != null && sql.getDialect().equalsIgnoreCase("generic")) {
                exp = sql;
            }
        }
        expRadioButton.doClick();
    }
    expression.setText(exp == null ? "" : exp.getText());

    if (!columnRadioButton.isSelected()) {
        expRadioButton.doClick();
    }

    Validator validator = new OLAPObjectNameValidator((OLAPObject) measure.getParent(), measure, false);
    handler.addValidateObject(name, validator);
    handler.addValidateObject(columnChooser, new NotNullValidator("Value column"));

    panel = builder.getPanel();
}

From source file:ca.sqlpower.architect.swingui.olap.OLAPSchemaManager.java

License:Open Source License

private JPanel createPanel() {
    FormLayout layout = new FormLayout("6dlu, fill:min(160dlu;default):grow, 6dlu, pref, 6dlu", // columns //$NON-NLS-1$
            " 6dlu,10dlu,6dlu,fill:min(180dlu;default):grow,10dlu"); // rows //$NON-NLS-1$

    layout.setColumnGroups(new int[][] { { 1, 3, 5 } });
    CellConstraints cc = new CellConstraints();

    PanelBuilder pb;/*from   w w  w .  j a  v  a  2 s.  co m*/
    JPanel p = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);
    pb = new PanelBuilder(layout, p);
    pb.setDefaultDialogBorder();

    pb.add(new JLabel("Available OLAP Schemas"), cc.xy(2, 2)); //$NON-NLS-1$

    TableModel tm = new SchemaTableModel(session.getOLAPRootObject());
    osessionTable = new JTable(tm);
    osessionTable.setTableHeader(null);
    osessionTable.setShowGrid(false);
    osessionTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    osessionTable.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent evt) {
            boolean enableActions = getSelectedOSession() != null;
            removeOLAPSchemaAction.setEnabled(enableActions);
            editOLAPSchemaAction.setEnabled(enableActions);
            exportSchemaAction.setEnabled(enableActions);

            if (evt.getClickCount() == 2) {
                editOLAPSchemaAction.actionPerformed(null);
            }
        }
    });

    JScrollPane sp = new JScrollPane(osessionTable);

    pb.add(sp, cc.xy(2, 4));

    ButtonStackBuilder bsb = new ButtonStackBuilder();

    JButton newOLAPSchemaButton = new JButton(new OLAPEditAction(session, null));
    newOLAPSchemaButton.setText("New...");
    bsb.addGridded(newOLAPSchemaButton);
    bsb.addRelatedGap();

    JButton importOLAPSchemaButton = new JButton(new ImportSchemaAction(session));
    importOLAPSchemaButton.setText("Import...");
    bsb.addGridded(importOLAPSchemaButton);
    bsb.addGridded(new JButton(exportSchemaAction));
    bsb.addRelatedGap();

    bsb.addGridded(new JButton(editOLAPSchemaAction));
    bsb.addRelatedGap();
    bsb.addGridded(new JButton(removeOLAPSchemaAction));

    removeOLAPSchemaAction.setEnabled(false);
    editOLAPSchemaAction.setEnabled(false);
    exportSchemaAction.setEnabled(false);

    bsb.addUnrelatedGap();
    bsb.addGridded(new JButton(closeAction));

    pb.add(bsb.getPanel(), cc.xy(4, 4));
    return pb.getPanel();

}

From source file:ca.sqlpower.architect.swingui.olap.SchemaEditPanel.java

License:Open Source License

public SchemaEditPanel(ArchitectSwingSession session, Schema schema) throws SQLObjectException {
    this.schema = schema;

    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();//from  w  ww  .  ja  v  a 2 s  .  com

    builder.append(status, 3);
    builder.append("Database",
            databaseBox = new JComboBox(new SQLObjectComboBoxModel(session.getRootObject(), SQLObject.class)));
    OLAPSession osession = OLAPUtil.getSession(schema);
    if (osession.getDatabase() != null) {
        databaseBox.setSelectedItem(osession.getDatabase());
    } else {
        databaseBox.setSelectedItem(session.getTargetDatabase());
    }
    builder.append("Name", nameField = new JTextField(schema.getName()));

    handler = new FormValidationHandler(status);
    handler.addValidateObject(databaseBox, new NotNullValidator("Schema"));

    editorPanel = builder.getPanel();
}

From source file:ca.sqlpower.architect.swingui.olap.ViewEntryPanel.java

License:Open Source License

public ViewEntryPanel(ArchitectSwingSession session, SQLDatabase db, CubeEditPanel cubeEditPanel) {
    this.cubeEditPanel = cubeEditPanel;
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu:grow, pref, 3dlu, pref", "pref, fill:pref:grow"));

    queryComponents = new SQLQueryUIComponents(session, session.getDataSources(), session, builder.getPanel());
    queryComponents.getRowLimitSpinner().setValue(Integer.valueOf(1000));
    queryComponents.getDatabaseComboBox().setSelectedItem(db.getDataSource());

    JToolBar toolbar = new JToolBar();
    toolbar.add(queryComponents.getPrevQueryButton());
    toolbar.add(queryComponents.getNextQueryButton());
    toolbar.addSeparator();/*from   www . ja v  a  2  s  .c o m*/
    toolbar.add(queryComponents.getExecuteButton());
    toolbar.add(queryComponents.getStopButton());
    toolbar.add(queryComponents.getClearButton());
    toolbar.addSeparator();
    toolbar.add(queryComponents.getUndoButton());
    toolbar.add(queryComponents.getRedoButton());
    toolbar.addSeparator();
    toolbar.add(new JLabel(db.getName()));
    builder.append(toolbar);
    builder.append("Row Limit", queryComponents.getRowLimitSpinner());
    builder.nextLine();

    queryArea = queryComponents.getQueryArea();
    builder.append(new JScrollPane(queryArea), 5);
    queryArea.setText(cubeEditPanel.getSelectText());

    JSplitPane rightSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    rightSplitPane.setTopComponent(builder.getPanel());
    rightSplitPane.setBottomComponent(queryComponents.getResultTabPane());
    rightSplitPane
            .setPreferredSize(new Dimension((int) Math.max(400, rightSplitPane.getPreferredSize().getWidth()),
                    (int) Math.max(500, rightSplitPane.getPreferredSize().getHeight())));
    rightSplitPane.setResizeWeight(0.5);

    SQLObjectRoot root = new SQLObjectRoot();
    TreeModel treeModel;
    DBTree tree;
    try {
        root.addChild(db);
        tree = new DBTree(session);
        treeModel = new DBTreeModel(root, tree);
    } catch (SQLObjectException e) {
        throw new RuntimeException(e);
    }
    tree.setModel(treeModel);
    tree.setPopupMenuEnabled(false);

    splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    splitPane.setLeftComponent(tree);
    splitPane.setRightComponent(rightSplitPane);
    splitPane.setResizeWeight(0.2);

}

From source file:ca.sqlpower.architect.swingui.olap.VirtualCubeEditPanel.java

License:Open Source License

/**
 * Creates a new property editor for the given OLAP Virtual Cube. 
 * /*w w w .  ja v a2 s  .  com*/
 * @param vCube The data model of the Virtual Cube to edit
 */
public VirtualCubeEditPanel(VirtualCube vCube) {
    this.vCube = vCube;

    FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.append(status, 3);
    builder.append("Name", nameField = new JTextField(vCube.getName()));
    builder.append("Caption", captionField = new JTextField(vCube.getCaption()));

    // default measure is optional so we need to add in a null option
    List<VirtualCubeMeasure> measures = new ArrayList<VirtualCubeMeasure>(vCube.getMeasures());
    measures.add(0, null);
    builder.append("Default Measure", defMeasure = new JComboBox(measures.toArray()));
    defMeasure.setRenderer(new OLAPObjectListCellRenderer());
    for (VirtualCubeMeasure vMs : vCube.getMeasures()) {
        if (vMs.getName().equals(vCube.getDefaultMeasure())) {
            defMeasure.setSelectedItem(vMs);
            break;
        }
    }

    handler = new FormValidationHandler(status);
    Validator validator = new OLAPObjectNameValidator((OLAPObject) vCube.getParent(), vCube, false);
    handler.addValidateObject(nameField, validator);

    panel = builder.getPanel();
}

From source file:ca.sqlpower.architect.swingui.PreferencesEditor.java

License:Open Source License

private JPanel createLabelPanel(ArchitectSwingSession session) {
    FormLayout layout = new FormLayout("pref:grow, pref, pref:grow", "pref"); //$NON-NLS-1$ //$NON-NLS-2$
    DefaultFormBuilder fb = new DefaultFormBuilder(layout);

    JLabel label = new JLabel();
    label.setText((session.isEnterpriseSession()
            ? "Enterprise Server JDBCDrivers on " + ((ArchitectSwingSessionImpl) session).getServerName()
            : "Local JDBCDrivers"));
    label.setFont(new Font("Arial", Font.BOLD, 18));
    label.setIcon((session.isEnterpriseSession() ? SERVER_JDBCDRIVER_ICON : LOCAL_JDBCDRIVER_ICON));
    fb.add(label, "2, 1");

    return fb.getPanel();
}

From source file:ca.sqlpower.architect.swingui.ProfileGraphPanel.java

License:Open Source License

public ProfileGraphPanel(ProfilePanel panel, int rowCount) {
    this.profilePanel = panel;
    this.rowCount = rowCount;

    FormLayout displayLayout = new FormLayout("4dlu, default, 4dlu, 100dlu, 4dlu, fill:default:grow, 4dlu", // columns
            "4dlu, default, 6dlu"); // rows
    CellConstraints cc = new CellConstraints();

    validResultsPanel = ProfileGraphPanel.logger.isDebugEnabled() ? new FormDebugPanel(displayLayout)
            : new JPanel(displayLayout);
    validResultsPanel.setBorder(BorderFactory.createEtchedBorder());

    Font bodyFont = validResultsPanel.getFont();
    Font titleFont = bodyFont.deriveFont(Font.BOLD, bodyFont.getSize() * 1.25F);

    title = new JLabel("Column Name");
    title.setFont(titleFont);//from ww w  .j a  va2  s .  c  o m

    PanelBuilder pb = new PanelBuilder(displayLayout, validResultsPanel);
    pb.add(title, cc.xyw(2, 2, 5));

    int row = 4;
    rowCountDisplay = makeInfoRow(pb, "RowCount", row);
    row += 2;
    nullableLabel = makeInfoRow(pb, "Nullable", row);
    row += 2;
    nullCountLabel = makeInfoRow(pb, "Null Count", row);
    row += 2;
    nullPercentLabel = makeInfoRow(pb, "% Null Records", row);
    row += 2;
    minLengthLabel = makeInfoRow(pb, "Minimum Length", row);
    row += 2;
    maxLengthLabel = makeInfoRow(pb, "Maximum Length", row);
    row += 2;
    uniqueCountLabel = makeInfoRow(pb, "Unique Values", row);
    row += 2;
    uniquePercentLabel = makeInfoRow(pb, "% Unique", row);
    row += 2;
    minValue = makeInfoRow(pb, "Minimum Value", row);
    row += 2;
    maxValue = makeInfoRow(pb, "Maximum Value", row);
    row += 2;
    avgValue = makeInfoRow(pb, "Average Value", row);
    row += 2;

    freqValueTable = new FreqValueTable(null);
    freqValueSp = new JScrollPane(freqValueTable);

    pb.appendRow("fill:10dlu:grow");
    pb.appendRow("fill:default:grow");
    pb.add(freqValueSp, cc.xyw(2, row + 1, 3));

    // Now add something to represent the chart
    JFreeChart createPieChart = ChartFactory.createPieChart("", new DefaultPieDataset(new DefaultKeyedValues()),
            false, false, false);
    chartPanel = new ChartPanel(createPieChart);
    chartPanel.setPreferredSize(new Dimension(300, 300));

    if (panel.getProfileManager().getWorkspaceContainer() instanceof ArchitectSession
            && ((ArchitectSession) panel.getProfileManager().getWorkspaceContainer()).isEnterpriseSession()) {
        pb.add(new JLabel("Column Profile Notes"), cc.xy(6, 2));
        notesField = new JTextArea();
        notesField.setLineWrap(true);
        notesField.setWrapStyleWord(true);
        JScrollPane notesScroll = new JScrollPane(notesField);
        notesScroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        notesScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        pb.add(notesScroll, cc.xywh(6, 4, 1, row - 4));

        pb.appendRow("fill:4dlu:grow");
        pb.appendRow("4dlu");

        pb.add(chartPanel, cc.xy(6, row + 1));
    } else {
        pb.appendRow("fill:4dlu:grow");
        pb.appendRow("4dlu");
        pb.add(chartPanel, cc.xywh(6, 4, 1, row - 2));
    }

    invalidResultsPanel = new JPanel(new BorderLayout());
    invalidResultsLabel = new JLabel("No error message yet");
    invalidResultsPanel.add(invalidResultsLabel);

    displayArea = new JPanel(new GridLayout(1, 1));
    displayArea.setPreferredSize(validResultsPanel.getPreferredSize());
}