Example usage for com.jgoodies.forms.builder ButtonStackBuilder addButton

List of usage examples for com.jgoodies.forms.builder ButtonStackBuilder addButton

Introduction

In this page you can find the example usage for com.jgoodies.forms.builder ButtonStackBuilder addButton.

Prototype

@Override
    public ButtonStackBuilder addButton(Action... actions) 

Source Link

Usage

From source file:net.sf.jabref.external.ExternalFileTypeEditor.java

License:Open Source License

private void init() {

    ok.addActionListener(new ActionListener() {

        @Override/*from   w  ww. j  a v a  2  s. c o  m*/
        public void actionPerformed(ActionEvent e) {
            storeSettings();
            dispose();
        }
    });
    AbstractAction cancelAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dispose();
        }
    };
    cancel.addActionListener(cancelAction);
    // The toDefaults resets the entire list to its default values.
    toDefaults.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            /*int reply = JOptionPane.showConfirmDialog(ExternalFileTypeEditor.this,
                Globals.lang("All custom file types will be lost. Proceed?"),
                Globals.lang("Reset file type definitons"), JOptionPane.YES_NO_OPTION,
                JOptionPane.QUESTION_MESSAGE);*/
            //if (reply == JOptionPane.YES_OPTION) {
            java.util.List<ExternalFileType> list = Globals.prefs.getDefaultExternalFileTypes();
            fileTypes.clear();
            fileTypes.addAll(list);
            Collections.sort(fileTypes);
            //Globals.prefs.resetExternalFileTypesToDefault();
            //setValues();
            tableModel.fireTableDataChanged();
            //}
        }
    });

    add.addActionListener(new AddListener());
    remove.addActionListener(new RemoveListener());
    edit.addActionListener(editListener);
    fileTypes = new ArrayList<ExternalFileType>();
    setValues();

    tableModel = new FileTypeTableModel();
    table = new JTable(tableModel);
    table.setDefaultRenderer(ImageIcon.class, new IconRenderer());
    table.addMouseListener(new TableClickListener());

    table.getColumnModel().getColumn(0).setMaxWidth(24);
    table.getColumnModel().getColumn(0).setMinWidth(24);
    table.getColumnModel().getColumn(1).setMinWidth(170);
    table.getColumnModel().getColumn(2).setMinWidth(60);
    table.getColumnModel().getColumn(3).setMinWidth(100);
    table.getColumnModel().getColumn(0).setResizable(false);

    JScrollPane sp = new JScrollPane(table);

    JPanel upper = new JPanel();
    upper.setLayout(new BorderLayout());
    upper.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    upper.add(sp, BorderLayout.CENTER);
    getContentPane().add(upper, BorderLayout.CENTER);

    ButtonStackBuilder bs = new ButtonStackBuilder();
    bs.addButton(add);
    bs.addButton(remove);
    bs.addButton(edit);
    bs.addRelatedGap();
    bs.addButton(toDefaults);
    upper.add(bs.getPanel(), BorderLayout.EAST);

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

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

    if (frame != null) {
        setLocationRelativeTo(frame);
    } else {
        setLocationRelativeTo(dialog);
    }
}

From source file:net.sf.jabref.gui.journals.ManageJournalsPanel.java

License:Open Source License

