Example usage for com.jgoodies.forms.builder DefaultFormBuilder append

List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder append

Introduction

In this page you can find the example usage for com.jgoodies.forms.builder DefaultFormBuilder append.

Prototype

public JLabel append(String textWithMnemonic) 

Source Link

Document

Adds a text label to the panel and proceeds to the next column.

Usage

From source file:net.sf.jabref.TablePrefsTab.java

License:Open Source License

/**
 * Customization of external program paths.
 * //from w  w w  . j av a 2s  . c o m
 * @param prefs
 *            a <code>JabRefPreferences</code> value
 */
public TablePrefsTab(JabRefPreferences prefs, JabRefFrame frame) {
    _prefs = prefs;
    setLayout(new BorderLayout());

    /**
     * Added Bibtexkey to combobox.
     * 
     * [ 1540646 ] default sort order: bibtexkey
     * 
     * http://sourceforge.net/tracker/index.php?func=detail&aid=1540646&group_id=92314&atid=600306
     */
    Vector<String> v = new Vector<String>(Arrays.asList(BibtexFields.getAllFieldNames()));
    v.add(BibtexFields.KEY_FIELD);
    Collections.sort(v);
    String[] allPlusKey = v.toArray(new String[v.size()]);
    priSort = new JComboBox(allPlusKey);
    secSort = new JComboBox(allPlusKey);
    terSort = new JComboBox(allPlusKey);

    autoResizeMode = new JCheckBox(Globals.lang("Fit table horizontally on screen"));

    namesAsIs = new JRadioButton(Globals.lang("Show names unchanged"));
    namesFf = new JRadioButton(Globals.lang("Show 'Firstname Lastname'"));
    namesFl = new JRadioButton(Globals.lang("Show 'Lastname, Firstname'"));
    namesNatbib = new JRadioButton(Globals.lang("Natbib style"));
    noAbbrNames = new JRadioButton(Globals.lang("Do not abbreviate names"));
    abbrNames = new JRadioButton(Globals.lang("Abbreviate names"));
    lastNamesOnly = new JRadioButton(Globals.lang("Show last names only"));

    floatMarked = new JCheckBox(Globals.lang("Float marked entries"));

    priField = new JTextField(10);
    secField = new JTextField(10);
    terField = new JTextField(10);

    numericFields = new JTextField(30);

    priSort.insertItemAt(Globals.lang("<select>"), 0);
    secSort.insertItemAt(Globals.lang("<select>"), 0);
    terSort.insertItemAt(Globals.lang("<select>"), 0);

    priSort.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (priSort.getSelectedIndex() > 0) {
                priField.setText(priSort.getSelectedItem().toString());
                priSort.setSelectedIndex(0);
            }
        }
    });
    secSort.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (secSort.getSelectedIndex() > 0) {
                secField.setText(secSort.getSelectedItem().toString());
                secSort.setSelectedIndex(0);
            }
        }
    });
    terSort.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (terSort.getSelectedIndex() > 0) {
                terField.setText(terSort.getSelectedItem().toString());
                terSort.setSelectedIndex(0);
            }
        }
    });

    ButtonGroup bg = new ButtonGroup();
    bg.add(namesAsIs);
    bg.add(namesNatbib);
    bg.add(namesFf);
    bg.add(namesFl);
    ButtonGroup bg2 = new ButtonGroup();
    bg2.add(lastNamesOnly);
    bg2.add(abbrNames);
    bg2.add(noAbbrNames);
    priDesc = new JCheckBox(Globals.lang("Descending"));
    secDesc = new JCheckBox(Globals.lang("Descending"));
    terDesc = new JCheckBox(Globals.lang("Descending"));

    FormLayout layout = new FormLayout(
            "1dlu, 8dlu, left:pref, 4dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, fill:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    JLabel lab;
    JPanel pan = new JPanel();

    builder.appendSeparator(Globals.lang("Format of author and editor names"));
    DefaultFormBuilder nameBuilder = new DefaultFormBuilder(new FormLayout("left:pref, 8dlu, left:pref", ""));

    nameBuilder.append(namesAsIs);
    nameBuilder.append(noAbbrNames);
    nameBuilder.nextLine();
    nameBuilder.append(namesFf);
    nameBuilder.append(abbrNames);
    nameBuilder.nextLine();
    nameBuilder.append(namesFl);
    nameBuilder.append(lastNamesOnly);
    nameBuilder.nextLine();
    nameBuilder.append(namesNatbib);
    builder.append(pan);
    builder.append(nameBuilder.getPanel());
    builder.nextLine();
    // builder.append(pan); builder.append(noAbbrNames); builder.nextLine();
    // builder.append(pan); builder.append(abbrNames); builder.nextLine();
    // builder.append(pan); builder.append(lastNamesOnly);
    // builder.nextLine();

    builder.appendSeparator(Globals.lang("Default sort criteria"));
    // Create a new panel with its own FormLayout for these items:
    FormLayout layout2 = new FormLayout("left:pref, 8dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, left:pref", "");
    DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2);
    lab = new JLabel(Globals.lang("Primary sort criterion"));
    builder2.append(lab);
    builder2.append(priSort);
    builder2.append(priField);
    builder2.append(priDesc);
    builder2.nextLine();
    lab = new JLabel(Globals.lang("Secondary sort criterion"));
    builder2.append(lab);
    builder2.append(secSort);
    builder2.append(secField);
    builder2.append(secDesc);
    builder2.nextLine();
    lab = new JLabel(Globals.lang("Tertiary sort criterion"));
    builder2.append(lab);
    builder2.append(terSort);
    builder2.append(terField);
    builder2.append(terDesc);
    builder.nextLine();
    builder.append(pan);
    builder.append(builder2.getPanel());
    builder.nextLine();
    builder.append(pan);
    builder.append(floatMarked);
    builder.nextLine();
    builder.append(pan);
    builder2 = new DefaultFormBuilder(new FormLayout("left:pref, 8dlu, fill:pref", ""));
    builder2.append(Globals.lang("Sort the following fields as numeric fields") + ':');
    builder2.append(numericFields);
    builder.append(builder2.getPanel(), 5);
    builder.nextLine();
    builder.appendSeparator(Globals.lang("General"));
    builder.append(pan);
    builder.append(autoResizeMode);
    builder.nextLine();

    pan = builder.getPanel();
    pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    add(pan, BorderLayout.CENTER);

    namesNatbib.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent changeEvent) {
            abbrNames.setEnabled(!namesNatbib.isSelected());
            lastNamesOnly.setEnabled(!namesNatbib.isSelected());
            noAbbrNames.setEnabled(!namesNatbib.isSelected());
        }
    });
}

