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

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

Introduction

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

Prototype

public CellConstraints() 

Source Link

Document

Constructs a default instance of CellConstraints .

Usage

From source file:ca.sqlpower.matchmaker.swingui.munge.SubstringByWordMungeComponent.java

License:Open Source License

@Override
protected JPanel buildUI() {
    SubstringByWordMungeStep step = (SubstringByWordMungeStep) getStep();

    useRegex = new JCheckBox("Use Regular Expressions");
    useRegex.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            SubstringByWordMungeStep step = (SubstringByWordMungeStep) getStep();
            step.setRegex(useRegex.isSelected());
        }/*from ww w .  j av a2 s  .  c  om*/
    });
    useRegex.setSelected(step.isRegex());

    caseSensitive = new JCheckBox("Case Sensitive");
    caseSensitive.setSelected(step.isCaseSensitive());
    caseSensitive.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            SubstringByWordMungeStep step = (SubstringByWordMungeStep) getStep();
            step.setCaseSensitive(caseSensitive.isSelected());
        }

    });

    delimiter = new JTextField(step.getDelimiter());
    delimiter.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate(DocumentEvent e) {
            doStuff();
        }

        public void removeUpdate(DocumentEvent e) {
            doStuff();
        }

        public void changedUpdate(DocumentEvent e) {
            doStuff();
        }

        private void doStuff() {
            SubstringByWordMungeStep step = (SubstringByWordMungeStep) getStep();
            step.setDelimiter(delimiter.getText());
        }
    });
    RegexValidator validator = new RegexValidator();
    getHandler().addValidateObject(delimiter, useRegex, validator, true, "");

    resultDelimiter = new JTextField(step.getResultDelim());
    resultDelimiter.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate(DocumentEvent e) {
            doStuff();
        }

        public void removeUpdate(DocumentEvent e) {
            doStuff();
        }

        public void changedUpdate(DocumentEvent e) {
            doStuff();
        }

        private void doStuff() {
            SubstringByWordMungeStep step = (SubstringByWordMungeStep) getStep();
            step.setResultDelim(resultDelimiter.getText());
        }
    });

    int beginIndex = step.getBegIndex();
    SpinnerNumberModel beginNumberModel = new SpinnerNumberModel(beginIndex, 0, Integer.MAX_VALUE, 1);
    begin = new JSpinner(beginNumberModel);
    begin.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            SubstringByWordMungeStep step = (SubstringByWordMungeStep) getStep();
            step.setBegIndex((Integer) begin.getValue());
        }

    });

    int endIndex = step.getEndIndex();
    SpinnerNumberModel endNumberModel = new SpinnerNumberModel(endIndex, 0, Integer.MAX_VALUE, 1);
    end = new JSpinner(endNumberModel);
    end.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            SubstringByWordMungeStep step = (SubstringByWordMungeStep) getStep();
            step.setEndIndex((Integer) end.getValue());
        }

    });

    FormLayout layout = new FormLayout("4dlu,pref,4dlu,fill:pref:grow,4dlu", // columns
            "4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu"); // rows
    CellConstraints cc = new CellConstraints();

    JPanel content = new JPanel(layout);

    content.add(new JLabel("Begin Index:"), cc.xy(2, 2));
    content.add(begin, cc.xy(4, 2));
    content.add(new JLabel("End Index:"), cc.xy(2, 4));
    content.add(end, cc.xy(4, 4));
    content.add(new JLabel("Delimiter:"), cc.xy(2, 6));
    content.add(delimiter, cc.xy(4, 6));
    content.add(new JLabel("Result Delim:"), cc.xy(2, 8));
    content.add(resultDelimiter, cc.xy(4, 8));

    JPanel bottom = new JPanel(new GridLayout(2, 1));
    bottom.add(useRegex);
    bottom.add(caseSensitive);
    content.add(bottom, cc.xyw(2, 10, 3, "c,f"));

    return content;
}

From source file:ca.sqlpower.matchmaker.swingui.munge.SubstringMungeComponent.java

License:Open Source License