public ManageJournalsPanel(final JabRefFrame frame) {
    this.frame = frame;

    personalFile.setEditable(false);/* www . j  a v a 2s .co m*/

    ButtonGroup group = new ButtonGroup();
    group.add(newFile);
    group.add(oldFile);
    addExtPan.setLayout(new BorderLayout());
    JButton addExt = new JButton(IconTheme.JabRefIcon.ADD.getIcon());
    addExtPan.add(addExt, BorderLayout.EAST);
    addExtPan.setToolTipText(Localization.lang("Add"));
    FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:200dlu:grow, 4dlu, fill:pref",
            "pref, pref, pref, 20dlu, 20dlu, fill:200dlu, 4dlu, pref");
    FormBuilder builder = FormBuilder.create().layout(layout);

    builder.addSeparator(Localization.lang("Built-in journal list")).xyw(2, 1, 6);
    JLabel description = new JLabel(
            "<HTML>" + Localization.lang("JabRef includes a built-in list of journal abbreviations.") + "<br>"
                    + Localization.lang(
                            "You can add additional journal names by setting up a personal journal list,<br>as "
                                    + "well as linking to external journal lists.")
                    + "</HTML>");
    description.setBorder(BorderFactory.createEmptyBorder(5, 0, 5, 0));
    builder.add(description).xyw(2, 2, 6);
    JButton viewBuiltin = new JButton(Localization.lang("View"));
    builder.add(viewBuiltin).xy(7, 2);
    builder.addSeparator(Localization.lang("Personal journal list")).xyw(2, 3, 6);

    builder.add(newFile).xy(3, 4);
    builder.add(newNameTf).xy(5, 4);
    JButton browseNew = new JButton(Localization.lang("Browse"));
    builder.add(browseNew).xy(7, 4);
    builder.add(oldFile).xy(3, 5);
    builder.add(personalFile).xy(5, 5);
    JButton browseOld = new JButton(Localization.lang("Browse"));
    builder.add(browseOld).xy(7, 5);

    userPanel.setLayout(new BorderLayout());
    builder.add(userPanel).xyw(2, 6, 4);
    ButtonStackBuilder butBul = new ButtonStackBuilder();
    butBul.addButton(add);
    butBul.addButton(remove);

    butBul.addGlue();
    builder.add(butBul.getPanel()).xy(7, 6);

    builder.addSeparator(Localization.lang("External files")).xyw(2, 8, 6);
    externalFilesPanel.setLayout(new BorderLayout());

    setLayout(new BorderLayout());
    builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    add(builder.getPanel(), BorderLayout.NORTH);
    add(externalFilesPanel, BorderLayout.CENTER);
    ButtonBarBuilder bb = new ButtonBarBuilder();
    bb.addGlue();
    JButton ok = new JButton(Localization.lang("OK"));
    bb.addButton(ok);
    JButton cancel = new JButton(Localization.lang("Cancel"));
    bb.addButton(cancel);
    bb.addUnrelatedGap();

    JButton help = new HelpAction(HelpFiles.journalAbbrHelp).getHelpButton();
    bb.addButton(help);
    bb.addGlue();
    bb.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    dialog = new JDialog(frame, Localization.lang("Journal abbreviations"), false);
    dialog.getContentPane().add(this, BorderLayout.CENTER);
    dialog.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);

    // Set up panel for editing a single journal, to be used in a dialog box:
    FormLayout layout2 = new FormLayout("right:pref, 4dlu, fill:180dlu", "p, 2dlu, p");
    FormBuilder builder2 = FormBuilder.create().layout(layout2);
    builder2.add(Localization.lang("Journal name")).xy(1, 1);
    builder2.add(nameTf).xy(3, 1);
    builder2.add(Localization.lang("ISO abbreviation")).xy(1, 3);
    builder2.add(abbrTf).xy(3, 3);
    journalEditPanel = builder2.getPanel();

    viewBuiltin.addActionListener(e -> {
        JTable table = new JTable(JournalAbbreviationsUtil
                .getTableModel(Globals.journalAbbreviationLoader.getRepository().getAbbreviations()));
        JScrollPane pane = new JScrollPane(table);
        JOptionPane.showMessageDialog(null, pane, Localization.lang("Journal list preview"),
                JOptionPane.INFORMATION_MESSAGE);
    });

    browseNew.addActionListener(e -> {
        File old = null;
        if (!"".equals(newNameTf.getText())) {
            old = new File(newNameTf.getText());
        }
        String name = FileDialogs.getNewFile(frame, old, null, JFileChooser.SAVE_DIALOG, false);
        if (name != null) {
            newNameTf.setText(name);
            newFile.setSelected(true);
        }
    });

    browseOld.addActionListener(e -> {
        File old = null;
        if (!"".equals(personalFile.getText())) {
            old = new File(personalFile.getText());
        }
        String name = FileDialogs.getNewFile(frame, old, null, JFileChooser.OPEN_DIALOG, false);
        if (name != null) {
            personalFile.setText(name);
            oldFile.setSelected(true);
            oldFile.setEnabled(true);
            setupUserTable();
        }
    });

    ok.addActionListener(e -> {
        if (readyToClose()) {
            try {
                storeSettings();
                dialog.dispose();
            } catch (FileNotFoundException ex) {
                JOptionPane.showMessageDialog(null,
                        Localization.lang("Error opening file") + ": " + ex.getMessage(),
                        Localization.lang("Error opening file"), JOptionPane.ERROR_MESSAGE);
                LOGGER.debug("Cannot find abbreviation file", ex);
            }
        }
    });

    Action cancelAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dialog.dispose();
        }
    };
    cancel.addActionListener(cancelAction);

    add.addActionListener(tableModel);
    remove.addActionListener(tableModel);
    addExt.addActionListener(e -> {
        externals.add(new ExternalFileEntry());
        buildExternalsPanel();
    });

    // Key bindings:
    ActionMap am = getActionMap();
    InputMap im = getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    im.put(Globals.getKeyPrefs().getKey(KeyBinding.CLOSE_DIALOG), "close");
    am.put("close", cancelAction);

    int xSize = getPreferredSize().width;
    dialog.setSize(xSize + 10, 700);
}

