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

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

Introduction

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

Prototype

public void appendRow(RowSpec rowSpec) 

Source Link

Document

Appends the given row specification to the bottom of all rows.

Usage

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

License:Open Source License

public ColumnEditPanel(Collection<SQLColumn> cols, final ArchitectSwingSession session)
        throws SQLObjectException {
    logger.debug("ColumnEditPanel called"); //$NON-NLS-1$

    if (session == null) {
        throw new NullPointerException("Null session is not allowed"); //$NON-NLS-1$
    }//from ww  w.  java2  s .c  om
    this.session = session;

    if (cols == null || cols.isEmpty()) {
        throw new NullPointerException("Null or empty collection of columns is not allowed"); //$NON-NLS-1$
    }
    columns = new ArrayList<SQLColumn>(cols);

    //        if (columns.get(0).getParent() != null) {
    //            columns.get(0).getParent().getPrimaryKeyIndex().addSPListener(this);
    //            for (SQLColumn col : columns) {
    //                col.addSPListener(this);
    //            }
    //        }

    FormLayout layout = new FormLayout("pref, pref, pref:grow, 4dlu, pref, pref:grow", "");
    layout.setColumnGroups(new int[][] { { 3, 6 } });
    panel = new JPanel(layout);
    CellConstraints cc = new CellConstraints();

    JCheckBox cb;
    int row = 1;
    int width = 5;
    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.source")), cc.xyw(2, row++, width)); //$NON-NLS-1$
    layout.appendRow(RowSpec.decode("p"));

    cb = new JCheckBox();
    if (cols.size() > 1) {
        panel.add(cb, cc.xy(1, row));
    }

    colSourceTree = new JTree();
    DBTreeModel sourceTreeModel = new DBTreeModel(session.getRootObject(), colSourceTree, false, true, false,
            false, false) {
        @Override
        public Object getChild(Object parent, int index) {
            if (parent == sourceNotSpecifiedTreeNode) {
                return null;
            } else if (parent == getRoot()) {
                if (index == 0) {
                    return sourceNotSpecifiedTreeNode;
                } else {
                    return super.getChild(parent, index - 1);
                }
            } else {
                return super.getChild(parent, index);
            }
        }

        @Override
        public int getChildCount(Object parent) {
            if (parent == sourceNotSpecifiedTreeNode) {
                return 0;
            } else if (parent == getRoot()) {
                return super.getChildCount(parent) + 1;
            } else {
                return super.getChildCount(parent);
            }
        }

        @Override
        public int getIndexOfChild(Object parent, Object child) {
            if (parent == sourceNotSpecifiedTreeNode) {
                return -1;
            } else if (child == sourceNotSpecifiedTreeNode) {
                return 0;
            } else if (parent == getRoot()) {
                int index = super.getIndexOfChild(parent, child);
                if (index != -1) {
                    return index + 1;
                } else {
                    return -1;
                }
            } else {
                return super.getIndexOfChild(parent, child);
            }
        }

        @Override
        public boolean isLeaf(Object parent) {
            if (parent == sourceNotSpecifiedTreeNode) {
                return true;
            } else {
                return super.isLeaf(parent);
            }
        }

    };
    colSourceTree.setModel(sourceTreeModel);
    colSourceTree.setRootVisible(false);
    colSourceTree.setShowsRootHandles(true);
    colSourceTree.setCellRenderer(new DBTreeCellRenderer() {
        @Override
        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
                boolean leaf, int row, boolean hasFocus) {
            super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
            if (!sel && value == sourceNotSpecifiedTreeNode) {
                setForeground(getTextNonSelectionColor());
            }
            return this;
        }
    });
    colSourceTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

    colSourceButton = new JButton();
    colSourceButton.setAction(new PopupJTreeAction(panel, colSourceTree, colSourceButton, SQLColumn.class));

    panel.add(colSourceButton, cc.xyw(2, row++, 2));
    componentEnabledMap.put(colSourceTree, cb);

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.logicalName")), cc.xyw(2, row++, width)); //$NON-NLS-1$
    layout.appendRow(RowSpec.decode("p"));
    cb = new JCheckBox();
    if (cols.size() > 1) {
        panel.add(cb, cc.xy(1, row));
    }
    panel.add(colLogicalName = new JTextField(), cc.xyw(2, row++, width));
    componentEnabledMap.put(colLogicalName, cb);
    colLogicalName.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb));
    colLogicalName.addComponentListener(new ComponentAdapter() {
        @Override
        public void componentShown(ComponentEvent e) {
            colLogicalName.requestFocusInWindow();
        }
    });
    colLogicalName.addFocusListener(new FocusAdapter() {
        public void focusGained(FocusEvent e) {
            if (logger.isDebugEnabled()) {
                logger.debug("focus Gained : " + e);
            }
            colLogicalName.selectAll();
        }
    });

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.physicalName")), cc.xyw(2, row++, width)); //$NON-NLS-1$
    layout.appendRow(RowSpec.decode("p"));
    cb = new JCheckBox();
    if (cols.size() > 1) {
        panel.add(cb, cc.xy(1, row));
    }
    panel.add(colPhysicalName = new JTextField(), cc.xyw(2, row++, width));
    componentEnabledMap.put(colPhysicalName, cb);
    colPhysicalName.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb));
    colPhysicalName.addComponentListener(new ComponentAdapter() {
        @Override
        public void componentShown(ComponentEvent e) {
            colPhysicalName.requestFocusInWindow();
        }
    });
    colPhysicalName.addFocusListener(new FocusAdapter() {
        public void focusGained(FocusEvent e) {
            if (logger.isDebugEnabled()) {
                logger.debug("focus Gained : " + e);
            }
            colPhysicalName.selectAll();
        }
    });

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    cb = new JCheckBox();
    if (cols.size() > 1) {
        panel.add(cb, cc.xy(1, row));
    }
    panel.add(colInPK = new JCheckBox(Messages.getString("ColumnEditPanel.inPrimaryKey")), //$NON-NLS-1$
            cc.xyw(2, row++, width));
    componentEnabledMap.put(colInPK, cb);
    colInPK.addActionListener(this);
    colInPK.addActionListener(checkboxEnabler);

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.type")), cc.xyw(2, row++, width)); //$NON-NLS-1$
    layout.appendRow(RowSpec.decode("p"));
    cb = new JCheckBox();
    if (cols.size() > 1) {
        panel.add(cb, cc.xy(1, row));
    }

    typeChooserButton = new JButton(Messages.getString("ColumnEditPanel.chooseType"));

    if (session.isEnterpriseSession()) {
        colType = new JTree(new SQLTypeTreeModel(session.getEnterpriseSession()));
    } else {
        colType = new JTree(new SQLTypeTreeModel(session));
    }

    colType.setCellRenderer(new SQLTypeTreeCellRenderer());
    for (int i = 0; i < colType.getRowCount(); i++) {
        colType.expandRow(i);
    }
    colType.setRootVisible(true);
    colType.setShowsRootHandles(true);
    colType.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

    typeChooserButton
            .setAction(new PopupJTreeAction(panel, colType, typeChooserButton, UserDefinedSQLType.class));

    componentEnabledMap.put(colType, cb);
    panel.add(typeChooserButton, cc.xyw(2, row++, 2));

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.precision")), cc.xy(3, row)); //$NON-NLS-1$
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.scale")), cc.xy(6, row++)); //$NON-NLS-1$

    layout.appendRow(RowSpec.decode("p"));
    panel.add(colPrec = createPrecisionEditor(), cc.xy(3, row));
    colPrec.addChangeListener(checkboxEnabler);
    SPSUtils.makeJSpinnerSelectAllTextOnFocus(colPrec);
    colPrecCB = new JCheckBox();
    panel.add(colPrecCB, cc.xy(2, row));
    typeOverrideMap.put(colPrec, colPrecCB);
    colPrecCB.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            if (colPrecCB.isSelected()) {
                colPrec.setEnabled(true);
            } else {
                colPrec.setEnabled(false);
                if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) {
                    colPrec.setValue(((UserDefinedSQLType) colType.getLastSelectedPathComponent())
                            .getPrecision(SQLTypePhysicalPropertiesProvider.GENERIC_PLATFORM));
                }
            }
        }
    });
    colPrec.setEnabled(false);

    colScaleCB = new JCheckBox();
    panel.add(colScaleCB, cc.xy(5, row));
    panel.add(colScale = createScaleEditor(), cc.xy(6, row++));
    typeOverrideMap.put(colScale, colScaleCB);
    colScale.addChangeListener(checkboxEnabler);
    SPSUtils.makeJSpinnerSelectAllTextOnFocus(colScale);
    colScaleCB.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            if (colScaleCB.isSelected()) {
                colScale.setEnabled(true);
            } else {
                colScale.setEnabled(false);
                if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) {
                    colScale.setValue(((UserDefinedSQLType) colType.getLastSelectedPathComponent())
                            .getScale(SQLTypePhysicalPropertiesProvider.GENERIC_PLATFORM));
                }
            }
        }
    });
    colScale.setEnabled(false);

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.allowsNulls")), cc.xyw(3, row++, width - 1)); //$NON-NLS-1$

    layout.appendRow(RowSpec.decode("p"));
    final JCheckBox colNullCB = new JCheckBox();
    panel.add(colNullCB, cc.xy(2, row));
    panel.add(colNullable = new JComboBox(YesNoEnum.values()), cc.xy(3, row++)); //$NON-NLS-1$
    typeOverrideMap.put(colNullable, colNullCB);
    colNullable.addActionListener(this);
    colNullable.addActionListener(checkboxEnabler);
    colNullCB.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            if (colNullCB.isSelected()) {
                colNullable.setEnabled(true);
            } else {
                colNullable.setEnabled(false);
                if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) {
                    colNullable.setSelectedItem(
                            YesNoEnum.valueOf(((UserDefinedSQLType) colType.getLastSelectedPathComponent())
                                    .getNullability() == DatabaseMetaData.columnNullable));
                }
            }
            updateComponents();
        }
    });
    colNullable.setEnabled(false);

    layout.appendRow(RowSpec.decode("3dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.autoIncrement")), cc.xyw(3, row++, width - 1)); //$NON-NLS-1$

    layout.appendRow(RowSpec.decode("p"));
    final JCheckBox colAutoIncCB = new JCheckBox();
    panel.add(colAutoIncCB, cc.xy(2, row));
    panel.add(colAutoInc = new JComboBox(YesNoEnum.values()), cc.xy(3, row++)); //$NON-NLS-1$
    typeOverrideMap.put(colAutoInc, colAutoIncCB);
    colAutoInc.addActionListener(this);
    colAutoInc.addActionListener(checkboxEnabler);
    colAutoIncCB.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            if (colAutoIncCB.isSelected()) {
                colAutoInc.setEnabled(true);
            } else {
                colAutoInc.setEnabled(false);
                if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) {
                    colAutoInc.setSelectedItem(YesNoEnum.valueOf(
                            ((UserDefinedSQLType) colType.getLastSelectedPathComponent()).getAutoIncrement()));
                }
            }
        }
    });
    colAutoInc.setEnabled(false);

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.defaultValue")), cc.xyw(3, row++, width - 1)); //$NON-NLS-1$
    layout.appendRow(RowSpec.decode("p"));
    final JCheckBox colDefaultCB = new JCheckBox();
    panel.add(colDefaultCB, cc.xy(2, row));
    panel.add(colDefaultValue = new JTextField(), cc.xyw(3, row++, width - 1));
    colDefaultValue.setEnabled(false);

    typeOverrideMap.put(colDefaultValue, colDefaultCB);
    colDefaultValue.addActionListener(this);
    colDefaultCB.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            if (colDefaultCB.isSelected()) {
                colDefaultValue.setEnabled(true);
            } else {
                colDefaultValue.setEnabled(false);
                if (colType.getLastSelectedPathComponent() instanceof UserDefinedSQLType) {
                    colDefaultValue.setText(((UserDefinedSQLType) colType.getLastSelectedPathComponent())
                            .getDefaultValue(SQLTypePhysicalPropertiesProvider.GENERIC_PLATFORM));
                }
            }
            updateComponents();
        }
    });

    layout.appendRow(RowSpec.decode("6dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.sequenceName")), cc.xyw(2, row++, width)); //$NON-NLS-1$
    layout.appendRow(RowSpec.decode("p"));
    cb = new JCheckBox();
    if (cols.size() > 1) {
        panel.add(cb, cc.xy(1, row));
    }
    panel.add(colAutoIncSequenceName = new JTextField(), cc.xyw(2, row++, width));
    componentEnabledMap.put(colAutoIncSequenceName, cb);
    colAutoIncSequenceName.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb));

    DocumentListener listener = new DocumentListener() {
        public void changedUpdate(DocumentEvent e) {
            syncSequenceName();
        }

        public void insertUpdate(DocumentEvent e) {
            syncSequenceName();
        }

        public void removeUpdate(DocumentEvent e) {
            syncSequenceName();
        }
    };
    // Listener to update the sequence name when the column name changes
    colPhysicalName.getDocument().addDocumentListener(listener);
    colLogicalName.getDocument().addDocumentListener(listener);

    // Listener to rediscover the sequence naming convention, and reset the
    // sequence name to its original (according to the column's own sequence
    // name) naming convention when the user clears the sequence name field
    colAutoIncSequenceName.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            if (columns.size() == 1 && colAutoIncSequenceName.getText().trim().equals("")) { //$NON-NLS-1$
                // Changing sequence name doesn't make sense in multi-edit
                // because sequence names have to be unique
                SQLColumn column = columns.iterator().next();
                if (column.getPhysicalName() != null && !column.getPhysicalName().trim().equals("")) {
                    discoverSequenceNamePattern(column.getPhysicalName());
                } else {
                    discoverSequenceNamePattern(column.getName());
                }
                syncSequenceName();
            } else {
                if (colPhysicalName.getText() != null && !colPhysicalName.getText().trim().equals("")) {
                    discoverSequenceNamePattern(colPhysicalName.getText());
                } else {
                    discoverSequenceNamePattern(colLogicalName.getText());
                }
            }
        }
    });

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    panel.add(makeTitle(Messages.getString("ColumnEditPanel.remarks")), cc.xyw(2, row++, width)); //$NON-NLS-1$
    layout.appendRow(RowSpec.decode("pref:grow"));
    cb = new JCheckBox();
    if (cols.size() > 1) {
        panel.add(cb, cc.xy(1, row, "center, top"));
    }
    panel.add(new JScrollPane(colRemarks = new JTextArea()), cc.xyw(2, row++, width, "fill, fill"));
    componentEnabledMap.put(colRemarks, cb);
    colRemarks.getDocument().addDocumentListener(new DocumentCheckboxEnabler(cb));
    colRemarks.setRows(5);
    colRemarks.setLineWrap(true);
    colRemarks.setWrapStyleWord(true);

    // start with all components enabled; if there are multiple columns
    // to edit, these checkboxes will be turned off selectively for the
    // mismatching values
    for (JCheckBox checkbox : componentEnabledMap.values()) {
        checkbox.setSelected(true);
    }

    //The type covers multiple fields and needs a different check to see if
    //it should start enabled. All type info must match across the objects
    //for the checkbox to start selected
    if (cols.size() > 1) {
        Iterator<SQLColumn> colIterator = cols.iterator();
        SQLColumn firstCol = colIterator.next();
        while (colIterator.hasNext()) {
            SQLColumn nextCol = colIterator.next();
            if (!firstCol.getTypeName().equals(nextCol.getTypeName())
                    || firstCol.getPrecision() != nextCol.getPrecision()
                    || firstCol.getScale() != nextCol.getScale()
                    || firstCol.getNullable() != nextCol.getNullable()
                    || firstCol.isAutoIncrement() != nextCol.isAutoIncrement()
                    || !firstCol.getDefaultValue().equals(nextCol.getDefaultValue())) {
                componentEnabledMap.get(colType).setSelected(false);
                break;
            }
        }
    }

    for (SQLColumn col : cols) {
        logger.debug("Updating component state for column " + col);
        updateComponents(col);
    }

    //         TODO only give focus to column name if it's enabled?
    colPhysicalName.requestFocus();
    colPhysicalName.selectAll();

    SQLPowerUtils.listenToHierarchy(session.getRootObject(), obsolesenceListener);
    SQLPowerUtils.listenToHierarchy(session.getRootObject(), this);
    panel.addAncestorListener(cleanupListener);

    colSourceTree.addTreeSelectionListener(new TreeSelectionListener() {
        @Override
        public void valueChanged(TreeSelectionEvent e) {
            TreePath path = e.getNewLeadSelectionPath();
            if (path != null) {
                Object selection = path.getLastPathComponent();
                if (selection instanceof SQLColumn) {
                    SQLColumn sourceColumn = (SQLColumn) selection;
                    colSourceButton.setText(
                            DDLUtils.toQualifiedName(sourceColumn.getParent()) + "." + sourceColumn.getName());
                } else {
                    colSourceButton.setText(Messages.getString("ColumnEditPanel.noneSpecified"));
                }
            } else {
                colSourceButton.setText(Messages.getString("ColumnEditPanel.noneSpecified"));
            }
        }
    });

    colType.addTreeSelectionListener(new TreeSelectionListener() {
        public void valueChanged(TreeSelectionEvent e) {
            TreePath path = e.getNewLeadSelectionPath();
            if (path != null) {
                Object selection = path.getLastPathComponent();
                if (selection instanceof UserDefinedSQLType) {
                    typeChooserButton.setText(((UserDefinedSQLType) selection).getName());
                    updateSQLTypeComponents((UserDefinedSQLType) selection, false);
                } else {
                    typeChooserButton.setText(Messages.getString("ColumnEditPanel.chooseType"));
                }
            } else {
                typeChooserButton.setText(Messages.getString("ColumnEditPanel.chooseType"));
            }
        }
    });
}

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

