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

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

Introduction

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

Prototype

public void setColumnGroups(int[][] groupOfIndices) 

Source Link

Document

Sets the column groups, where each column in a group gets the same group wide width.

Usage

From source file:brainflow.app.presentation.ColorGradientEditor.java

private void initLayout() {

    JPanel mainPanel = new JPanel();
    FormLayout layout = new FormLayout("l:p:g, 12dlu, l:p, 3dlu, p:g");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout, mainPanel);
    layout.setColumnGroups(new int[][] { { 2, 4 } });
    builder.setLineGapSize(Sizes.dluX(8));

    builder.appendSeparator("Preview");

    colorBar = colorMap.createColorBar();
    colorBar.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
    builder.append(colorBar, 5);/*from   w ww  .j  av a2s. com*/
    builder.appendSeparator("Colors");
    builder.nextLine();
    builder.setDefaultDialogBorder();
    builder.append(oneColorButton);

    builder.append("Color 1:", colorComboOne);
    builder.nextLine();
    builder.append(twoColorButton);

    builder.append("Color 2: ", colorComboTwo);

    setLayout(new BorderLayout());
    add(builder.getPanel(), BorderLayout.CENTER);

}

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   w w  w. j  a  v  a  2 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.CompareDMFrame.java

License:Open Source License