From source file:net.sf.jabref.util.MassSetFieldAction.java

License:Open Source License

private void createDialog() {
    diag = new JDialog(frame, Globals.lang("Set/clear/rename fields"), true);

    field = new JTextField();
    text = new JTextField();
    text.setEnabled(false);//from  ww w  . j  av a 2s. c  o  m
    renameTo = new JTextField();
    renameTo.setEnabled(false);

    JButton ok = new JButton(Globals.lang("Ok"));
    JButton cancel = new JButton(Globals.lang("Cancel"));

    all = new JRadioButton(Globals.lang("All entries"));
    selected = new JRadioButton(Globals.lang("Selected entries"));
    clear = new JRadioButton(Globals.lang("Clear fields"));
    set = new JRadioButton(Globals.lang("Set fields"));
    rename = new JRadioButton(Globals.lang("Rename field to:"));
    rename.setToolTipText(Globals.lang("Move contents of a field into a field with a different name"));
    set.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent e) {
            // Entering a text is only relevant if we are setting, not clearing:
            text.setEnabled(set.isSelected());
        }
    });
    clear.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent event) {
            // Overwrite protection makes no sense if we are clearing the field:
            overwrite.setEnabled(!clear.isSelected());
        }
    });
    rename.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent e) {
            // Entering a text is only relevant if we are renaming
            renameTo.setEnabled(rename.isSelected());
        }
    });
    overwrite = new JCheckBox(Globals.lang("Overwrite existing field values"), true);
    ButtonGroup bg = new ButtonGroup();
    bg.add(all);
    bg.add(selected);
    bg = new ButtonGroup();
    bg.add(clear);
    bg.add(set);
    bg.add(rename);
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:100dlu", ""));
    builder.appendSeparator(Globals.lang("Field name"));
    builder.append(Globals.lang("Field name"));
    builder.append(field);
    builder.nextLine();
    builder.appendSeparator(Globals.lang("Include entries"));
    builder.append(all, 3);
    builder.nextLine();
    builder.append(selected, 3);
    builder.nextLine();
    builder.appendSeparator(Globals.lang("New field value"));
    builder.append(set);
    builder.append(text);
    builder.nextLine();
    builder.append(clear);
    builder.nextLine();
    builder.append(rename);
    builder.append(renameTo);
    builder.nextLine();
    builder.append(overwrite, 3);

    ButtonBarBuilder bb = new ButtonBarBuilder();
    bb.addGlue();
    bb.addButton(ok);
    bb.addButton(cancel);
    bb.addGlue();
    builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    bb.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    diag.getContentPane().add(builder.getPanel(), BorderLayout.CENTER);
    diag.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);
    diag.pack();

    ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // Check if the user tries to rename multiple fields:
            if (rename.isSelected()) {
                String[] fields = getFieldNames(field.getText());
                if (fields.length > 1) {
                    JOptionPane.showMessageDialog(diag, Globals.lang("You can only rename one field at a time"),
                            "", JOptionPane.ERROR_MESSAGE);
                    return; // Do not close the dialog.
                }
            }
            cancelled = false;
            diag.dispose();
        }
    });

    AbstractAction cancelAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            cancelled = true;
            diag.dispose();
        }
    };
    cancel.addActionListener(cancelAction);

    // Key bindings:
    ActionMap am = builder.getPanel().getActionMap();
    InputMap im = builder.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    im.put(Globals.prefs.getKey("Close dialog"), "close");
    am.put("close", cancelAction);
}