License:Open Source License

public void setUp() {
    FormLayout layout = new FormLayout("30dlu, pref:grow, 20dlu, pref:grow, 30dlu", "");
    layout.setColumnGroups(new int[][] { { 2, 4 } });
    CellConstraints cc = new CellConstraints();

    this.setLayout(layout);

    int row = 1;/*ww  w. java2s .  co m*/

    layout.appendRow(RowSpec.decode("10dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(makeTitle(Messages.getString("DefaultColumnPanel.explaination")), cc.xyw(2, row++, 3)); //$NON-NLS-1$

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(new JLabel(Messages.getString("DefaultColumnPanel.name")), cc.xy(2, row));
    add(new JLabel(Messages.getString("DefaultColumnPanel.type")), cc.xy(4, row++)); //$NON-NLS-1$

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(colName = new JTextField(), cc.xy(2, row));
    colName.addComponentListener(new ComponentAdapter() {
        @Override
        public void componentShown(ComponentEvent e) {
            colName.requestFocusInWindow();
        }
    });
    colName.addFocusListener(new FocusAdapter() {
        public void focusGained(FocusEvent e) {
            if (logger.isDebugEnabled()) {
                logger.debug("focus Gained : " + e);
            }
            colName.selectAll();
        }
    });

    add(colType = new JComboBox(SQLType.getTypes()), cc.xy(4, row++));
    colType.setSelectedItem(null);

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(new JLabel(Messages.getString("DefaultColumnPanel.precision")), cc.xy(2, row)); //$NON-NLS-1$
    add(new JLabel(Messages.getString("DefaultColumnPanel.scale")), cc.xy(4, row++)); //$NON-NLS-1$

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(colPrec = new JSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1)), cc.xy(2, row));
    SPSUtils.makeJSpinnerSelectAllTextOnFocus(colPrec);

    add(colScale = new JSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1)), cc.xy(4, row++));
    SPSUtils.makeJSpinnerSelectAllTextOnFocus(colScale);

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(colInPK = new JCheckBox(Messages.getString("DefaultColumnPanel.inPrimaryKey")), cc.xyw(2, row++, 3)); //$NON-NLS-1$
    colInPK.addActionListener(this);

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(colNullable = new JCheckBox(Messages.getString("DefaultColumnPanel.allowsNulls")), cc.xyw(2, row++, 3)); //$NON-NLS-1$
    colNullable.addActionListener(this);

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(colAutoInc = new JCheckBox(Messages.getString("DefaultColumnPanel.autoIncrement")), //$NON-NLS-1$
            cc.xyw(2, row++, 3));
    colAutoInc.addActionListener(this);

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(new JLabel(Messages.getString("DefaultColumnPanel.remarks")), cc.xyw(2, row++, 4)); //$NON-NLS-1$

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(new JScrollPane(colRemarks = new JTextArea()), cc.xyw(2, row++, 3, "fill, fill"));
    colRemarks.setRows(8);
    colRemarks.setLineWrap(true);
    colRemarks.setWrapStyleWord(true);

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(new JLabel(Messages.getString("DefaultColumnPanel.default")), cc.xyw(2, row++, 4));

    layout.appendRow(RowSpec.decode("5dlu"));
    row++;

    layout.appendRow(RowSpec.decode("p"));
    add(new JScrollPane(colDefault = new JTextArea()), cc.xyw(2, row++, 3));
    colDefault.setLineWrap(false);

    layout.appendRow(RowSpec.decode("15dlu"));
    row++;

    //TODO only give focus to column name if it's enabled?
    colName.requestFocus();
    colName.selectAll();

}