@Override
protected JPanel buildUI() {
    SubstringMungeStep step = (SubstringMungeStep) getStep();
    if (step == null)
        throw new NullPointerException("Null step!");
    int beginIndex = step.getBegIndex();
    SpinnerNumberModel beginNumberModel = new SpinnerNumberModel(beginIndex, 0, Integer.MAX_VALUE, 1);

    begin = new JSpinner(beginNumberModel);
    begin.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            SubstringMungeStep step = (SubstringMungeStep) getStep();
            step.setBegIndex((Integer) begin.getValue());
        }//ww w .j a v  a  2s. co m

    });

    int endIndex = step.getEndIndex();
    SpinnerNumberModel endNumberModel = new SpinnerNumberModel(endIndex, 0, Integer.MAX_VALUE, 1);

    end = new JSpinner(endNumberModel);
    end.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            SubstringMungeStep step = (SubstringMungeStep) getStep();
            step.setEndIndex((Integer) end.getValue());
        }

    });

    FormLayout layout = new FormLayout("4dlu,pref,4dlu,fill:pref:grow,4dlu", // columns
            "4dlu,pref,4dlu,pref,4dlu"); // rows
    CellConstraints cc = new CellConstraints();

    JPanel content = new JPanel(layout);

    content.add(new JLabel("Begin Index:"), cc.xy(2, 2));
    content.add(begin, cc.xy(4, 2));
    content.add(new JLabel("End Index:"), cc.xy(2, 4));
    content.add(end, cc.xy(4, 4));
    return content;
}

From source file:ca.sqlpower.matchmaker.swingui.MungeProcessEditor.java

License:Open Source License

private void buildUI() throws SQLObjectException {
    panel = new JPanel(new BorderLayout());
    FormLayout layout = new FormLayout("4dlu,pref,4dlu,fill:pref:grow,4dlu,pref,4dlu,pref,4dlu", // columns
            "4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu"); // rows
    CellConstraints cc = new CellConstraints();
    JPanel subPanel = new JPanel(layout);
    subPanel.add(status, cc.xyw(2, 2, 7));
    subPanel.add(new JLabel("Process Name: "), cc.xy(2, 4));
    subPanel.add(name, cc.xy(4, 4));//from w w w.  jav  a 2 s.  co m

    subPanel.add(new JLabel("Description: "), cc.xy(2, 6));
    subPanel.add(desc, cc.xy(4, 6));

    subPanel.add(new JLabel("Colour: "), cc.xy(6, 6));
    ColorCellRenderer renderer = new ColorCellRenderer(85, 50);
    color.setRenderer(renderer);
    subPanel.add(color, cc.xy(8, 6));
    subPanel.add(new JButton(saveAction), cc.xy(2, 8));
    subPanel.add(mungePen.getEnablePreviewCheckBox(), cc.xy(4, 8));
    subPanel.add(new JButton(customColour), cc.xy(8, 8));
    panel.add(subPanel, BorderLayout.NORTH);

    JToolBar t = new JToolBar();

    MungeStepLibrary msl = new MungeStepLibrary(mungePen,
            ((SwingSessionContext) swingSession.getContext()).getStepMap());
    t.setBackground(Color.WHITE);
    t.setLayout(new BorderLayout());
    t.add(msl.getHideShowButton(), BorderLayout.NORTH);
    t.add(new JScrollPane(msl.getList()), BorderLayout.CENTER);
    t.setBorder(BorderFactory.createRaisedBevelBorder());
    t.setFloatable(false);
    panel.add(new JScrollPane(mungePen), BorderLayout.CENTER);
    panel.add(t, BorderLayout.EAST);
}

From source file:ca.sqlpower.matchmaker.swingui.MungeProcessGroupEditor.java

License:Open Source License