public JComponent mainFrame() {

    FormLayout layout = new FormLayout(
            "4dlu,fill:min(150dlu;default):grow, 6dlu, fill:min(150dlu;default):grow, 4dlu", // columns //$NON-NLS-1$
            " min(300dlu;default), 6dlu, min(300dlu;default), 6dlu,  min(300dlu;default), 3dlu, fill:min(300dlu;default):grow, 3dlu, 20dlu,6dlu,20dlu"); // rows //$NON-NLS-1$

    CellConstraints cc = new CellConstraints();
    JLabel titleLabel = new JLabel(title);
    Font oldFont = titleLabel.getFont();
    Font titleFont = new Font(oldFont.getName(), oldFont.getStyle(), oldFont.getSize() * 2);

    titleLabel.setFont(titleFont);//from ww  w  .  j  av a 2s.c  om
    JLabel subTitleLabel = new JLabel(whatTheHeckIsGoingOn);
    leftOutputArea = new JTextPane();
    leftOutputArea.setMargin(new Insets(6, 10, 4, 6));
    leftOutputArea.setDocument(sourceOutputText);
    leftOutputArea.setEditable(false);
    JPanel comparePanel = new JPanel(new GridLayout(1, 2));
    JScrollPane sp = new JScrollPane(comparePanel);

    int lineHeight = 16;
    try {
        FontMetrics fm = leftOutputArea.getFontMetrics(leftOutputArea.getFont());
        lineHeight = fm.getHeight() + 2;
    } catch (Exception e) {
        lineHeight = 16;
    }
    // If the increments are not set, klicking on the up or down arrow of the scrollbar
    // will scroll the display by one pixel, which is definitely not what the user wants
    // by setting unitIncrement to the font's height the display will scroll by approx. one line
    sp.getVerticalScrollBar().setUnitIncrement(lineHeight);

    // Clicking in the "empty" area of the scrollbar will scroll by 10 lines
    sp.getVerticalScrollBar().setBlockIncrement(lineHeight * 10);

    comparePanel.add(leftOutputArea);
    Action sourceCopy = new sourceCopyAction(sourceOutputText);

    Action sourceSave = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            SPSUtils.saveDocument(CompareDMFrame.this, sourceOutputText,
                    (FileExtensionFilter) SPSUtils.TEXT_FILE_FILTER);
        }
    };
    CloseAction close = new CloseAction();
    close.setDialog(this);
    SPSUtils.makeJDialogCancellable(this, close);

    ButtonBarBuilder sourcebbBuilder = new ButtonBarBuilder();
    JButton copySource = new JButton(sourceCopy);
    copySource.setText(Messages.getString("CompareDMFrame.copy")); //$NON-NLS-1$
    sourcebbBuilder.addGridded(copySource);
    sourcebbBuilder.addRelatedGap();
    sourcebbBuilder.addGlue();

    JButton sourceSaveButton = new JButton(sourceSave);
    sourceSaveButton.setText(Messages.getString("CompareDMFrame.save")); //$NON-NLS-1$
    sourcebbBuilder.addGridded(sourceSaveButton);
    sourcebbBuilder.addRelatedGap();
    sourcebbBuilder.addGlue();

    ButtonBarBuilder closeBar = new ButtonBarBuilder();
    JButton closeButton = new JButton(close);
    closeButton.setText(Messages.getString("CompareDMFrame.close")); //$NON-NLS-1$
    closeBar.addGridded(closeButton);
    PanelBuilder pb;

    layout.setColumnGroups(new int[][] { { 2, 4 } });
    JPanel p = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);

    pb = new PanelBuilder(layout, p);
    pb.setDefaultDialogBorder();

    rightOutputArea = new JTextPane();
    rightOutputArea.setMargin(new Insets(6, 10, 4, 6));
    rightOutputArea.setDocument(targetOutputText);
    rightOutputArea.setEditable(false);
    comparePanel.add(rightOutputArea);
    Action targetCopy = new targetCopyAction(targetOutputText);
    //Sets the target Buttons
    ButtonBarBuilder targetbbBuilder = new ButtonBarBuilder();
    JButton copyTarget = new JButton(targetCopy);
    copyTarget.setText(Messages.getString("CompareDMFrame.copy")); //$NON-NLS-1$
    targetbbBuilder.addGridded(copyTarget);
    targetbbBuilder.addRelatedGap();
    targetbbBuilder.addGlue();

    Action targetSaveAction = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            SPSUtils.saveDocument(CompareDMFrame.this, targetOutputText,
                    (FileExtensionFilter) SPSUtils.TEXT_FILE_FILTER);
        }
    };

    JButton targetSave = new JButton(targetSaveAction);
    targetSave.setText(Messages.getString("CompareDMFrame.save")); //$NON-NLS-1$
    targetbbBuilder.addGridded(targetSave);
    targetbbBuilder.addRelatedGap();
    targetbbBuilder.addGlue();
    getRootPane().setDefaultButton(targetSave);

    pb.add(titleLabel, cc.xyw(2, 1, 3, "c,c")); //$NON-NLS-1$
    pb.add(subTitleLabel, cc.xyw(2, 3, 3, "c,c")); //$NON-NLS-1$
    pb.add(new JLabel(Messages.getString("CompareDMFrame.older")), cc.xy(2, 5)); //$NON-NLS-1$
    pb.add(new JLabel(Messages.getString("CompareDMFrame.newer")), cc.xy(4, 5)); //$NON-NLS-1$
    pb.add(sp, cc.xyw(2, 7, 3));
    pb.add(sourcebbBuilder.getPanel(), cc.xy(2, 9, "l,c")); //$NON-NLS-1$
    pb.add(targetbbBuilder.getPanel(), cc.xy(4, 9, "r,c")); //$NON-NLS-1$
    pb.add(closeBar.getPanel(), cc.xy(4, 11, "r,c")); //$NON-NLS-1$

    return pb.getPanel();
}

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

License:Open Source License