From source file:com.eviware.soapui.support.editor.inspectors.auth.ProfileSelectionForm.java

License:EUPL

private JPanel createAuthorizationLabelAndComboBox() {
    FormLayout formLayout = new FormLayout("5px:none,left:pref,40px,left:default,5px:grow(1.0)");
    JPanel comboBoxPanel = new JPanel(formLayout);
    comboBoxPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));

    JLabel authorizationLabel = new JLabel(PROFILE_COMBO_BOX);
    authorizationLabel.setBorder(BorderFactory.createEmptyBorder(3, 0, 0, 0));

    formLayout.appendRow(new RowSpec("top:pref"));
    comboBoxPanel.add(authorizationLabel, cc.xy(2, 1));

    createProfileSelectionComboBox();/*from   w  w w .  j  a  va  2s  .  c o  m*/
    comboBoxPanel.add(profileSelectionComboBox, cc.xy(4, 1));

    JPanel wrapperPanel = new JPanel(new BorderLayout(5, 5));
    wrapperPanel.add(comboBoxPanel, BorderLayout.LINE_START);
    helpButton = UISupport.createFormButton(helpActions.get(EMPTY_PANEL));
    wrapperPanel.add(helpButton, BorderLayout.AFTER_LINE_ENDS);
    return wrapperPanel;
}