From source file:net.sf.jabref.util.Util.java

License:Open Source License

/**
 * This method can be used to display a "rich" error dialog which offers the
 * entire stack trace for an exception./*w w  w  .j  a  v  a 2 s.c  om*/
 * 
 * @param parent
 * @param e
 */
public static void showQuickErrorDialog(JFrame parent, String title, Exception e) {
    // create and configure a text area - fill it with exception text.
    final JPanel pan = new JPanel(), details = new JPanel();
    final CardLayout crd = new CardLayout();
    pan.setLayout(crd);
    final JTextArea textArea = new JTextArea();
    textArea.setFont(new Font("Sans-Serif", Font.PLAIN, 10));
    textArea.setEditable(false);
    StringWriter writer = new StringWriter();
    e.printStackTrace(new PrintWriter(writer));
    textArea.setText(writer.toString());
    JLabel lab = new JLabel(e.getMessage());
    JButton flip = new JButton(Globals.lang("Details"));

    FormLayout layout = new FormLayout("left:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.append(lab);
    builder.nextLine();
    builder.append(Box.createVerticalGlue());
    builder.nextLine();
    builder.append(flip);
    final JPanel simple = builder.getPanel();

    // stuff it in a scrollpane with a controlled size.
    JScrollPane scrollPane = new JScrollPane(textArea);
    scrollPane.setPreferredSize(new Dimension(350, 150));
    details.setLayout(new BorderLayout());
    details.add(scrollPane, BorderLayout.CENTER);

    flip.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            crd.show(pan, "details");
        }
    });
    pan.add(simple, "simple");
    pan.add(details, "details");
    // pass the scrollpane to the joptionpane.
    JOptionPane.showMessageDialog(parent, pan, title, JOptionPane.ERROR_MESSAGE);
}