private void buildUI(SchemaPopulator targetSchemaPop, CatalogPopulator targetCatalogPop,
        SchemaPopulator sourceSchemaPop, CatalogPopulator sourceCatalogPop) {

    progressBar = new JProgressBar();
    progressBar.setIndeterminate(true);//from  w ww .  j a  va 2 s  . co m
    progressBar.setVisible(false);

    sqlTypeDropdown = new JComboBox(DDLUtils.getDDLTypes(session.getDataSources()));
    sqlTypeDropdown.setRenderer(new DDLGeneratorListCellRenderer());
    sqlTypeDropdown.setName("sqlTypeDropDown"); //$NON-NLS-1$
    OutputChoiceListener listener = new OutputChoiceListener(sqlTypeDropdown);
    sqlTypeDropdown.setEnabled(false);
    sqlTypeDropdown.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            startCompareAction.setEnabled(isStartable());
        }
    });
    sqlButton = new JRadioButton();
    sqlButton.setName(OUTPUT_SQL);
    sqlButton.setActionCommand(OUTPUT_SQL);
    sqlButton.setSelected(false);
    sqlButton.addActionListener(listener);

    englishButton = new JRadioButton();
    englishButton.setName("englishButton"); //$NON-NLS-1$
    englishButton.setActionCommand(OUTPUT_ENGLISH);
    englishButton.setSelected(true);
    englishButton.addActionListener(listener);

    liquibaseButton = new JRadioButton();
    liquibaseButton.setName(OUTPUT_LIQUIBASE); //$NON-NLS-1$
    liquibaseButton.setActionCommand(OUTPUT_LIQUIBASE);
    liquibaseButton.setSelected(false);
    liquibaseButton.addActionListener(listener);

    showNoChanges = new JCheckBox();
    showNoChanges.setName("showNoChanges"); //$NON-NLS-1$

    includeIndexes = new JCheckBox(Messages.getString("CompareDMPanel.includeIndexes")); //$NON-NLS-1$
    includeIndexes.setName("includeIndexes"); //$NON-NLS-1$
    includeIndexes.setSelected(false);

    // Group the radio buttons.
    ButtonGroup outputGroup = new ButtonGroup();
    outputGroup.add(sqlButton);
    outputGroup.add(englishButton);
    outputGroup.add(liquibaseButton);

    startCompareAction = new StartCompareAction();
    startCompareAction.setEnabled(false);

    swapSourceTargetAction = new SwapSourceTargetAction();
    swapSourceTargetAction.setEnabled(true);

    buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));

    FormLayout formLayout = new FormLayout("20dlu, 2dlu, pref, 4dlu," + // 1-4 //$NON-NLS-1$
            "0:grow, 4dlu, 0:grow, 4dlu," + // 5-8 //$NON-NLS-1$
            "0:grow, 4dlu, pref", // 9-11 //$NON-NLS-1$
            ""); //$NON-NLS-1$
    formLayout.setColumnGroups(new int[][] { { 5, 7, 9, } });
    JPanel panel = logger.isDebugEnabled() ? new FormDebugPanel() : new JPanel();
    DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, panel);
    builder.setDefaultDialogBorder();

    CellConstraints cc = new CellConstraints();

    builder.append(statusComponent, 11);
    builder.nextLine();

    builder.appendSeparator(Messages.getString("CompareDMPanel.olderSeparator")); //$NON-NLS-1$
    builder.nextLine();
    builder.append(""); // takes up blank space //$NON-NLS-1$

    source.buildPartialUI(builder, true, sourceSchemaPop, sourceCatalogPop);

    builder.appendSeparator(Messages.getString("CompareDMPanel.newerSeparator")); //$NON-NLS-1$
    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.append(""); //$NON-NLS-1$

    target.buildPartialUI(builder, false, targetSchemaPop, targetCatalogPop);

    ActionListener radioButtonActionEnabler = new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            startCompareAction.setEnabled(isStartable());
        }
    };
    source.playPenRadio.addActionListener(radioButtonActionEnabler);
    source.physicalRadio.addActionListener(radioButtonActionEnabler);
    source.loadRadio.addActionListener(radioButtonActionEnabler);

    target.playPenRadio.addActionListener(radioButtonActionEnabler);
    target.physicalRadio.addActionListener(radioButtonActionEnabler);
    target.loadRadio.addActionListener(radioButtonActionEnabler);

    JLabel temp;

    builder.appendSeparator(Messages.getString("CompareDMPanel.outpurFormatSeparator")); //$NON-NLS-1$
    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(sqlButton);

    JPanel ddlTypePanel = new JPanel(new BorderLayout(3, 3));
    ddlTypePanel.add(temp = new JLabel(Messages.getString("CompareDMPanel.sqlFor")), BorderLayout.WEST); //$NON-NLS-1$
    associate(temp, sqlButton);
    ddlTypePanel.add(sqlTypeDropdown, BorderLayout.CENTER); // ddl generator
    // type list
    ddlTypePanel.add(temp = new JLabel(Messages.getString("CompareDMPanel.makeOlderLookLikeNewer")), //$NON-NLS-1$
            BorderLayout.EAST);
    associate(temp, sqlButton);
    builder.append(ddlTypePanel, 3);

    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(liquibaseButton);
    temp = builder.append(Messages.getString("CompareDMPanel.liqubaseScript")); //$NON-NLS-1$
    associate(temp, liquibaseButton);

    this.lbOptions = new LiquibaseOptionsPanel();

    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(1);
    builder.nextColumn(2);
    lbOptions.getPanel().setVisible(false);
    builder.append(lbOptions.getPanel(), 9);

    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(englishButton);
    temp = builder.append(Messages.getString("CompareDMPanel.englishDescriptions")); //$NON-NLS-1$
    associate(temp, englishButton);

    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    builder.nextColumn(2);
    builder.append(showNoChanges);
    temp = builder.append(Messages.getString("CompareDMPanel.suppressSimilarities")); //$NON-NLS-1$
    associate(temp, showNoChanges);
    builder.append(includeIndexes);
    builder.nextLine();

    builder.appendSeparator(Messages.getString("CompareDMPanel.status")); //$NON-NLS-1$
    builder.appendRow(builder.getLineGapSpec());
    builder.appendRow("pref"); //$NON-NLS-1$
    builder.nextLine(2);
    statusLabel = new JLabel(""); //$NON-NLS-1$
    builder.add(statusLabel, cc.xy(5, builder.getRow()));
    builder.add(progressBar, cc.xyw(7, builder.getRow(), 5));

    setLayout(new BorderLayout());
    add(builder.getPanel());
    setPreferredSize(new Dimension(800, 600));
    try {
        restoreSettingsFromProject();
    } catch (SQLObjectException e) {
        logger.warn("Failed to save user CompareDM preferences!", e); //$NON-NLS-1$
    }
}

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;/*  w ww .j  a v  a  2 s.  c o 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: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;//  ww  w . ja  va 2s. 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.RelationshipEditPanel.java

License:Open Source License

public RelationshipEditPanel(Relationship r) {

    relationshipLine = r;//from www .ja va 2 s.  c  o  m
    this.color = relationshipLine.getForegroundColor();

    FormLayout layout = new FormLayout("pref, 4dlu, pref:grow, 4dlu, pref, 4dlu, pref:grow, 4dlu, pref"); //$NON-NLS-1$
    layout.setColumnGroups(new int[][] { { 3, 7 } });
    DefaultFormBuilder fb = new DefaultFormBuilder(layout,
            logger.isDebugEnabled() ? new FormDebugPanel() : new JPanel());

    fb.append(Messages.getString("RelationshipEditPanel.name"), relationshipName = new JTextField(), 7); //$NON-NLS-1$

    fb.nextLine();
    fb.append(Messages.getString("RelationshipEditPanel.lineColour"), //$NON-NLS-1$
            relationLineColor = new JComboBox(Relationship.SUGGESTED_COLOURS));
    ColorCellRenderer renderer = new ColorCellRenderer(40, 20);
    relationLineColor.setRenderer(renderer);
    if (!containsColor(Relationship.SUGGESTED_COLOURS, color)) {
        relationLineColor.addItem(color);
        relationLineColor.setSelectedItem(color);
    }
    fb.append(new JButton(customColour));

    fb.nextLine();
    fb.append(Messages.getString("RelationshipEditPanel.pkLabel"), pkLabelTextField = new JTextField());
    fb.append(Messages.getString("RelationshipEditPanel.fkLabel"), fkLabelTextField = new JTextField());

    JButton swapButton = new JButton(swapLabelText);
    swapButton.setIcon(
            SPSUtils.createIcon("arrow_refresh", "Swap Labels", ArchitectSwingSessionContext.ICON_SIZE));
    swapButton.setToolTipText("Swap Label Texts");
    fb.append(swapButton);
    fb.nextLine();

    identifyingGroup = new ButtonGroup();
    fb.append(Messages.getString("RelationshipEditPanel.type"), //$NON-NLS-1$
            identifyingButton = new JRadioButton(Messages.getString("RelationshipEditPanel.identifying")), 7); //$NON-NLS-1$
    identifyingGroup.add(identifyingButton);
    fb.append("", //$NON-NLS-1$
            nonIdentifyingButton = new JRadioButton(Messages.getString("RelationshipEditPanel.nonIdentifying")), //$NON-NLS-1$
            7);
    identifyingGroup.add(nonIdentifyingButton);

    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();

    pkTypeGroup = new ButtonGroup();
    fkTypeGroup = new ButtonGroup();
    fb.nextLine();
    fb.append(Messages.getString("RelationshipEditPanel.cardinality"), //$NON-NLS-1$
            pkTableName = new JLabel("PK Table: Unknown")); //$NON-NLS-1$
    fb.append("", fkTableName = new JLabel("FK Table: Unknown")); //$NON-NLS-1$ //$NON-NLS-2$
    fb.nextLine();

    fb.append("", pkTypeZeroToMany = new JRadioButton(Messages.getString("RelationshipEditPanel.zeroOrMore"))); //$NON-NLS-1$ //$NON-NLS-2$
    pkTypeGroup.add(pkTypeZeroToMany);
    fb.append("", fkTypeZeroToMany = new JRadioButton(Messages.getString("RelationshipEditPanel.zeroOrMore"))); //$NON-NLS-1$ //$NON-NLS-2$
    fkTypeGroup.add(fkTypeZeroToMany);
    fb.nextLine();

    fb.append("", pkTypeOneToMany = new JRadioButton(Messages.getString("RelationshipEditPanel.oneOrMore"))); //$NON-NLS-1$ //$NON-NLS-2$
    pkTypeGroup.add(pkTypeOneToMany);
    fb.append("", fkTypeOneToMany = new JRadioButton(Messages.getString("RelationshipEditPanel.oneOrMore"))); //$NON-NLS-1$ //$NON-NLS-2$
    fkTypeGroup.add(fkTypeOneToMany);
    fb.nextLine();

    fb.append("", pkTypeZeroOne = new JRadioButton(Messages.getString("RelationshipEditPanel.zeroOrOne"))); //$NON-NLS-1$ //$NON-NLS-2$
    pkTypeGroup.add(pkTypeZeroOne);
    fb.append("", fkTypeZeroOne = new JRadioButton(Messages.getString("RelationshipEditPanel.zeroOrOne"))); //$NON-NLS-1$ //$NON-NLS-2$
    fkTypeGroup.add(fkTypeZeroOne);
    fb.nextLine();

    fb.append("", pkTypeOne = new JRadioButton(Messages.getString("RelationshipEditPanel.exactlyOne"))); //$NON-NLS-1$ //$NON-NLS-2$
    pkTypeGroup.add(pkTypeOne);

    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();
    fb.nextLine();

    deferrabilityGroup = new ButtonGroup();
    fb.append(Messages.getString("RelationshipEditPanel.deferrability"), //$NON-NLS-1$
            notDeferrable = new JRadioButton(Messages.getString("RelationshipEditPanel.notDeferrable")), 7); //$NON-NLS-1$
    deferrabilityGroup.add(notDeferrable);
    fb.append("", //$NON-NLS-1$
            initiallyDeferred = new JRadioButton(Messages.getString("RelationshipEditPanel.initiallyDeferred")), //$NON-NLS-1$
            7);
    deferrabilityGroup.add(initiallyDeferred);
    fb.append("", initiallyImmediate = new JRadioButton( //$NON-NLS-1$
            Messages.getString("RelationshipEditPanel.initiallyImmediate")), 7); //$NON-NLS-1$
    deferrabilityGroup.add(initiallyImmediate);

    fb.nextLine();
    fb.appendUnrelatedComponentsGapRow();

    updateRuleGroup = new ButtonGroup();
    deleteRuleGroup = new ButtonGroup();
    fb.nextLine();
    fb.append(Messages.getString("RelationshipEditPanel.updateRule"), //$NON-NLS-1$
            updateCascade = new JRadioButton(Messages.getString("RelationshipEditPanel.cascade"))); //$NON-NLS-1$
    updateRuleGroup.add(updateCascade);
    fb.append(Messages.getString("RelationshipEditPanel.deleteRule"), //$NON-NLS-1$
            deleteCascade = new JRadioButton(Messages.getString("RelationshipEditPanel.cascade"))); //$NON-NLS-1$
    deleteRuleGroup.add(deleteCascade);
    fb.nextLine();

    fb.append("", updateRestrict = new JRadioButton(Messages.getString("RelationshipEditPanel.restrict"))); //$NON-NLS-1$ //$NON-NLS-2$
    updateRuleGroup.add(updateRestrict);
    fb.append("", deleteRestrict = new JRadioButton(Messages.getString("RelationshipEditPanel.restrict"))); //$NON-NLS-1$ //$NON-NLS-2$
    deleteRuleGroup.add(deleteRestrict);
    fb.nextLine();

    fb.append("", updateNoAction = new JRadioButton(Messages.getString("RelationshipEditPanel.noAction"))); //$NON-NLS-1$ //$NON-NLS-2$
    updateRuleGroup.add(updateNoAction);
    fb.append("", deleteNoAction = new JRadioButton(Messages.getString("RelationshipEditPanel.noAction"))); //$NON-NLS-1$ //$NON-NLS-2$
    deleteRuleGroup.add(deleteNoAction);
    fb.nextLine();

    fb.append("", updateSetNull = new JRadioButton(Messages.getString("RelationshipEditPanel.setNull"))); //$NON-NLS-1$ //$NON-NLS-2$
    updateRuleGroup.add(updateSetNull);
    fb.append("", deleteSetNull = new JRadioButton(Messages.getString("RelationshipEditPanel.setNull"))); //$NON-NLS-1$ //$NON-NLS-2$
    deleteRuleGroup.add(deleteSetNull);
    fb.nextLine();

    fb.append("", updateSetDefault = new JRadioButton(Messages.getString("RelationshipEditPanel.setDefault"))); //$NON-NLS-1$ //$NON-NLS-2$
    updateRuleGroup.add(updateSetDefault);
    fb.append("", deleteSetDefault = new JRadioButton(Messages.getString("RelationshipEditPanel.setDefault"))); //$NON-NLS-1$ //$NON-NLS-2$
    deleteRuleGroup.add(deleteSetDefault);
    fb.nextLine();

    setRelationship(r.getModel());

    //TODO  Doesn't work!
    relationshipName.selectAll();

    fb.setDefaultDialogBorder();
    panel = fb.getPanel();
}

From source file:ca.sqlpower.swingui.db.DatabaseConnectionManager.java

License:Open Source License

private JPanel createPanel(List<Action> additionalActions, List<JComponent> additionalComponents,
        boolean showCloseButton, String message) {

    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;/*w w  w  .j av a  2 s. c  o m*/
    JPanel p = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);
    pb = new PanelBuilder(layout, p);
    pb.setDefaultDialogBorder();

    pb.add(new JLabel(message), cc.xyw(2, 2, 3)); //$NON-NLS-1$

    TableModel tm = new ConnectionTableModel(dsCollection);
    dsTable = new EditableJTable(tm);
    dsTable.setTableHeader(null);
    dsTable.setShowGrid(false);
    dsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    dsTable.addMouseListener(new DSTableMouseListener());
    dsTable.setDefaultRenderer(SPDataSource.class, new ConnectionTableCellRenderer());

    JScrollPane sp = new JScrollPane(dsTable);
    sp.getViewport().setBackground(dsTable.getBackground());

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

    ButtonStackBuilder bsb = new ButtonStackBuilder();

    JButton newButton = new JButton();
    AbstractAction newDatabaseConnectionAction = new NewConnectionAction(
            Messages.getString("DatabaseConnectionManager.newDbConnectionActionName"), newButton); //$NON-NLS-1$
    newButton.setAction(newDatabaseConnectionAction);
    bsb.addGridded(newButton);
    bsb.addRelatedGap();
    bsb.addGridded(new JButton(editDatabaseConnectionAction));
    bsb.addRelatedGap();
    bsb.addGridded(new JButton(removeDatabaseConnectionAction));

    removeDatabaseConnectionAction.setEnabled(false);
    editDatabaseConnectionAction.setEnabled(false);

    bsb.addUnrelatedGap();
    JButton jdbcDriversButton = new JButton(jdbcDriversAction);
    bsb.addGridded(jdbcDriversButton);

    for (Action a : additionalActions) {
        bsb.addUnrelatedGap();
        JButton b = new JButton(a);
        Object disableValue = a.getValue(DISABLE_IF_NO_CONNECTION_SELECTED);
        if (disableValue instanceof Boolean && disableValue.equals(Boolean.TRUE)) {
            b.setEnabled(false);
        }

        Object heightValue = a.getValue(ADDITIONAL_BUTTON_HEIGHT);
        if (heightValue instanceof Integer) {
            b.setPreferredSize(new Dimension((int) b.getPreferredSize().getWidth(), (Integer) heightValue));
        }

        Object verticalTextPos = a.getValue(VERTICAL_TEXT_POSITION);
        if (verticalTextPos instanceof Integer) {
            Integer verticalTextInt = (Integer) verticalTextPos;
            if (verticalTextInt == SwingConstants.TOP || verticalTextInt == SwingConstants.BOTTOM
                    || verticalTextInt == SwingConstants.CENTER) {
                b.setVerticalTextPosition(verticalTextInt);
            }
        }

        Object horizontalTextPos = a.getValue(HORIZONTAL_TEXT_POSITION);
        if (horizontalTextPos instanceof Integer) {
            Integer horizontalTextInt = (Integer) horizontalTextPos;
            if (horizontalTextInt == SwingConstants.LEFT || horizontalTextInt == SwingConstants.RIGHT
                    || horizontalTextInt == SwingConstants.CENTER || horizontalTextInt == SwingConstants.LEADING
                    || horizontalTextInt == SwingConstants.TRAILING) {
                b.setHorizontalTextPosition(horizontalTextInt);
            }
        }

        additionalActionButtons.add(b);
        bsb.addFixed(b);
    }

    for (JComponent comp : additionalComponents) {
        bsb.addUnrelatedGap();
        bsb.addFixed(comp);
    }

    if (showCloseButton) {
        bsb.addUnrelatedGap();
        bsb.addGridded(new JButton(closeAction));
    }

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

}