private void buildUI() {
    FormLayout layout = new FormLayout(
            "4dlu,46dlu,4dlu,fill:min(pref;" + 3 * (new JComboBox().getMinimumSize().width)
                    + "px):grow,4dlu,pref,4dlu", // columns
            "10dlu,pref,4dlu,pref,4dlu,fill:40dlu:grow,4dlu,pref,10dlu"); // rows
    //      1     2   3    4     5   6     7   8     9    10   11

    PanelBuilder pb;//ww w .  j a v a  2 s .c  o  m
    JPanel p = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);

    pb = new PanelBuilder(layout, p);
    CellConstraints cc = new CellConstraints();

    int row = 2;
    pb.add(status, cc.xy(4, row));

    row += 2;
    pb.add(new JLabel("Transformations:"), cc.xy(4, row, "l,t"));

    row += 2;
    scrollPane = new JScrollPane(mungeProcessTable);
    pb.add(scrollPane, cc.xy(4, row, "f,f"));

    ButtonStackBuilder bsb = new ButtonStackBuilder();
    bsb.addGridded(new JButton(moveUp));
    bsb.addRelatedGap();
    bsb.addGridded(new JButton(moveDown));
    pb.add(bsb.getPanel(), cc.xy(6, row, "c,c"));

    ButtonBarBuilder bbb = new ButtonBarBuilder();
    //new actions for delete and save should be extracted and be put into its own file.
    bbb.addGridded(new JButton(new NewMungeProcessAction(swingSession, project)));
    bbb.addRelatedGap();
    bbb.addGridded(new JButton(deleteAction));

    row += 2;
    pb.add(bbb.getPanel(), cc.xy(4, row, "c,c"));

    moveDown.setEnabled(false);
    moveUp.setEnabled(false);

    panel = pb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.NewTableMergeRuleChooserPane.java

License:Open Source License

private JPanel buildUI() {
    FormLayout layout = new FormLayout(
            "10dlu,pref,4dlu,fill:max(pref;" + 5 * new JComboBox().getMinimumSize().getWidth()
                    + "px):grow,10dlu",
            "10dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,10dlu");
    //1    2    3    4    5     6    7   8    9 
    CellConstraints cc = new CellConstraints();

    JPanel p = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);
    PanelBuilder pb = new PanelBuilder(layout, p);

    int row = 2;/* w ww. j  av a 2 s .  c om*/
    pb.add(status, cc.xyw(2, row, 3, "f,f"));

    row += 2;
    pb.add(new JLabel("Catalog:"), cc.xy(2, row));
    pb.add(chooser.getCatalogComboBox(), cc.xy(4, row));

    row += 2;
    pb.add(new JLabel("Schema:"), cc.xy(2, row));
    pb.add(chooser.getSchemaComboBox(), cc.xy(4, row));

    row += 2;
    pb.add(new JLabel("Table:"), cc.xy(2, row));
    pb.add(chooser.getTableComboBox(), cc.xy(4, row));

    row += 2;
    pb.add(new JLabel("Index:"), cc.xy(2, row));
    pb.add(chooser.getUniqueKeyComboBox(), cc.xy(4, row));

    row += 2;
    pb.add(new JLabel("Parent Table:"), cc.xy(2, row));
    pb.add(parentMergeRule, cc.xy(4, row));

    return pb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.ProjectEditor.java

License:Open Source License