From source file:net.sf.jabref.Util.java

License:Open Source License

/**
 * This method can be used to display a "rich" error dialog which offers the
 * entire stack trace for an exception./*from  w w  w  .j av a2s .c  om*/
 * 
 * @param parent
 * @param e
 */
public static void showQuickErrorDialog(JFrame parent, String title, Exception e) {
    // create and configure a text area - fill it with exception text.
    final JPanel pan = new JPanel(), details = new JPanel();
    final CardLayout crd = new CardLayout();
    pan.setLayout(crd);
    final JTextArea textArea = new JTextArea();
    textArea.setFont(new Font("Sans-Serif", Font.PLAIN, 10));
    textArea.setEditable(false);
    StringWriter writer = new StringWriter();
    e.printStackTrace(new PrintWriter(writer));
    textArea.setText(writer.toString());
    JLabel lab = new JLabel(e.getMessage());
    JButton flip = new JButton(Globals.lang("Details"));

    FormLayout layout = new FormLayout("left:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.append(lab);
    builder.nextLine();
    builder.append(Box.createVerticalGlue());
    builder.nextLine();
    builder.append(flip);
    final JPanel simple = builder.getPanel();

    // stuff it in a scrollpane with a controlled size.
    JScrollPane scrollPane = new JScrollPane(textArea);
    scrollPane.setPreferredSize(new Dimension(350, 150));
    details.setLayout(new BorderLayout());
    details.add(scrollPane, BorderLayout.CENTER);

    flip.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            crd.show(pan, "details");
        }
    });
    pan.add(simple, "simple");
    pan.add(details, "details");
    // pass the scrollpane to the joptionpane.
    JOptionPane.showMessageDialog(parent, pan, title, JOptionPane.ERROR_MESSAGE);
}

From source file:net.sf.jabref.wizard.auximport.gui.FromAuxDialog.java

License:Open Source License

private void initPanels(JabRefFrame parent) {
    // collect the names of all open databases
    int len = parentTabbedPane.getTabCount();
    int toSelect = -1;
    for (int i = 0; i < len; i++) {
        dbChooser.addItem(parentTabbedPane.getTitleAt(i));
        if (parent.baseAt(i) == parent.basePanel()) {
            toSelect = i;//www  .ja  v  a  2s  .co  m
        }
    }
    if (toSelect >= 0) {
        dbChooser.setSelectedIndex(toSelect);
    }

    auxFileField = new JTextField("", 25);
    JButton browseAuxFileButton = new JButton(Globals.lang("Browse"));
    browseAuxFileButton.addActionListener(new BrowseAction(auxFileField, parent));
    notFoundList = new JList();
    JScrollPane listScrollPane = new JScrollPane(notFoundList);
    //listScrollPane.setPreferredSize(new Dimension(250, 120));
    statusInfos = new JTextArea("", 5, 20);
    JScrollPane statusScrollPane = new JScrollPane(statusInfos);
    //statusScrollPane.setPreferredSize(new Dimension(250, 120));
    //statusInfos.setBorder(BorderFactory.createEtchedBorder());
    statusInfos.setEditable(false);

    DefaultFormBuilder b = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, fill:pref:grow, 4dlu, left:pref", ""), buttons);
    b.appendSeparator(Globals.lang("Options"));
    b.append(Globals.lang("Reference database") + ":");
    b.append(dbChooser, 3);
    b.nextLine();
    b.append(Globals.lang("LaTeX AUX file") + ":");
    b.append(auxFileField);
    b.append(browseAuxFileButton);
    b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    b = new DefaultFormBuilder(
            new FormLayout("fill:pref:grow, 4dlu, fill:pref:grow", "pref, pref, fill:pref:grow"), statusPanel);
    b.appendSeparator(Globals.lang("Result"));
    b.append(Globals.lang("Unknown bibtex entries") + ":");
    b.append(Globals.lang("Messages") + ":");
    b.nextLine();
    b.append(listScrollPane);
    b.append(statusScrollPane);
    b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
}