From source file:calendarexportplugin.ExtendedDialog.java

License:Open Source License

/**
 * Create the GUI//  ww  w. ja  v  a2 s.  c om
 */
private void createGui() {
    try {
        CellConstraints cc = new CellConstraints();
        PanelBuilder pb = new PanelBuilder(
                new FormLayout("5dlu,default:grow,5dlu", "pref,5dlu,fill:default:grow,5dlu,pref"),
                (JPanel) this.getContentPane());
        pb.setDefaultDialogBorder();

        mConfigPanel = new PluginProgramConfigurationPanel(
                CalendarExportPlugin.getInstance().getSelectedPluginProgramFormattings(),
                CalendarExportPlugin.getInstance().getAvailableLocalPluginProgramFormatings(),
                CalendarExportPlugin.getDefaultFormatting(), true, false);

        pb.addSeparator(mLocalizer.msg("title", "Formatings selection"), cc.xyw(1, 1, 3));
        pb.add(mConfigPanel, cc.xy(2, 3));

        FormLayout layout = new FormLayout("0dlu:grow,pref,5dlu,pref", "pref");
        layout.setColumnGroups(new int[][] { { 2, 4 } });

        JPanel buttonPanel = new JPanel(layout);

        JButton ok = new JButton(Localizer.getLocalization(Localizer.I18N_OK));

        ok.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                okPressed();
            }
        });

        JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL));
        cancel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cancelPressed();
            }
        });

        buttonPanel.add(ok, cc.xy(2, 1));
        buttonPanel.add(cancel, cc.xy(4, 1));

        pb.add(buttonPanel, cc.xy(2, 5));

        getRootPane().setDefaultButton(ok);

        setSize(550, 400);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:ch.fork.AdHocRailway.ui.locomotives.configuration.LocomotiveConfig.java