From source file:com.intellij.uiDesigner.radComponents.RadFormLayoutManager.java

License:Apache License

private static void insertOrAppendRow(final FormLayout formLayout, final int index, final RowSpec rowSpec) {
    if (index == formLayout.getRowCount() + 1) {
        formLayout.appendRow(rowSpec);
    } else {/*from   www  . j av  a2 s.co m*/
        formLayout.insertRow(index, rowSpec);
    }
}

From source file:com.jeta.swingbuilder.gui.effects.ImageFillView.java

License:Open Source License

/**
 * ctor/*  ww w  .  ja  v a2  s  .  c  o  m*/
 */
public ImageFillView(GridView preview, PaintProperty pp) {
    super("com/jeta/swingbuilder/gui/images/imageProperties.frm", null);
    FormPanel view = getView();
    Container form = view.getFormContainer();
    FormLayout layout = (FormLayout) form.getLayout();
    layout.appendRow(new RowSpec("2dlu"));
    layout.appendRow(new RowSpec("pref"));
    CellConstraints cc = new CellConstraints();

    JComboBox hbox = new JComboBox(new Object[] { "LEFT", "CENTER", "RIGHT" });
    hbox.setName(ImageFillNames.ID_HORIZONTAL_ALIGNMENT);
    form.add(new JLabel("Horizontal Alignment"), cc.xy(1, layout.getRowCount()));
    form.add(hbox, cc.xy(3, layout.getRowCount()));

    layout.appendRow(new RowSpec("2dlu"));
    layout.appendRow(new RowSpec("pref"));

    JComboBox vbox = new JComboBox(new Object[] { "TOP", "CENTER", "BOTTOM" });
    vbox.setName(ImageFillNames.ID_VERTICAL_ALIGNMENT);
    form.add(new JLabel("Vertical Alignment"), cc.xy(1, layout.getRowCount()));
    form.add(vbox, cc.xy(3, layout.getRowCount()));

    m_preview = preview;
    setController(new ImageFillController(this));
    if (pp != null) {
        setPaintProperty(pp);
    }
}