From source file:net.sf.jabref.XmpPrefsTab.java

License:Open Source License

/**
 * Customization of external program paths.
 *//*from   w  ww . j  a  v a  2s  .com*/
public XmpPrefsTab() {
    setLayout(new BorderLayout());

    TableModel tm = new AbstractTableModel() {

        @Override
        public int getRowCount() {
            return rowCount;
        }

        @Override
        public int getColumnCount() {
            return 1;
        }

        @Override
        public Object getValueAt(int row, int column) {
            if (row >= tableRows.size()) {
                return "";
            }
            Object rowContent = tableRows.elementAt(row);
            if (rowContent == null) {
                return "";
            }
            return rowContent;
        }

        @Override
        public String getColumnName(int col) {
            return Globals.lang("Field to filter");
        }

        @Override
        public Class<?> getColumnClass(int column) {
            return String.class;
        }

        @Override
        public boolean isCellEditable(int row, int col) {
            return true;
        }

        @Override
        public void setValueAt(Object value, int row, int col) {
            tableChanged = true;

            if (tableRows.size() <= row) {
                tableRows.setSize(row + 1);
            }

            tableRows.setElementAt(value, row);
        }

    };

    table = new JTable(tm);
    TableColumnModel cm = table.getColumnModel();
    cm.getColumn(0).setPreferredWidth(140);

    FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    JPanel pan = new JPanel();

    JPanel tablePanel = new JPanel();
    tablePanel.setLayout(new BorderLayout());
    JScrollPane scrollPane = new JScrollPane(table, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    table.setPreferredScrollableViewportSize(new Dimension(250, 200));
    scrollPane.setMinimumSize(new Dimension(250, 300));
    tablePanel.add(scrollPane, BorderLayout.CENTER);

    JToolBar toolbar = new JToolBar(SwingConstants.VERTICAL);
    toolbar.setFloatable(false);
    toolbar.setBorder(null);
    toolbar.add(new AddRowAction());
    toolbar.add(new DeleteRowAction());

    tablePanel.add(toolbar, BorderLayout.EAST);

    // Build Prefs Tabs
    builder.appendSeparator(Globals.lang("XMP Export Privacy Settings"));
    builder.nextLine();

    builder.append(pan);
    builder.append(privacyFilterCheckBox);
    builder.nextLine();

    builder.append(pan);
    builder.append(tablePanel);
    builder.nextLine();

    pan = builder.getPanel();
    pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    add(pan, BorderLayout.CENTER);
}

From source file:net.sf.jhylafax.addressbook.AddressBook.java

License:Open Source License

private void initializeContent() {
    horizontalSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    horizontalSplitPane.setBorder(GUIHelper.createEmptyBorder(5));

    rootNode = new DefaultMutableTreeNode();
    addressBookTreeModel = new DefaultTreeModel(rootNode);
    addressBookTree = new JTree(addressBookTreeModel);
    addressBookTree.setRootVisible(false);
    addressBookTree.setCellRenderer(new ContactCollectionCellRenderer());
    horizontalSplitPane.add(new JScrollPane(addressBookTree));

    JPanel contactPanel = new JPanel();
    contactPanel.setLayout(new BorderLayout(0, 10));
    horizontalSplitPane.add(contactPanel);

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("min, 3dlu, min, 3dlu, pref:grow, 3dlu, min", ""));
    contactPanel.add(builder.getPanel(), BorderLayout.NORTH);

    searchTextField = new JTextField(10);
    EraseTextFieldAction eraseAction = new EraseTextFieldAction(searchTextField) {
        public void actionPerformed(ActionEvent event) {
            super.actionPerformed(event);
            filterAction.actionPerformed(event);
        };//from   w  w w .j  a  va 2s  .  c om
    };
    builder.append(new TabTitleButton(eraseAction));
    filterLabel = new JLabel();
    builder.append(filterLabel);
    builder.append(searchTextField);
    GUIHelper.bindEnterKey(searchTextField, filterAction);

    builder.append(Builder.createButton(filterAction));

    JPopupMenu tablePopupMenu = new JPopupMenu();
    tablePopupMenu.add(Builder.createMenuItem(newAction));
    tablePopupMenu.addSeparator();
    tablePopupMenu.add(Builder.createMenuItem(editAction));
    tablePopupMenu.addSeparator();
    tablePopupMenu.add(Builder.createMenuItem(deleteAction));

    contactTableModel = new AddressTableModel();
    TableSorter sorter = new TableSorter(contactTableModel);
    contactTable = new ColoredTable(sorter);
    contactTableLayoutManager = new TableLayoutManager(contactTable);
    contactTableLayoutManager.addColumnProperties("displayName", "", 180, true);
    contactTableLayoutManager.addColumnProperties("company", "", 80, true);
    contactTableLayoutManager.addColumnProperties("faxNumber", "", 60, true);
    contactTableLayoutManager.initializeTableLayout();
    contactPanel.add(new JScrollPane(contactTable), BorderLayout.CENTER);

    contactTable.setShowVerticalLines(true);
    contactTable.setShowHorizontalLines(false);
    contactTable.setAutoCreateColumnsFromModel(true);
    contactTable.setIntercellSpacing(new java.awt.Dimension(2, 1));
    contactTable.setBounds(0, 0, 50, 50);
    contactTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    contactTable.getSelectionModel().addListSelectionListener(this);
    contactTable.addMouseListener(new PopupListener(tablePopupMenu));
    contactTable.addMouseListener(new DoubleClickListener(new TableDoubleClickAction()));
    contactTable.setTransferHandler(new ContactTransferHandler());
    contactTable.setDragEnabled(true);

    contactTable.setDefaultRenderer(String.class, new StringCellRenderer());

    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(horizontalSplitPane, BorderLayout.CENTER);
}