License:Open Source License

private void buildPanel() {
    initComponents();//from w  ww  . ja v  a2  s .c  om

    final FormLayout layout = new FormLayout("right:pref, 3dlu, pref:grow, 30dlu, right:pref, 3dlu, pref:grow",
            "p:grow, 3dlu,p:grow, 3dlu,p:grow, 3dlu,p:grow, 3dlu,p:grow, 3dlu,p:grow, 3dlu,p:grow");
    layout.setColumnGroups(new int[][] { { 1, 5 }, { 3, 7 } });
    layout.setRowGroups(new int[][] { { 3, 5, 7, 9 } });

    final PanelBuilder builder = new PanelBuilder(layout);
    builder.setDefaultDialogBorder();
    final CellConstraints cc = new CellConstraints();

    builder.addSeparator("General", cc.xyw(1, 1, 3));

    builder.addLabel("Name", cc.xy(1, 3));
    builder.add(nameTextField, cc.xy(3, 3));

    builder.addLabel("Description", cc.xy(1, 5));
    builder.add(descTextField, cc.xy(3, 5));

    builder.addLabel("Type", cc.xy(1, 7));
    builder.add(locomotiveTypeComboBox, cc.xy(3, 7));

    builder.addLabel("Image", cc.xy(1, 9));
    builder.add(chooseImageButton, cc.xy(3, 9));

    builder.add(imageLabel, cc.xyw(1, 11, 3));

    builder.addSeparator("Interface", cc.xyw(5, 1, 3));

    builder.addLabel("Bus", cc.xy(5, 3));
    builder.add(busSpinner, cc.xy(7, 3));

    builder.addLabel("Address 1", cc.xy(5, 5));
    builder.add(address1Spinner, cc.xy(7, 5));

    builder.addLabel("Address 2", cc.xy(5, 7));
    builder.add(address2Spinner, cc.xy(7, 7));

    builder.add(functionsTable, cc.xywh(5, 9, 3, 3));

    builder.add(errorPanel, cc.xyw(1, 13, 3));

    builder.add(buildButtonBar(), cc.xyw(5, 13, 3));

    // add(builder.getPanel());

    setLayout(new MigLayout());

    add(new JLabel("Name"));
    add(nameTextField, "w 300!");

    add(new JLabel("Bus"), "gap unrelated");
    add(busSpinner, "w 150!, wrap");

    add(new JLabel("Description"));
    add(descTextField, "w 300!");

    add(new JLabel("Address 1"), "gap unrelated");
    add(address1Spinner, "w 150!, wrap");

    add(new JLabel("Type"));
    add(locomotiveTypeComboBox, "w 150!");

    add(new JLabel("Address 2"), "gap unrelated");
    add(address2Spinner, "w 150!, wrap");

    add(new JLabel("Image"));
    add(chooseImageButton, "w 150!");

    add(new JLabel("Functions"), "gap unrelated");
    add(new JScrollPane(functionsTable), "h 200!, w 300!, span 1 2, wrap");

    add(imageLabel, "align center, span 2, wrap");

    add(buildButtonBar(), "span 4, align right");

}