From source file:com.t3.client.ui.token.EditTokenDialog.java

License:Open Source License

private void updateStatesPanel() {
    // Group the states first into individual panels
    List<BooleanTokenOverlay> overlays = new ArrayList<BooleanTokenOverlay>(
            TabletopTool.getCampaign().getTokenStatesMap().values());
    Map<String, JPanel> groups = new TreeMap<String, JPanel>();
    groups.put("", new JPanel(new FormLayout("0px:grow 2px 0px:grow 2px 0px:grow 2px 0px:grow")));
    for (BooleanTokenOverlay overlay : overlays) {
        String group = overlay.getGroup();
        if (group != null && (group = group.trim()).length() != 0) {
            JPanel panel = groups.get(group);
            if (panel == null) {
                panel = new JPanel(new FormLayout("0px:grow 2px 0px:grow 2px 0px:grow 2px 0px:grow"));
                panel.setBorder(BorderFactory.createTitledBorder(group));
                groups.put(group, panel);
            }//from ww w .  j ava  2  s  . c o m
        }
    }
    // Add the group panels and bar panel to the states panel
    JPanel panel = getStatesPanel();
    panel.removeAll();
    FormLayout layout = new FormLayout("0px:grow");
    panel.setLayout(layout);
    int row = 1;
    for (JPanel gPanel : groups.values()) {
        layout.appendRow(new RowSpec("pref"));
        layout.appendRow(new RowSpec("2px"));
        panel.add(gPanel, new CellConstraints(1, row));
        row += 2;
    }
    layout.appendRow(new RowSpec("pref"));
    layout.appendRow(new RowSpec("2px"));
    JPanel barPanel = new JPanel(new FormLayout("right:pref 2px pref 5px right:pref 2px pref"));
    panel.add(barPanel, new CellConstraints(1, row));

    // Add the individual check boxes.
    for (BooleanTokenOverlay state : overlays) {
        String group = state.getGroup();
        panel = groups.get("");
        if (group != null && (group = group.trim()).length() != 0)
            panel = groups.get(group);
        int x = panel.getComponentCount() % 4;
        int y = panel.getComponentCount() / 4;
        if (x == 0) {
            layout = (FormLayout) panel.getLayout();
            if (y != 0)
                layout.appendRow(new RowSpec("2px"));
            layout.appendRow(new RowSpec("pref"));
        }
        panel.add(new JCheckBox(state.getName()), new CellConstraints(x * 2 + 1, y * 2 + 1));
    }
    // Add sliders to the bar panel
    if (TabletopTool.getCampaign().getTokenBarsMap().size() > 0) {
        layout = (FormLayout) barPanel.getLayout();
        barPanel.setName("bar");
        barPanel.setBorder(BorderFactory.createTitledBorder("Bars"));
        int count = 0;
        row = 0;
        for (BarTokenOverlay bar : TabletopTool.getCampaign().getTokenBarsMap().values()) {
            int working = count % 2;
            if (working == 0) { // slider row
                layout.appendRow(new RowSpec("pref"));
                row += 1;
            }
            JPanel labelPanel = new JPanel(new FormLayout("pref", "pref 2px:grow pref"));
            barPanel.add(labelPanel, new CellConstraints(1 + working * 4, row));
            labelPanel.add(new JLabel(bar.getName() + ":"),
                    new CellConstraints(1, 1, CellConstraints.RIGHT, CellConstraints.TOP));
            JSlider slider = new JSlider(0, 100);
            JCheckBox hide = new JCheckBox("Hide");
            hide.putClientProperty("JSlider", slider);
            hide.addChangeListener(new ChangeListener() {
                @Override
                public void stateChanged(ChangeEvent e) {
                    JSlider js = (JSlider) ((JCheckBox) e.getSource()).getClientProperty("JSlider");
                    js.setEnabled(!((JCheckBox) e.getSource()).isSelected());
                }
            });
            labelPanel.add(hide, new CellConstraints(1, 3, CellConstraints.RIGHT, CellConstraints.TOP));
            slider.setName(bar.getName());
            slider.setPaintLabels(true);
            slider.setPaintTicks(true);
            slider.setMajorTickSpacing(20);
            slider.createStandardLabels(20);
            slider.setMajorTickSpacing(10);
            barPanel.add(slider, new CellConstraints(3 + working * 4, row));
            if (working != 0) { // spacer row
                layout.appendRow(new RowSpec("2px"));
                row += 1;
            }
            count += 1;
        }
    }
}