private JPanel buildUI() {

    projectName.setName("Project Name");
    sourceChooser = new SQLObjectChooser(swingSession, swingSession.getFrame());
    resultChooser = new SQLObjectChooser(swingSession, swingSession.getFrame());
    sourceChooser.getTableComboBox().setName("Source Table");
    resultChooser.getCatalogComboBox().setName("Result " + resultChooser.getCatalogTerm().getText());
    resultChooser.getSchemaComboBox().setName("Result " + resultChooser.getSchemaTerm().getText());
    resultTableName.setName("Result Table");

    sourceChooser.getCatalogComboBox().setRenderer(new SQLObjectComboBoxCellRenderer());
    sourceChooser.getSchemaComboBox().setRenderer(new SQLObjectComboBoxCellRenderer());
    sourceChooser.getTableComboBox().setRenderer(new SQLObjectComboBoxCellRenderer());
    resultChooser.getCatalogComboBox().setRenderer(new SQLObjectComboBoxCellRenderer());
    resultChooser.getSchemaComboBox().setRenderer(new SQLObjectComboBoxCellRenderer());

    filterPanel = new FilterComponents(swingSession.getFrame());

    JButton saveProject = new JButton(saveAction);
    JButton cancelProject = new JButton(cancelAction);
    JButton createIndexButton = new JButton(createIndexAction);

    FormLayout layout = new FormLayout(
            "4dlu,pref,4dlu,fill:min(pref;" + new JComboBox().getMinimumSize().width
                    + "px):grow, 4dlu,pref,4dlu", // columns
            "10dlu,pref,4dlu,pref,4dlu,pref,4dlu,40dlu,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref, 4dlu,32dlu,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref,10dlu"); // rows

    PanelBuilder pb;// ww  w.  j  av  a 2 s .  c  o m

    JPanel p = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);
    pb = new PanelBuilder(layout, p);
    CellConstraints cc = new CellConstraints();
    int row = 2;
    pb.add(status, cc.xy(4, row));
    row += 2;
    pb.add(new JLabel("Project Name:"), cc.xy(2, row, "r,c"));
    pb.add(projectName, cc.xy(4, row));
    row += 2;
    pb.add(new JLabel("Folder:"), cc.xy(2, row, "r,c"));
    pb.add(folderComboBox, cc.xy(4, row));
    row += 2;
    desc.setWrapStyleWord(true);
    desc.setLineWrap(true);
    pb.add(new JLabel("Description:"), cc.xy(2, row, "r,t"));
    pb.add(new JScrollPane(desc), cc.xy(4, row, "f,f"));
    row += 2;
    pb.add(new JLabel("Type:"), cc.xy(2, row, "r,c"));
    pb.add(projectType, cc.xy(4, row));
    projectType.setEditable(false);
    row += 2;
    pb.add(new JLabel("Data Source:"), cc.xy(2, row, "r,c"));
    pb.add(sourceChooser.getDataSourceComboBox(), cc.xy(4, row));
    pb.add(new JButton(showConnectionManagerAction), cc.xy(6, row));
    row += 2;
    pb.addTitle("Source Table", cc.xy(2, row));
    row += 2;
    pb.add(sourceChooser.getCatalogTerm(), cc.xy(2, row, "r,c"));
    pb.add(sourceChooser.getCatalogComboBox(), cc.xy(4, row));
    row += 2;
    pb.add(sourceChooser.getSchemaTerm(), cc.xy(2, row, "r,c"));
    pb.add(sourceChooser.getSchemaComboBox(), cc.xy(4, row));
    row += 2;
    pb.add(new JLabel("Table Name:"), cc.xy(2, row, "r,c"));
    pb.add(sourceChooser.getTableComboBox(), cc.xy(4, row));
    row += 2;
    pb.add(new JLabel("Unique Index:"), cc.xy(2, row, "r,t"));
    pb.add(indexComboBox, cc.xy(4, row, "f,f"));
    pb.add(createIndexButton, cc.xy(6, row, "f,f"));
    row += 2;
    pb.add(new JLabel("Filter:"), cc.xy(2, row, "r,t"));
    pb.add(new JScrollPane(filterPanel.getFilterTextArea()), cc.xy(4, row, "f,f"));
    pb.add(filterPanel.getEditButton(), cc.xy(6, row));
    row += 2;
    if (project.getType() != ProjectMode.CLEANSE) {
        pb.addTitle("Output Table", cc.xy(2, row));
        row += 2;
        pb.add(resultChooser.getCatalogTerm(), cc.xy(2, row, "r,c"));
        pb.add(resultChooser.getCatalogComboBox(), cc.xy(4, row));
        row += 2;
        pb.add(resultChooser.getSchemaTerm(), cc.xy(2, row, "r,c"));
        pb.add(resultChooser.getSchemaComboBox(), cc.xy(4, row));
        row += 2;
        pb.add(new JLabel("Table Name:"), cc.xy(2, row, "r,c"));
        pb.add(resultTableName, cc.xy(4, row));
        row += 2;
    }

    final List<PlFolder> folders = swingSession.getCurrentFolderParent().getChildren(PlFolder.class);
    folderComboBox.setModel(new DefaultComboBoxModel(folders.toArray()));
    folderComboBox.setRenderer(new MatchMakerObjectComboBoxCellRenderer());

    // We don't want the save button to take up the whole column width
    // so we wrap it in a JPanel with a FlowLayout. If there is a better
    // way, please fix this.
    JPanel savePanel = new JPanel(new FlowLayout());
    savePanel.add(saveProject);
    savePanel.add(cancelProject);
    pb.add(savePanel, cc.xy(4, row));

    return pb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.ProjectInfoEditor.java

License:Open Source License

/**
 * Returns a panel that displays all of the audit information that we have
 * about the parent match.//from w  ww .  j  av  a  2  s .c om
 */
