Example usage for com.jgoodies.forms.layout CellConstraints xyw

List of usage examples for com.jgoodies.forms.layout CellConstraints xyw

Introduction

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

Prototype

public CellConstraints xyw(int col, int row, int colSpan) 

Source Link

Document

Sets the column, row, width, and height; uses a height (row span) of 1 and the horizontal and vertical default alignments.

Examples:

 cc.xyw(1, 3, 7); cc.xyw(1, 3, 2); 

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

License:Open Source License

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

    progressBar = new JProgressBar();
    progressBar.setIndeterminate(true);/* www  .j  ava2  s.c  o  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.DataMoverPanel.java

License:Open Source License

public DataMoverPanel(ArchitectSwingSession session) throws SQLObjectException {
    this.session = session;

    setupDBTrees();/*w  w  w .j av  a 2  s  .  c o  m*/

    okAction.setEnabled(false);

    sourceTree = new JTree();
    final DBTreeModel sourceTreeModel = new DBTreeModel(treeRoot, sourceTree);
    sourceTree.setModel(sourceTreeModel);
    sourceTree.setRootVisible(false);
    sourceTree.setShowsRootHandles(true);
    sourceTree.setCellRenderer(new DBTreeCellRenderer());
    sourceTree.addTreeSelectionListener(dbTreeListener);

    destTree = new JTree();
    final DBTreeModel destTreeModel = new DBTreeModel(treeRoot, sourceTree);
    destTree.setModel(destTreeModel);
    destTree.setRootVisible(false);
    destTree.setShowsRootHandles(true);
    destTree.setCellRenderer(new DBTreeCellRenderer());
    destTree.addTreeSelectionListener(dbTreeListener);

    PanelBuilder pb = new PanelBuilder(new FormLayout("pref:grow,8dlu,pref:grow", //$NON-NLS-1$
            "pref,4dlu,fill:pref:grow,4dlu,pref,4dlu,pref")); //$NON-NLS-1$
    pb.getLayout().addGroupedColumn(1);
    pb.getLayout().addGroupedColumn(3);
    CellConstraints cc = new CellConstraints();

    pb.addLabel(Messages.getString("DataMoverPanel.sourceLabel"), cc.xy(1, 1)); //$NON-NLS-1$
    pb.addLabel(Messages.getString("DataMoverPanel.destinationLabel"), cc.xy(3, 1)); //$NON-NLS-1$

    pb.add(new JScrollPane(sourceTree), cc.xy(1, 3));
    pb.add(new JScrollPane(destTree), cc.xy(3, 3));

    session.getDataSources().addDatabaseListChangeListener(new DatabaseListChangeListener() {
        public void databaseAdded(DatabaseListChangeEvent e) {
            try {
                setupDBTrees();
            } catch (SQLObjectException ex) {
                SPSUtils.showExceptionDialogNoReport(panel, Messages.getString("DataMoverPanel.couldNotFindDB"), //$NON-NLS-1$
                        ex);
            }
        }

        public void databaseRemoved(DatabaseListChangeEvent e) {
            try {
                setupDBTrees();
            } catch (SQLObjectException ex) {
                SPSUtils.showExceptionDialogNoReport(panel, Messages.getString("DataMoverPanel.couldNotFindDB"), //$NON-NLS-1$
                        ex);
            }
        }
    });

    pb.add(new JButton(new DatabaseConnectionManagerAction(session)), cc.xy(1, 5));
    pb.add(truncateDestinationTableBox = new JCheckBox(
            Messages.getString("DataMoverPanel.truncateDestinationTableOption")), cc.xy(3, 5)); //$NON-NLS-1$

    pb.add(ButtonBarFactory.buildOKCancelBar(new JButton(okAction), new JButton(cancelAction)),
            cc.xyw(1, 7, 3));

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

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;/*from  w ww .  java2 s.c om*/

    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.enterprise.GroupEditorPanel.java

License:Open Source License