From source file:golemplugin.GolemDialog.java

License:Open Source License

private void createGui() {
    setTitle(mLocalizer.msg("title", "Golem.de watches"));

    JPanel panel = (JPanel) getContentPane();

    panel.setBorder(Borders.DLU4_BORDER);

    FormLayout layout = new FormLayout("fill:pref:grow");

    panel.setLayout(layout);//  w  ww . jav a2 s. c  o m

    CellConstraints cc = new CellConstraints();

    final Collection<Program> plist = GolemPlugin.getInstance().getSettings().getProgramList();

    ProgramList list = new ProgramList(plist.toArray(new Program[plist.size()]));
    list.addMouseListeners(GolemPlugin.getInstance());

    int line = 1;
    layout.appendRow(RowSpec.decode("fill:min:grow"));

    panel.add(new JScrollPane(list), cc.xy(1, line));

    final ButtonBarBuilder2 builderButton = ButtonBarBuilder2.createLeftToRightBuilder();

    JButton sendBtn = new JButton(TVBrowserIcons.copy(TVBrowserIcons.SIZE_SMALL));
    sendBtn.setToolTipText(mLocalizer.msg("send", "Send to other Plugins"));
    sendBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if (plist.size() > 0) {
                SendToPluginDialog sendDialog = new SendToPluginDialog(GolemPlugin.getInstance(),
                        (Window) GolemDialog.this, plist.toArray(new Program[plist.size()]));
                sendDialog.setVisible(true);
            }
        }
    });

    JButton ok = new JButton(Localizer.getLocalization(Localizer.I18N_OK));
    ok.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            close();
        }
    });
    getRootPane().setDefaultButton(ok);

    builderButton.addFixed(sendBtn);
    builderButton.addGlue();
    builderButton.addFixed(ok);

    line += 2;
    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    panel.add(builderButton.getPanel(), cc.xy(1, line));

    UiUtilities.registerForClosing(this);
}