From source file:net.sourceforge.marathon.display.SearchDialog.java

License:Open Source License

private Component buildDirectionOrScopePanel(String text, JRadioButton fd, JRadioButton bd) {
    FormLayout layout = new FormLayout("pref:grow");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();/*from  w  w w . j a  v  a 2 s.c  om*/
    builder.appendSeparator(text);
    builder.append(fd);
    builder.append(bd);
    return builder.getPanel();
}

From source file:org.abstractform.swing.SwingFormToolkit.java

License:Apache License

/**
 * @param builder//from   w w  w  .j  av a 2s  . com
 * @param field
 * @param extraObjects
 * @return
 */
private JComponent internalBuildField(DefaultFormBuilder builder, Field field,
        Map<String, Object> extraObjects) {
    JComponent ret = null;
    if (field.getType().equals(Field.TYPE_BOOL)) {
        builder.nextColumn(2);
        final JCheckBox checkBox = new JCheckBox(field.getName());
        checkBox.putClientProperty(SwingFormInstanceImpl.ACCESSOR_OBJECT, new SwingAccessor() {

            @Override
            public void setValue(JComponent component, Object value) {
                ((JCheckBox) component).setSelected((Boolean) value);
            }

            @Override
            public Object getValue(JComponent component) {
                return ((JCheckBox) component).isSelected();
            }
        });
        ItemListenerAdapter adapter = new ItemListenerAdapter() {

            @Override
            protected Object getValue() {
                return checkBox.isSelected();
            }
        };
        checkBox.putClientProperty(SwingFormInstanceImpl.ADAPTER_OBJECT, adapter);
        checkBox.addItemListener(adapter);
        builder.append(checkBox);
        ret = checkBox;
    } else if (field.getType().equals(Field.TYPE_DATETIME)) {
        final JDatePickerImpl dtPicker = (JDatePickerImpl) JDateComponentFactory.createJDatePicker();
        dtPicker.putClientProperty(SwingFormInstanceImpl.ACCESSOR_OBJECT, new SwingAccessor() {

            @Override
            public void setValue(JComponent component, Object value) {
                ((DateModel<Calendar>) ((JDatePicker) component).getModel()).setValue((Calendar) value);
            }

            @Override
            public Object getValue(JComponent component) {
                return ((DateModel<Calendar>) ((JDatePicker) component).getModel()).getValue();
            }
        });
        builder.append(field.getName(), dtPicker);
        ChangeListenerAdapter adapter = new ChangeListenerAdapter() {

            @Override
            protected Object getValue() {
                return dtPicker.getModel().getValue();
            }
        };
        dtPicker.putClientProperty(SwingFormInstanceImpl.ADAPTER_OBJECT, adapter);
        dtPicker.getModel().addChangeListener(adapter);
        ret = dtPicker;
    } else if (field.getType().equals(Field.TYPE_TEXT) || field.getType().equals(Field.TYPE_NUMERIC)
            || field.getType().equals(Field.TYPE_PASSWORD)) {
        final JTextField textField;
        if (field.getType().equals(Field.TYPE_PASSWORD)) {
            textField = new JPasswordField();
        } else {
            textField = new JTextField();
        }
        //textField.setColumns(field.getDisplayWidth());
        if (field.getMaxLength() != 0) {
            // TODO
        }
        textField.setToolTipText(field.getDescription());
        textField.setEditable(field.isReadOnly());

        DocumentListenerAdapter adapter = new DocumentListenerAdapter() {

            @Override
            protected Object getValue() {
                return textField.getText();
            }

            @Override
            protected Object getSource() {
                return textField;
            }
        };
        textField.putClientProperty(SwingFormInstanceImpl.ADAPTER_OBJECT, adapter);
        textField.getDocument().addDocumentListener(adapter);
        builder.append(field.getName(), textField);
        ret = textField;
    } else if (field.getType().equals(SelectorConstants.TYPE_SELECTOR)) {
        builder.nextColumn(4);
    } else if (field.getType().equals(TableConstants.TYPE_TABLE)) {
        builder.nextColumn(4);
    }
    return ret;
}