public GroupEditorPanel(Group baseGroup, String username, Action closeAction) {
    this.group = baseGroup;
    this.securityWorkspace = (ArchitectSwingProject) group.getParent();
    this.username = username;
    this.closeAction = closeAction;

    final Dimension prefScrollPaneDimension = new Dimension(250, 300);

    nameLabel = new JLabel("Group Name");

    nameTextField = new JTextField(25);
    nameTextField.setText(group.getName());
    nameTextField.getDocument().addDocumentListener(textFieldListener);

    ListCellRenderer userListCellRenderer = new DefaultListCellRenderer() {
        @Override/*w ww  . j  a  v a 2  s .  com*/
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
                boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            setIcon(USER_ICON);
            return this;
        }
    };

    availableUsersLabel = new JLabel("Available Users");
    availableUsersList = new JList(new DefaultListModel());
    availableUsersList.setCellRenderer(userListCellRenderer);
    availableUsersScrollPane = new JScrollPane(availableUsersList);
    availableUsersScrollPane.setPreferredSize(prefScrollPaneDimension);

    currentUsersLabel = new JLabel("Current Users");
    currentUsersList = new JList(new DefaultListModel());
    currentUsersList.setCellRenderer(userListCellRenderer);

    currentUsersScrollPane = new JScrollPane(currentUsersList);
    currentUsersScrollPane.setPreferredSize(prefScrollPaneDimension);

    Grant globalGrant = null;
    for (Grant grant : baseGroup.getChildren(Grant.class)) {
        if (grant.isSystemLevel() && grant.getType() != null
                && grant.getType().equals(ArchitectSwingProject.class.getName())) {
            if (globalGrant != null) {
                throw new IllegalStateException(
                        "Multiple grants for system level workspace under the same group found.");
            }

            globalGrant = grant;
        }
    }

    if (globalGrant != null) {
        privilegesEditorPanel = new PrivilegesEditorPanel(globalGrant, baseGroup, null,
                ArchitectSwingProject.class.getName(), username, securityWorkspace);
    } else {
        privilegesEditorPanel = new PrivilegesEditorPanel(null, baseGroup, null,
                ArchitectSwingProject.class.getName(), username, securityWorkspace);
    }

    JButton addButton = new JButton(addAction);
    addButton.setIcon(RIGHT_ARROW);
    JButton removeButton = new JButton(removeAction);
    removeButton.setIcon(LEFT_ARROW);

    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder upperPanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu, pref:grow", "pref, 5dlu"));
    upperPanelBuilder.add(nameLabel, cc.xy(1, 1));
    upperPanelBuilder.add(nameTextField, cc.xyw(3, 1, 1));

    DefaultFormBuilder buttonPanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref", "pref:grow, pref, 5dlu, pref, pref:grow"));
    buttonPanelBuilder.add(addButton, cc.xy(1, 2));
    buttonPanelBuilder.add(removeButton, cc.xy(1, 5));

    DefaultFormBuilder centrePanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu, pref, 5dlu, pref", "pref, pref:grow"));
    centrePanelBuilder.add(availableUsersLabel, cc.xy(1, 1));
    centrePanelBuilder.add(currentUsersLabel, cc.xy(5, 1));
    centrePanelBuilder.add(availableUsersScrollPane, cc.xy(1, 2));
    centrePanelBuilder.add(buttonPanelBuilder.getPanel(), cc.xy(3, 2));
    centrePanelBuilder.add(currentUsersScrollPane, cc.xy(5, 2));

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref:grow", "pref, 3dlu, pref:grow, 5dlu, pref"));
    builder.add(upperPanelBuilder.getPanel(), cc.xy(1, 1));
    builder.add(centrePanelBuilder.getPanel(), cc.xy(1, 3));

    DefaultFormBuilder bottomBuilder = new DefaultFormBuilder(
            new FormLayout("pref:grow, 5dlu, pref:grow", "pref, 3dlu, pref"));
    bottomBuilder.add(new JLabel("System Privileges"), cc.xy(1, 1));
    bottomBuilder.add(privilegesEditorPanel.getPanel(), cc.xy(1, 3));

    ButtonBarBuilder2 bbb = ButtonBarBuilder2.createLeftToRightBuilder();
    bbb.addGlue();
    bbb.addButton(new JButton(okAction));
    bbb.addRelatedGap();
    bbb.addButton(new JButton(cancelAction));

    bottomBuilder.add(bbb.getPanel(), cc.xy(3, 3));
    builder.add(bottomBuilder.getPanel(), cc.xy(1, 5));
    builder.setDefaultDialogBorder();

    panel = builder.getPanel();

    fillUserLists();
    disableIfNecessary();
}

From source file:ca.sqlpower.architect.swingui.enterprise.ServerProjectsManagerPanel.java

License:Open Source License