From source file:golemplugin.GolemSettingsTab.java

License:Open Source License

public JPanel createSettingsPanel() {
    final FormLayout layout = new FormLayout("3dlu, pref, 3dlu, fill:min:grow, 3dlu, pref, 3dlu");
    final CellConstraints cc = new CellConstraints();

    final JPanel panel = new JPanel(layout);

    int line = 2;

    layout.appendRow(RowSpec.decode("3dlu"));
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));

    markPrograms = new JCheckBox(mLocalizer.msg("markItems", "Mark programs that are mentioned by Golem.de"));
    markPrograms.setSelected(GolemPlugin.getInstance().getSettings().isMarkEnabled());
    markPrograms.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            markPriority.setEnabled(markPrograms.isSelected());
        }//from   w ww .j  ava 2s  . c  om
    });
    panel.add(markPrograms, cc.xyw(2, line, 4));

    line += 2;
    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));

    markPriority = DefaultMarkingPrioritySelectionPanel.createPanel(
            GolemPlugin.getInstance().getSettings().getMarkPriority(),
            mLocalizer.msg("markPriority", "Mark programs with:"), false, false, false);
    panel.add(markPriority, cc.xyw(2, line, 4));

    markPriority.setEnabled(GolemPlugin.getInstance().getSettings().isMarkEnabled());

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("6dlu"));
    line += 2;

    clientPluginTargets = GolemPlugin.getInstance().getSettings().getReceiveTargets();

    final JButton choose = new JButton(mLocalizer.msg("selectPlugins", "Choose Plugins"));
    choose.addActionListener(new ActionListener() {
        public void actionPerformed(final ActionEvent e) {
            try {
                final Window w = UiUtilities.getLastModalChildOf(MainFrame.getInstance());
                PluginChooserDlg chooser = null;
                chooser = new PluginChooserDlg(w, clientPluginTargets, null, GolemPlugin.getInstance());
                chooser.setVisible(true);

                if (chooser.getReceiveTargets() != null) {
                    clientPluginTargets = chooser.getReceiveTargets();
                }

                handlePluginSelection();
            } catch (Exception ee) {
                ee.printStackTrace();
            }
        }
    });

    pluginLabel = new JLabel();
    handlePluginSelection();

    panel.add(new JLabel(mLocalizer.msg("exportTitle", "Export to Plugin(s):")), cc.xy(2, line));
    panel.add(pluginLabel, cc.xy(4, line));
    panel.add(choose, cc.xy(6, line));

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("6dlu"));
    line += 2;

    JButton button = new JButton(mLocalizer.msg("update", "Update now"));
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    GolemUpdater.getInstance().update();
                }
            });
        }
    });

    panel.add(button, cc.xy(2, line));

    return panel;
}