private JPanel buildUI() {

    DateFormat df = new DateFormatAllowsNull();

    FormLayout layout = new FormLayout("4dlu,pref,4dlu,fill:pref:grow, 4dlu ", // columns
            "10dlu,  pref,4dlu,pref,4dlu,pref,4dlu,pref, 12dlu,   pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,pref, 12dlu,    pref,4dlu,pref,4dlu,pref,4dlu,pref,4dlu,10dlu"); // rows

    PanelBuilder pb;

    JPanel panel = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);
    pb = new PanelBuilder(layout, panel);
    CellConstraints cc = new CellConstraints();

    pb.add(new JLabel("Project ID:"), cc.xy(2, 2, "r,c"));
    pb.add(new JLabel("Folder:"), cc.xy(2, 4, "r,c"));
    pb.add(new JLabel("Description:"), cc.xy(2, 6, "r,t"));
    pb.add(new JLabel("Type:"), cc.xy(2, 8, "r,c"));

    String folderName = null;

    if (project.getParent() != null) {
        folderName = project.getParent().getName();
    }

    pb.add(new JLabel(project.getName()), cc.xy(4, 2));
    pb.add(new JLabel(folderName), cc.xy(4, 4));
    JTextArea descriptionText = new JTextArea(project.getMungeSettings().getDescription(), 3, 3);
    descriptionText.setEditable(false);
    pb.add(new JScrollPane(descriptionText), cc.xy(4, 6, "f,f"));
    pb.add(new JLabel(project.getType().toString()), cc.xy(4, 8));

    pb.add(new JLabel("Logged on As:"), cc.xy(2, 10, "r,c"));
    pb.add(new JLabel("Last Updated Date:"), cc.xy(2, 12, "r,c"));
    pb.add(new JLabel("Last Updated User:"), cc.xy(2, 14, "r,c"));
    pb.add(new JLabel("Last Run Date:"), cc.xy(2, 16, "r,c"));

    pb.add(new JLabel(project.getName()), cc.xy(4, 10));
    pb.add(new JLabel(df.format(project.getLastUpdateDate())), cc.xy(4, 12, "f,f"));
    pb.add(new JLabel(project.getLastUpdateAppUser()), cc.xy(4, 14));
    pb.add(new JLabel(df.format(project.getMungeSettings().getLastRunDate())), cc.xy(4, 16, "f,f"));

    JLabel checkout = new JLabel("Checkout Information");
    Font f = checkout.getFont();
    f = f.deriveFont(Font.BOLD, f.getSize() + 2);
    checkout.setFont(f);
    pb.add(checkout, cc.xy(2, 20, "l,c"));

    pb.add(new JLabel("Checked out date:"), cc.xy(2, 22, "r,c"));
    pb.add(new JLabel("Checked out user:"), cc.xy(2, 24, "r,c"));
    pb.add(new JLabel("Checked out osuser:"), cc.xy(2, 26, "r,c"));

    return pb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.TranslateGroupsEditor.java

License:Open Source License