public ServerProjectsManagerPanel(SPServerInfo serverInfo, ArchitectSwingSession session,
        ArchitectSessionContext context, Component dialogOwner, Action closeAction) {
    this.serverInfo = serverInfo;
    this.dialogOwner = dialogOwner;
    this.session = session;
    this.context = context;
    this.closeAction = closeAction;

    ArchitectClientSideSession.getCookieStore().clear();

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref:grow, 5dlu, pref", "pref, pref, pref"));

    servers = null;/*from w w w .j a  va2  s.c o  m*/

    projects = new JList(new DefaultListModel());
    projects.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseReleased(MouseEvent e) {
            refreshPanel();
            if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) {
                openAction.actionPerformed(null);
            }
        }
    });

    JScrollPane projectsPane = new JScrollPane(projects);
    projectsPane.setPreferredSize(new Dimension(250, 300));

    JButton securityButton = new JButton(openSecurityManagerPanelAction);

    refreshInfoList();
    CellConstraints cc = new CellConstraints();
    builder.add(new JLabel(serverInfo.getName() + "'s projects:"), cc.xyw(1, 1, 2));
    builder.nextLine();
    builder.add(projectsPane, cc.xywh(1, 2, 1, 2));

    DefaultFormBuilder buttonBarBuilder = new DefaultFormBuilder(new FormLayout("pref"));
    buttonBarBuilder.append(new JButton(refreshAction));
    buttonBarBuilder.append(securityButton);
    buttonBarBuilder.append(new JButton(newAction));
    buttonBarBuilder.append(new JButton(openAction));
    buttonBarBuilder.append(new JButton(deleteAction));
    buttonBarBuilder.append(new JButton(closeAction));
    builder.add(buttonBarBuilder.getPanel(), cc.xy(3, 2));
    builder.setDefaultDialogBorder();
    panel = builder.getPanel();
}

From source file:ca.sqlpower.architect.swingui.enterprise.ServerProjectsManagerPanel.java

License:Open Source License

public ServerProjectsManagerPanel(ArchitectSwingSession session, ArchitectSessionContext context,
        Component dialogOwner, Action closeAction) {
    this.session = session;
    this.dialogOwner = dialogOwner;
    this.context = context;
    this.closeAction = closeAction;

    ArchitectClientSideSession.getCookieStore().clear();

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref:grow, 5dlu, pref:grow, 5dlu, pref", "pref, pref, pref"));

    servers = new JList(new DefaultListModel());
    servers.addMouseListener(new MouseAdapter() {
        @Override//ww  w .  j a  v  a  2s  . c om
        public void mouseReleased(MouseEvent e) {
            if (SwingUtilities.isLeftMouseButton(e)) {
                refreshInfoList();
            }
        }
    });

    DefaultListModel serversModel = (DefaultListModel) servers.getModel();
    serversModel.removeAllElements();
    if (context.getServerManager().getServers(false).size() > 0) {
        for (SPServerInfo serverInfo : context.getServerManager().getServers(false)) {
            serversModel.addElement(serverInfo);
        }
    } else {
        serversModel.addElement("No Servers");
        servers.setEnabled(false);
    }

    projects = new JList(new DefaultListModel());
    projects.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseReleased(MouseEvent e) {
            refreshPanel();
            if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) {
                openAction.actionPerformed(null);
            }
        }
    });

    JScrollPane projectsPane = new JScrollPane(projects);
    projectsPane.setPreferredSize(new Dimension(250, 300));

    JScrollPane serverPane = new JScrollPane(servers);
    serverPane.setPreferredSize(new Dimension(250, 300));

    JButton securityButton = new JButton(openSecurityManagerPanelAction);

    refreshInfoList();
    CellConstraints cc = new CellConstraints();
    builder.add(new JLabel("Servers:"), cc.xyw(1, 1, 2));
    builder.add(new JLabel("Projects:"), cc.xyw(3, 1, 2));
    builder.nextLine();
    builder.add(serverPane, cc.xywh(1, 2, 1, 2));
    builder.add(projectsPane, cc.xywh(3, 2, 1, 2));

    DefaultFormBuilder buttonBarBuilder = new DefaultFormBuilder(new FormLayout("pref"));
    buttonBarBuilder.append(new JButton(refreshAction));
    buttonBarBuilder.append(securityButton);
    buttonBarBuilder.append(new JButton(newAction));
    buttonBarBuilder.append(new JButton(openAction));
    buttonBarBuilder.append(new JButton(uploadAction));
    buttonBarBuilder.append(new JButton(deleteAction));
    buttonBarBuilder.append(new JButton(closeAction));
    builder.add(buttonBarBuilder.getPanel(), cc.xy(5, 2));
    builder.setDefaultDialogBorder();
    panel = builder.getPanel();
}