From source file:net.sf.jabref.journals.ManageJournalsPanel.java

License:Open Source License

public ManageJournalsPanel(final JabRefFrame frame) {
    this.frame = frame;

    personalFile.setEditable(false);//from   w ww . j av  a 2 s .  c om

    ButtonGroup group = new ButtonGroup();
    group.add(newFile);
    group.add(oldFile);
    addExtPan.setLayout(new BorderLayout());
    JButton addExt = new JButton(GUIGlobals.getImage("add"));
    addExtPan.add(addExt, BorderLayout.EAST);
    addExtPan.setToolTipText(Globals.lang("Add"));
    //addExtPan.setBorder(BorderFactory.createMatteBorder(1,1,1,1,Color.red));
    FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:200dlu:grow, 4dlu, fill:pref", // 4dlu, left:pref, 4dlu",
            "pref, pref, pref, 20dlu, 20dlu, fill:200dlu, 4dlu, pref");//150dlu");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    CellConstraints cc = new CellConstraints();

    /*JLabel description = new JLabel("<HTML>"+Glbals.lang("JabRef can switch journal names between "
    +"abbreviated and full form. Since it knows only a limited number of journal names, "
    +"you may need to add your own definitions.")+"</HTML>");*/
    builder.addSeparator(Globals.lang("Built-in journal list"), cc.xyw(2, 1, 6));
    JLabel description = new JLabel("<HTML>"
            + Globals.lang("JabRef includes a built-in list of journal abbreviations.") + "<br>"
            + Globals.lang("You can add additional journal names by setting up a personal journal list,<br>as "
                    + "well as linking to external journal lists.")
            + "</HTML>");
    description.setBorder(BorderFactory.createEmptyBorder(5, 0, 5, 0));
    builder.add(description, cc.xyw(2, 2, 6));
    JButton viewBuiltin = new JButton(Globals.lang("View"));
    builder.add(viewBuiltin, cc.xy(7, 2));
    builder.addSeparator(Globals.lang("Personal journal list"), cc.xyw(2, 3, 6));

    //builder.add(description, cc.xyw(2,1,6));
    builder.add(newFile, cc.xy(3, 4));
    builder.add(newNameTf, cc.xy(5, 4));
    JButton browseNew = new JButton(Globals.lang("Browse"));
    builder.add(browseNew, cc.xy(7, 4));
    builder.add(oldFile, cc.xy(3, 5));
    builder.add(personalFile, cc.xy(5, 5));
    //BrowseAction action = new BrowseAction(personalFile, false);
    //JButton browse = new JButton(Globals.lang("Browse"));
    //browse.addActionListener(action);
    JButton browseOld = new JButton(Globals.lang("Browse"));
    builder.add(browseOld, cc.xy(7, 5));

    userPanel.setLayout(new BorderLayout());
    //builtInTable = new JTable(Globals.journalAbbrev.getTableModel());
    builder.add(userPanel, cc.xyw(2, 6, 4));
    ButtonStackBuilder butBul = new ButtonStackBuilder();
    butBul.addButton(add);
    butBul.addButton(remove);

    butBul.addGlue();
    builder.add(butBul.getPanel(), cc.xy(7, 6));

    builder.addSeparator(Globals.lang("External files"), cc.xyw(2, 8, 6));
    externalFilesPanel.setLayout(new BorderLayout());
    //builder.add(/*new JScrollPane(*/externalFilesPanel/*)*/, cc.xyw(2,8,6));

    setLayout(new BorderLayout());
    builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));//createMatteBorder(1,1,1,1,Color.green));
    add(builder.getPanel(), BorderLayout.NORTH);
    add(externalFilesPanel, BorderLayout.CENTER);
    ButtonBarBuilder bb = new ButtonBarBuilder();
    bb.addGlue();
    JButton ok = new JButton(Globals.lang("Ok"));
    bb.addButton(ok);
    JButton cancel = new JButton(Globals.lang("Cancel"));
    bb.addButton(cancel);
    bb.addUnrelatedGap();
    JButton help = new JButton(Globals.lang("Help"));
    bb.addButton(help);
    bb.addGlue();
    bb.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    dialog = new JDialog(frame, Globals.lang("Journal abbreviations"), false);
    dialog.getContentPane().add(this, BorderLayout.CENTER);
    dialog.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);

    //add(new JScrollPane(builtInTable), BorderLayout.CENTER);

    // Set up panel for editing a single journal, to be used in a dialog box:
    FormLayout layout2 = new FormLayout("right:pref, 4dlu, fill:180dlu", "");
    DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2);
    builder2.append(Globals.lang("Journal name"));
    builder2.append(nameTf);
    builder2.nextLine();
    builder2.append(Globals.lang("ISO abbreviation"));
    builder2.append(abbrTf);
    journalEditPanel = builder2.getPanel();

    viewBuiltin.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            JournalAbbreviationRepository abbr = new JournalAbbreviationRepository();
            abbr.readJournalListFromResource(Globals.JOURNALS_FILE_BUILTIN);
            JTable table = new JTable(JournalAbbreviationsUtil.getTableModel(Globals.journalAbbrev));
            JScrollPane pane = new JScrollPane(table);
            JOptionPane.showMessageDialog(null, pane, Globals.lang("Journal list preview"),
                    JOptionPane.INFORMATION_MESSAGE);
        }
    });

    browseNew.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            File old = null;
            if (!newNameTf.getText().equals("")) {
                old = new File(newNameTf.getText());
            }
            String name = FileDialogs.getNewFile(frame, old, null, JFileChooser.SAVE_DIALOG, false);
            if (name != null) {
                newNameTf.setText(name);
                newFile.setSelected(true);
            }
        }
    });
    browseOld.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            File old = null;
            if (!personalFile.getText().equals("")) {
                old = new File(personalFile.getText());
            }
            String name = FileDialogs.getNewFile(frame, old, null, JFileChooser.OPEN_DIALOG, false);
            if (name != null) {
                personalFile.setText(name);
                oldFile.setSelected(true);
                oldFile.setEnabled(true);
                setupUserTable();
            }
        }
    });

    ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (readyToClose()) {
                try {
                    storeSettings();
                    dialog.dispose();
                } catch (FileNotFoundException ex) {
                    JOptionPane.showMessageDialog(null,
                            Globals.lang("Error opening file") + ": " + ex.getMessage(),
                            Globals.lang("Error opening file"), JOptionPane.ERROR_MESSAGE);
                }
            }
        }
    });
    help.addActionListener(new HelpAction(Globals.helpDiag, GUIGlobals.journalAbbrHelp));

    AbstractAction cancelAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dialog.dispose();
        }
    };
    cancel.addActionListener(cancelAction);

    add.addActionListener(tableModel);
    remove.addActionListener(tableModel);
    addExt.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            externals.add(new ExternalFileEntry());
            buildExternalsPanel();
        }
    });

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

    //dialog.pack();
    int xSize = getPreferredSize().width;
    dialog.setSize(xSize + 10, 700);
}