private JPanel buildUI() {
    FormLayout layout = new FormLayout(
            "4dlu,46dlu,4dlu,fill:min(pref;" + 3 * (new JComboBox().getMinimumSize().width)
                    + "px):grow,4dlu,50dlu", // columns
            "10dlu,pref,4dlu,pref,4dlu,fill:40dlu:grow,4dlu,pref,10dlu"); // rows
    //      1     2   3    4     5   6     7   8     9    10   11

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

    pb = new PanelBuilder(layout, p);
    CellConstraints cc = new CellConstraints();

    int row = 2;
    pb.add(status, cc.xy(4, row));

    row += 2;
    pb.add(new JLabel("Translation Groups:"), cc.xy(4, row, "l,t"));

    row += 2;
    translateGroupsScrollPane = new JScrollPane(translateGroupsTable);
    pb.add(translateGroupsScrollPane, cc.xy(4, row, "f,f"));

    ButtonBarBuilder bbb = new ButtonBarBuilder();
    //this needs to be cleaned
    bbb.addGridded(new JButton(new AbstractAction("Get Online List") {
        public void actionPerformed(ActionEvent e) {
            int opt = JOptionPane.showConfirmDialog(swingSession.getFrame(),
                    "Download Online list?\n"
                            + "The list can be viewed at: http://spreadsheets.google.com/pub?key="
                            + TRANSLATE_WORDS_SPREADSHEET_KEY,
                    "Download Online List", JOptionPane.YES_NO_OPTION);
            if (opt == JOptionPane.YES_OPTION) {
                for (MatchMakerTranslateGroup mmtg : translateGroups) {
                    if (mmtg.getName().equals("SQLPower Translate Words")) {
                        if (JOptionPane.showConfirmDialog(swingSession.getFrame(),
                                "You already have a translation group named, SQLPower Translate Words, would you like to rebuild it?",
                                "Update Translate Words", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
                            return;
                        } else {
                            translateGroupsTableModel.removeGroup(translateGroups.indexOf(mmtg));
                            break;
                        }
                    }
                }
                try {
                    MatchMakerTranslateGroup mmtg = getOnlineTranslateGroup();
                    swingSession.setCurrentEditorComponent(new TranslateWordsEditor(swingSession, mmtg));
                } catch (Exception ex) {
                    SPSUtils.showExceptionDialogNoReport(swingSession.getFrame(),
                            "Could not generate online list", ex);
                }
            }
        }
    }));
    //new actions for delete and save should be extracted and be put into its own file.
    bbb.addGridded(new JButton(new NewTranslateGroupAction(swingSession)));
    bbb.addRelatedGap();
    bbb.addGridded(new JButton(deleteGroupAction));

    row += 2;
    pb.add(bbb.getPanel(), cc.xy(4, row, "c,c"));

    return pb.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.TranslateWordsEditor.java

License:Open Source License

private void buildUI() {

    //This created the layout for the internal panel at the top wit
    //the lables and the text fields

    String txt = "fill:min(pref;" + (new JTextField().getMinimumSize().width) + "px):grow";
    FormLayout layout = new FormLayout(
            "4dlu,pref,4dlu," + txt + ",4dlu,pref,4dlu," + txt + ",4dlu,pref,4dlu,pref,4dlu", // columns
            "4dlu,pref,4dlu,pref,4dlu,pref,4dlu"); // rows
    //    1     2    3    4    5    6    7 

    PanelBuilder internalPB;// ww w .ja v a2  s. c  o  m
    JPanel internalP = logger.isDebugEnabled() ? new FormDebugPanel(layout) : new JPanel(layout);

    internalPB = new PanelBuilder(layout, internalP);
    CellConstraints cc = new CellConstraints();

    int row = 2;
    internalPB.add(status, cc.xy(4, row));

    row += 2;
    internalPB.add(new JLabel("Group Name:"), cc.xy(2, row, "r,t"));
    setGroupName();
    internalPB.add(groupName, cc.xy(4, row, "f,f"));

    row += 2;
    internalPB.add(new JLabel("From:"), cc.xy(2, row, "r,t"));
    internalPB.add(from, cc.xy(4, row, "f,f"));

    internalPB.add(new JLabel("To:"), cc.xy(6, row, "r,t"));
    internalPB.add(to, cc.xy(8, row, "f,f"));
    internalPB.add(new JButton(createWordsAction), cc.xy(10, row, "l,t"));

    //The layout for the external frame that houses the table and the button bars
    FormLayout bbLayout = new FormLayout(
            "4dlu,pref,50dlu,fill:min(pref;" + (new JComboBox().getMinimumSize().width)
                    + "px):grow, 4dlu,pref,4dlu", // columns
            "4dlu,pref,4dlu,fill:40dlu:grow,4dlu,pref,4dlu,pref,4dlu"); // rows
    //    1     2    3    4    5    6    7     8   9   

    PanelBuilder externalPB;
    JPanel externalP = logger.isDebugEnabled() ? new FormDebugPanel(bbLayout) : new JPanel(bbLayout);

    externalPB = new PanelBuilder(bbLayout, externalP);
    CellConstraints bbcc = new CellConstraints();

    row = 4;
    translateWordsScrollPane = new JScrollPane(translateWordsTable);
    externalPB.add(translateWordsScrollPane, bbcc.xy(4, row, "f,f"));

    ButtonStackBuilder bsb = new ButtonStackBuilder();
    bsb.addGridded(new JButton(moveTopAction));
    bsb.addRelatedGap();
    bsb.addGridded(new JButton(moveUpAction));
    bsb.addRelatedGap();
    bsb.addGridded(new JButton(moveDownAction));
    bsb.addRelatedGap();
    bsb.addGridded(new JButton(moveBottomAction));
    externalPB.add(bsb.getPanel(), bbcc.xy(6, row, "c,c"));

    row += 2;
    ButtonBarBuilder bbb = new ButtonBarBuilder();
    //new actions for delete and save should be extracted and be put into its own file.
    bbb.addGridded(new JButton(deleteWordsAction));
    bbb.addRelatedGap();
    bbb.addGridded(new JButton(saveGroupAction));

    externalPB.add(bbb.getPanel(), bbcc.xy(4, row, "c,c"));

    externalPB.add(internalPB.getPanel(), cc.xyw(2, 2, 4, "f,f"));

    MMODuplicateValidator mmoValidator = new MMODuplicateValidator(
            swingSession.getRootNode().getTranslateGroupParent(), null, "translate group name", 35, mmo);
    handler.addValidateObject(groupName, mmoValidator);
    TranslateWordValidator wordValidator = new TranslateWordValidator(translateWordsTable);
    handler.addValidateObject(translateWordsTable, wordValidator);

    panel = externalPB.getPanel();
}

From source file:ca.sqlpower.matchmaker.swingui.UserPreferencesEditor.java

License:Open Source License

/**
 * Subroutine of the constructor that puts together the panel, creating
 * all the GUI components and initializing them to the current values
 * in the session context./*from  w w  w  . j av a  2  s  .c  o m*/
 */
private JPanel buildUI() {
    FormLayout layout = new FormLayout("pref,4dlu,max(300;min),4dlu,min",
            "pref,4dlu,pref,4dlu,pref,12dlu,min,4dlu,pref,2dlu,max(40;min)");
    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder fb = new DefaultFormBuilder(layout);
    fb.setDefaultDialogBorder();

    validatePathExInfo.setOpaque(false);
    validatePathExInfo.setEditable(false);
    validatePathExInfo.setLineWrap(true);
    validatePathExInfo.setWrapStyleWord(true);
    validatePathExInfo.setFont(validatePathResult.getFont());

    addressDataPath.setDocument(addressDataPathDoc);
    addressDataPathDoc.addDocumentListener(new DocumentListener() {

        public void changedUpdate(DocumentEvent e) {

        }

        public void insertUpdate(DocumentEvent e) {
            validatePathResult.setText("");
            validatePathExInfo.setText("");
        }

        public void removeUpdate(DocumentEvent e) {
            validatePathResult.setText("");
            validatePathExInfo.setText("");
        }

    });
    try {
        addressDataPathDoc.remove(0, addressDataPathDoc.getLength());
        addressDataPathDoc.insertString(0, context.getAddressCorrectionDataPath(), null);
    } catch (BadLocationException e2) {
        SPSUtils.showExceptionDialogNoReport(getPanel(), "", e2);
    }

    JButton selectPath = new JButton(new AbstractAction("...") {

        public void actionPerformed(ActionEvent e) {
            addressDataPathChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            int selected = addressDataPathChooser.showOpenDialog(getPanel());
            if (selected == JFileChooser.APPROVE_OPTION) {
                try {
                    addressDataPathDoc.remove(0, addressDataPathDoc.getLength());
                    addressDataPathDoc.insertString(0,
                            addressDataPathChooser.getSelectedFile().getAbsolutePath(), null);
                } catch (BadLocationException e1) {
                    SPSUtils.showExceptionDialogNoReport(getPanel(), "", e1);
                }
            }
        }
    });

    JButton validateAddressDataPath = new JButton(new AbstractAction("Test Path") {

        public void actionPerformed(ActionEvent e) {
            try {
                testPath = new AddressDatabase(new File(addressDataPath.getText()));
                validatePathResult.setText("Address Data Path is valid");
            } catch (DatabaseException e1) {
                validatePathResult.setText("Invalid Address Data Path");
                validatePathExInfo.setText(e1.toString());
                logger.error("Invalid Address Data Path", e1);
            } catch (Exception e2) {
                validatePathResult.setText("Invalid Address Data Path");
                validatePathExInfo.setText(e2.toString());
                logger.error("Invalid Address Data Path", e2);
            } finally {
                if (testPath != null) {
                    testPath.close();
                }
            }
        }

    });

    fb.addLabel("Address Correction Data Path:", cc.xy(1, 7));
    fb.add(addressDataPath, cc.xy(3, 7));
    fb.add(selectPath, cc.xy(5, 7));
    fb.add(validateAddressDataPath, cc.xy(1, 9));
    fb.add(validatePathResult, cc.xy(3, 9));
    fb.add(validatePathExInfo, cc.xy(3, 11));

    return fb.getPanel();
}