From source file:ca.sqlpower.architect.swingui.enterprise.UserEditorPanel.java

License:Open Source License

public UserEditorPanel(User baseUser, String username, Action closeAction, final ArchitectSession session) {
    this.user = baseUser;
    this.session = session;
    this.securityWorkspace = (ArchitectSwingProject) user.getParent();
    this.username = username;
    this.closeAction = closeAction;

    final Dimension prefScrollPaneDimension = new Dimension(250, 300);

    usernameLabel = new JLabel("User Name");
    usernameField = new JTextField();
    usernameField.setText(user.getUsername());
    usernameField.getDocument().addDocumentListener(textFieldListener);

    fullnameLabel = new JLabel("Full Name");
    fullnameField = new JTextField();
    fullnameField.setText(user.getFullName());
    fullnameField.getDocument().addDocumentListener(textFieldListener);

    emailLabel = new JLabel("Email");
    emailField = new JTextField();
    emailField.setText(user.getEmail());
    emailField.getDocument().addDocumentListener(textFieldListener);

    ListCellRenderer groupListCellRenderer = new DefaultListCellRenderer() {
        @Override//  w  w  w.java 2s  .c  o  m
        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
                boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            setIcon(GROUP_ICON);
            return this;
        }
    };

    availableGroupsLabel = new JLabel("Available Groups");
    availableGroupsList = new JList(new DefaultListModel());
    availableGroupsList.setCellRenderer(groupListCellRenderer);
    availableGroupsScrollPane = new JScrollPane(availableGroupsList);
    availableGroupsScrollPane.setPreferredSize(prefScrollPaneDimension);

    currentGroupsLabel = new JLabel("Current Groups");
    currentGroupsList = new JList(new DefaultListModel());
    currentGroupsList.setCellRenderer(groupListCellRenderer);
    currentGroupsScrollPane = new JScrollPane(currentGroupsList);
    currentGroupsScrollPane.setPreferredSize(prefScrollPaneDimension);

    Grant globalGrant = null;
    for (Grant grant : user.getChildren(Grant.class)) {
        if (grant.isSystemLevel() && grant.getType().equals(ArchitectSwingProject.class.getName())) {
            if (globalGrant != null) {
                throw new IllegalStateException("Multiple grants for Architect Project found");
            }

            globalGrant = grant;
        }
    }

    if (globalGrant != null) {
        privilegesEditorPanel = new PrivilegesEditorPanel(globalGrant, user, null,
                ArchitectSwingProject.class.getName(), username, securityWorkspace);
    } else {
        privilegesEditorPanel = new PrivilegesEditorPanel(null, user, null,
                ArchitectSwingProject.class.getName(), username, securityWorkspace);
    }

    JButton addButton = new JButton(addAction);
    addButton.setIcon(RIGHT_ARROW);
    JButton removeButton = new JButton(removeAction);
    removeButton.setIcon(LEFT_ARROW);

    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder upperPanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu, pref:grow", "pref, pref, pref, pref, pref, 5dlu"));
    upperPanelBuilder.add(usernameLabel, cc.xy(1, 1));
    upperPanelBuilder.add(usernameField, cc.xyw(3, 1, 1));
    upperPanelBuilder.add(fullnameLabel, cc.xy(1, 3));
    upperPanelBuilder.add(fullnameField, cc.xyw(3, 3, 1));
    upperPanelBuilder.add(emailLabel, cc.xy(1, 4));
    upperPanelBuilder.add(emailField, cc.xy(3, 4));

    passwordButton = new JButton(changePasswordAction);

    ButtonBarBuilder2 passwordBuilder = ButtonBarBuilder2.createLeftToRightBuilder();
    passwordBuilder.addGlue();
    passwordBuilder.addButton(passwordButton);

    DefaultFormBuilder buttonPanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref", "pref:grow, pref, 5dlu, pref, pref:grow"));
    buttonPanelBuilder.add(addButton, cc.xy(1, 2));
    buttonPanelBuilder.add(removeButton, cc.xy(1, 5));

    DefaultFormBuilder centrePanelBuilder = new DefaultFormBuilder(
            new FormLayout("pref, 5dlu, pref, 5dlu, pref", "pref, pref:grow"));
    centrePanelBuilder.add(availableGroupsLabel, cc.xy(1, 1));
    centrePanelBuilder.add(currentGroupsLabel, cc.xy(5, 1));
    centrePanelBuilder.add(availableGroupsScrollPane, cc.xy(1, 2));
    centrePanelBuilder.add(buttonPanelBuilder.getPanel(), cc.xy(3, 2));
    centrePanelBuilder.add(currentGroupsScrollPane, cc.xy(5, 2));

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("pref:grow", "pref, pref, 3dlu, pref:grow, 5dlu, pref"));
    builder.add(upperPanelBuilder.getPanel(), cc.xy(1, 1));
    builder.add(passwordBuilder.getPanel(), cc.xy(1, 2));
    builder.add(centrePanelBuilder.getPanel(), cc.xy(1, 4));

    DefaultFormBuilder bottomBuilder = new DefaultFormBuilder(
            new FormLayout("pref:grow, 5dlu, pref:grow", "pref, 3dlu, pref"));
    bottomBuilder.add(new JLabel("System Privileges"), cc.xy(1, 1));
    bottomBuilder.add(privilegesEditorPanel.getPanel(), cc.xy(1, 3));

    ButtonBarBuilder2 bbb = ButtonBarBuilder2.createLeftToRightBuilder();
    bbb.addGlue();
    bbb.addButton(new JButton(okAction));
    bbb.addRelatedGap();
    bbb.addButton(new JButton(cancelAction));

    bottomBuilder.add(bbb.getPanel(), cc.xy(3, 3));
    builder.add(bottomBuilder.getPanel(), cc.xy(1, 6));
    builder.setDefaultDialogBorder();

    panel = builder.getPanel();

    fillGroupLists();
    disableIfNecessary();
}

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