From source file:org.apache.cayenne.modeler.dialog.datadomain.JGroupsConfigPanel.java

License:Apache License

protected void initView() {
    setLayout(new BorderLayout());

    useDefaultConfig = new JRadioButton(CacheSyncConfigController.JGROUPS_DEFAULT_CONTROL);
    useDefaultConfig.setSelected(true);/* w w  w . j a  v  a2  s  . c om*/
    useConfigFile = new JRadioButton(CacheSyncConfigController.JGROUPS_URL_CONTROL);

    ButtonGroup radioGroup = new ButtonGroup();
    radioGroup.add(useConfigFile);
    radioGroup.add(useDefaultConfig);

    multicastAddress = new JTextField(20);
    multicastPort = new JTextField(5);
    configURL = new JTextField(20);

    // type form
    FormLayout layout = new FormLayout("right:150, 3dlu, left:200", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setDefaultDialogBorder();
    builder.appendSeparator("JavaGroups Settings");

    builder.append(useDefaultConfig);
    builder.nextLine();

    // "1" at the end would enforce spanning the text field to
    // the full width
    builder.append("Multicast Address:", multicastAddress, 1);
    builder.append("Multicast Port:", multicastPort);

    builder.nextLine();
    builder.append(useConfigFile);
    builder.nextLine();
    builder.append("JGroups Config File:", configURL, 1);

    add(builder.getPanel(), BorderLayout.NORTH);
}