From source file:imdbplugin.ImdbFilterComponent.java

License:Open Source License

@Override
public JPanel getSettingsPanel() {

    final FormLayout layout = new FormLayout("pref, 3dlu, fill:pref:grow, 3dlu, pref", "");
    final JPanel content = new JPanel(layout);
    content.setBorder(Borders.DIALOG_BORDER);

    final CellConstraints cc = new CellConstraints();
    int currentRow = 1;

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    content.add(UiUtilities.createHelpTextArea(mLocalizer.msg("description", "")), cc.xyw(1, currentRow, 5));

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));

    content.add(new JLabel(mLocalizer.msg("min.1", "Minimum")), cc.xy(1, currentRow += 2));
    mMinSpinner = new JSpinner(new SpinnerNumberModel(0.0, 0.0, 10.0, 0.1));
    mMinSpinner.setValue(mMinRating);/*from   ww  w. ja  v  a 2s. com*/
    content.add(mMinSpinner, cc.xy(3, currentRow));
    content.add(new JLabel(mLocalizer.msg("min.2", "(of 10.0)")), cc.xy(5, currentRow));

    layout.appendRow(RowSpec.decode("pref"));

    content.add(new JLabel(mLocalizer.msg("max.1", "Maximum")), cc.xy(1, currentRow += 2));
    mMaxSpinner = new JSpinner(new SpinnerNumberModel(10.0, 0.0, 10.0, 0.1));
    mMaxSpinner.setValue(mMaxRating);
    content.add(mMaxSpinner, cc.xy(3, currentRow));
    content.add(new JLabel(mLocalizer.msg("max.2", "(of 10.0)")), cc.xy(5, currentRow));

    final JPanel centerPanel = new JPanel(new BorderLayout());
    centerPanel.add(content, BorderLayout.NORTH);
    return centerPanel;
}

From source file:imdbplugin.VoteCountFilterComponent.java

License:Open Source License

@Override
public JPanel getSettingsPanel() {

    final FormLayout layout = new FormLayout("pref, 3dlu, fill:pref:grow, 3dlu, pref", "");
    final JPanel content = new JPanel(layout);
    content.setBorder(Borders.DIALOG_BORDER);

    final CellConstraints cc = new CellConstraints();
    int currentRow = 1;

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("5dlu"));
    content.add(UiUtilities.createHelpTextArea(mLocalizer.msg("description", "")), cc.xyw(1, currentRow, 5));

    layout.appendRow(RowSpec.decode("pref"));
    layout.appendRow(RowSpec.decode("3dlu"));

    content.add(new JLabel(mLocalizer.msg("min.1", "Minimum")), cc.xy(1, currentRow += 2));
    mMinSpinner = new JSpinner(new SpinnerNumberModel(0, 0, MAX_VOTES, INCREMENT));
    mMinSpinner.setValue(mMinVotes);/*from w w w  .ja v  a2s.  c om*/
    content.add(mMinSpinner, cc.xy(3, currentRow));
    content.add(new JLabel(mLocalizer.msg("min.2", "(of 10.0)")), cc.xy(5, currentRow));

    layout.appendRow(RowSpec.decode("pref"));

    content.add(new JLabel(mLocalizer.msg("max.1", "Maximum")), cc.xy(1, currentRow += 2));
    mMaxSpinner = new JSpinner(new SpinnerNumberModel(MAX_VOTES, 0, MAX_VOTES, INCREMENT));
    mMaxSpinner.setValue(mMaxVotes);
    content.add(mMaxSpinner, cc.xy(3, currentRow));
    content.add(new JLabel(mLocalizer.msg("max.2", "(of 10.0)")), cc.xy(5, currentRow));

    final JPanel centerPanel = new JPanel(new BorderLayout());
    centerPanel.add(content, BorderLayout.NORTH);
    return centerPanel;
}