License:Open Source License

private void createGUI(SQLIndex index, SQLTable parent, ArchitectSwingSession session)
        throws SQLObjectException {
    this.parent = parent;
    PanelBuilder pb = new PanelBuilder((FormLayout) panel.getLayout(), panel);
    CellConstraints cc = new CellConstraints();
    pb.add(new JLabel(Messages.getString("IndexEditPanel.indexName")), cc.xy(1, 1)); //$NON-NLS-1$
    pb.add(name = new JTextField("", 30), cc.xyw(3, 1, 4)); //$NON-NLS-1$
    unique = new JCheckBox(Messages.getString("IndexEditPanel.uniqueIndex")); //$NON-NLS-1$
    pb.add(unique, cc.xy(3, 3));//from   www .  j  a  va 2 s  .  c o  m
    primaryKey = new JCheckBox(Messages.getString("IndexEditPanel.primaryKeyIndex")); //$NON-NLS-1$
    pb.add(primaryKey, cc.xy(3, 5));
    clustered = new JCheckBox(Messages.getString("IndexEditPanel.clusteredIndex")); //$NON-NLS-1$
    clustered.setSelected(index.isClustered());
    pb.add(clustered, cc.xy(3, 7));
    pb.add(new JLabel(Messages.getString("IndexEditPanel.indexType")), cc.xy(1, 9)); //$NON-NLS-1$

    indexType = new JComboBox();
    //add the platform default type
    indexType.addItem(DEFAULT_INDEX_TYPE);
    for (String type : getIndexTypes()) {
        indexType.addItem(type);
    }
    pb.add(indexType, cc.xyw(3, 9, 4));

    editIndex(index);
    columnsTable = new IndexColumnTable(parent, indexCopy, index);

    pb.add(new JScrollPane(columnsTable.getTable()), cc.xyw(1, 13, 6));

    // we want the buttons at their natural sizes, and the buttonbarbuilder wasn't doing that
    JPanel upDownPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
    upDownPanel.add(new JButton(new AbstractAction(null, SPSUtils.createIcon("chevrons_up1", null)) { //$NON-NLS-1$

        public void actionPerformed(ActionEvent e) {
            columnsTable.moveRow(true);
        }

    }));
    upDownPanel.add(new JButton(new AbstractAction(null, SPSUtils.createIcon("chevrons_down1", null)) { //$NON-NLS-1$
        public void actionPerformed(ActionEvent e) {
            columnsTable.moveRow(false);
        }
    }));

    pb.add(upDownPanel, cc.xyw(1, 15, 6));
    loadIndexIntoPanel();
}

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

License:Open Source License

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

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

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

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

    title = new JLabel("Column Name");
    title.setFont(titleFont);/*  w  ww .ja  va  2s.co m*/

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

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

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

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

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

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

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

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

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

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