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

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

Introduction

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

Prototype

public JComponent appendSeparator(String text) 

Source Link

Document

Adds a separator with the given text that spans all columns.

Usage

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

License:Open Source License

public GeneralTab(JabRefFrame frame, JabRefPreferences prefs) {
    _prefs = prefs;//ww  w.java2 s.  com
    setLayout(new BorderLayout());

    allowEditing = new JCheckBox(Globals.lang("Allow editing in table cells"));

    memoryStick = new JCheckBox(
            Globals.lang("Load and Save preferences from/to jabref.xml on start-up (memory stick mode)"));
    defSort = new JCheckBox(Globals.lang("Sort Automatically"));
    ctrlClick = new JCheckBox(Globals.lang("Open right-click menu with Ctrl+left button"));
    useOwner = new JCheckBox(Globals.lang("Mark new entries with owner name") + ':');
    useTimeStamp = new JCheckBox(
            Globals.lang("Mark new entries with addition date") + ". " + Globals.lang("Date format") + ':');
    useTimeStamp.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent arg0) {
            updateTimeStamp.setEnabled(useTimeStamp.isSelected());
        }
    });
    updateTimeStamp = new JCheckBox(Globals.lang("Update timestamp on modification"));
    overwriteOwner = new JCheckBox(Globals.lang("Overwrite"));
    overwriteTimeStamp = new JCheckBox(Globals.lang("Overwrite"));
    overwriteOwner.setToolTipText(
            Globals.lang("If a pasted or imported entry already has " + "the field set, overwrite."));
    overwriteTimeStamp.setToolTipText(
            Globals.lang("If a pasted or imported entry already has " + "the field set, overwrite."));
    keyDuplicateWarningDialog = new JCheckBox(
            Globals.lang("Show warning dialog when a duplicate BibTeX key is entered"));
    keyEmptyWarningDialog = new JCheckBox(
            Globals.lang("Show warning dialog when an empty BibTeX key is entered")); // JZTODO lyrics
    enforceLegalKeys = new JCheckBox(Globals.lang("Enforce legal characters in BibTeX keys"));
    confirmDelete = new JCheckBox(Globals.lang("Show confirmation dialog when deleting entries"));

    useImportInspector = new JCheckBox(
            Globals.lang("Display imported entries in an inspection window before they are added."));
    useImportInspectorForSingle = new JCheckBox(
            Globals.lang("Use inspection window also when a single entry is imported."));
    markImportedEntries = new JCheckBox(Globals.lang("Mark entries imported into an existing database"));
    unmarkAllEntriesBeforeImporting = new JCheckBox(
            Globals.lang("Unmark all entries before importing new entries into an existing database"));
    defOwnerField = new JTextField();
    timeStampFormat = new JTextField();
    timeStampField = new JTextField();
    HelpAction ownerHelp = new HelpAction(frame.helpDiag, GUIGlobals.ownerHelp, "Help",
            GUIGlobals.getIconUrl("helpSmall"));
    HelpAction timeStampHelp = new HelpAction(frame.helpDiag, GUIGlobals.timeStampHelp, "Help",
            GUIGlobals.getIconUrl("helpSmall"));
    inspectionWarnDupli = new JCheckBox(
            Globals.lang("Warn about unresolved duplicates when closing inspection window"));

    Insets marg = new Insets(0, 12, 3, 0);
    useImportInspectorForSingle.setMargin(marg);
    inspectionWarnDupli.setMargin(marg);

    // We need a listener on useImportInspector to enable and disable the
    // import inspector related choices;
    useImportInspector.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent event) {
            useImportInspectorForSingle.setEnabled(useImportInspector.isSelected());
            inspectionWarnDupli.setEnabled(useImportInspector.isSelected());
        }
    });

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

    builder.appendSeparator(Globals.lang("General"));
    builder.nextLine();
    builder.append(useImportInspector, 13);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(useImportInspectorForSingle, 11);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(inspectionWarnDupli, 11);
    builder.nextLine();
    builder.append(ctrlClick, 13);
    builder.nextLine();
    builder.append(confirmDelete, 13);
    builder.nextLine();
    builder.append(keyDuplicateWarningDialog, 13);
    builder.nextLine();
    builder.append(keyEmptyWarningDialog, 13);
    builder.nextLine();
    builder.append(enforceLegalKeys, 13);
    builder.nextLine();
    builder.append(memoryStick, 13);

    // Create a new panel with its own FormLayout for the last items:
    builder.append(useOwner, 3);
    builder.append(defOwnerField);
    builder.append(overwriteOwner);
    builder.append(new JPanel(), 3);

    JButton hlp = new JButton(ownerHelp);
    hlp.setText(null);
    hlp.setPreferredSize(new Dimension(24, 24));
    builder.append(hlp);
    builder.nextLine();

    builder.append(useTimeStamp, 3);
    builder.append(timeStampFormat);
    builder.append(overwriteTimeStamp);
    builder.append(Globals.lang("Field name") + ':');
    builder.append(timeStampField);

    hlp = new JButton(timeStampHelp);
    hlp.setText(null);
    hlp.setPreferredSize(new Dimension(24, 24));
    builder.append(hlp);
    builder.nextLine();

    builder.append(new JPanel());
    builder.append(updateTimeStamp, 2);
    builder.nextLine();

    builder.append(markImportedEntries, 13);
    builder.nextLine();
    builder.append(unmarkAllEntriesBeforeImporting, 13);
    builder.nextLine();
    JLabel lab;
    lab = new JLabel(Globals.lang("Language") + ':');
    builder.append(lab, 3);
    builder.append(language);
    builder.nextLine();
    lab = new JLabel(Globals.lang("Default encoding") + ':');
    builder.append(lab, 3);
    builder.append(encodings);

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

}

From source file:net.sf.jabref.groups.GroupDialog.java

License:Open Source License

/**
 * Shows a group add/edit dialog./*from  w  ww. j  a va 2s. com*/
 *
 * @param jabrefFrame
 *            The parent frame.
 * @param basePanel
 *            The default grouping field.
 * @param editedGroup
 *            The group being edited, or null if a new group is to be
 *            created.
 */
public GroupDialog(JabRefFrame jabrefFrame, BasePanel basePanel, AbstractGroup editedGroup) {
    super(jabrefFrame, Globals.lang("Edit group"), true);
    m_basePanel = basePanel;
    m_editedGroup = editedGroup;

    // set default values (overwritten if editedGroup != null)
    m_kgSearchField.setText(jabrefFrame.prefs().get(JabRefPreferences.GROUPS_DEFAULT_FIELD));

    // configure elements
    ButtonGroup groupType = new ButtonGroup();
    groupType.add(m_explicitRadioButton);
    groupType.add(m_keywordsRadioButton);
    groupType.add(m_searchRadioButton);
    ButtonGroup groupHierarchy = new ButtonGroup();
    groupHierarchy.add(m_independentButton);
    groupHierarchy.add(m_intersectionButton);
    groupHierarchy.add(m_unionButton);
    m_description.setVerticalAlignment(SwingConstants.TOP);
    getRootPane().setDefaultButton(m_ok);

    // build individual layout cards for each group
    m_optionsPanel.setLayout(m_optionsLayout);
    // ... for explicit group
    m_optionsPanel.add(new JPanel(), "" + GroupDialog.INDEX_EXPLICITGROUP);
    // ... for keyword group
    FormLayout layoutKG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow, 2dlu, left:pref");
    DefaultFormBuilder builderKG = new DefaultFormBuilder(layoutKG);
    builderKG.append(Globals.lang("Field"));
    builderKG.append(m_kgSearchField, 3);
    builderKG.nextLine();
    builderKG.append(Globals.lang("Keyword"));
    builderKG.append(m_kgSearchTerm);
    builderKG.append(new FieldContentSelector(jabrefFrame, m_basePanel, this, m_kgSearchTerm,
            m_basePanel.metaData(), null, true, ", "));
    builderKG.nextLine();
    builderKG.append(m_kgCaseSensitive, 3);
    builderKG.nextLine();
    builderKG.append(m_kgRegExp, 3);
    m_optionsPanel.add(builderKG.getPanel(), "" + GroupDialog.INDEX_KEYWORDGROUP);
    // ... for search group
    FormLayout layoutSG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow");
    DefaultFormBuilder builderSG = new DefaultFormBuilder(layoutSG);
    builderSG.append(Globals.lang("Search expression"));
    builderSG.append(m_sgSearchExpression);
    builderSG.nextLine();
    builderSG.append(m_sgCaseSensitive, 3);
    builderSG.nextLine();
    builderSG.append(m_sgRegExp, 3);
    m_optionsPanel.add(builderSG.getPanel(), "" + GroupDialog.INDEX_SEARCHGROUP);
    // ... for buttons panel
    FormLayout layoutBP = new FormLayout("pref, 4dlu, pref", "p");
    layoutBP.setColumnGroups(new int[][] { { 1, 3 } });
    ButtonBarBuilder builderBP = new ButtonBarBuilder();
    builderBP.addGlue();
    builderBP.addButton(m_ok);
    JButton m_cancel = new JButton(Globals.lang("Cancel"));
    builderBP.addButton(m_cancel);
    builderBP.addGlue();
    builderBP.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    // create layout
    FormLayout layoutAll = new FormLayout("right:pref, 4dlu, fill:600px, 4dlu, fill:pref",
            "p, 3dlu, p, 3dlu, p, 0dlu, p, 0dlu, p, 3dlu, p, 3dlu, p, " + "0dlu, p, 0dlu, p, 3dlu, p, 3dlu, "
                    + "p, 3dlu, p, 3dlu, top:80dlu, 9dlu, p, 9dlu, p");

    DefaultFormBuilder builderAll = new DefaultFormBuilder(layoutAll);
    builderAll.border(Borders.DIALOG);
    builderAll.appendSeparator(Globals.lang("General"));
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(Globals.lang("Name"));
    builderAll.append(m_name);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(m_explicitRadioButton, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(m_keywordsRadioButton, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(m_searchRadioButton, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.appendSeparator(Globals.lang("Hierarchical context")); // JZTODO lyrics
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(m_independentButton, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(m_intersectionButton, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(m_unionButton, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.appendSeparator(Globals.lang("Options"));
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.append(m_optionsPanel, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.appendSeparator(Globals.lang("Description"));
    builderAll.nextLine();
    builderAll.nextLine();
    JScrollPane sp = new JScrollPane(m_description, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED) {

        @Override
        public Dimension getPreferredSize() {
            return getMaximumSize();
        }
    };
    builderAll.append(sp, 5);
    builderAll.nextLine();
    builderAll.nextLine();
    builderAll.appendSeparator();
    builderAll.nextLine();
    builderAll.nextLine();
    //CellConstraints cc = new CellConstraints();
    //builderAll.add(builderBP.getPanel(), cc.xyw(builderAll.getColumn(),
    //                builderAll.getRow(), 5, "center, fill"));

    Container cp = getContentPane();
    //cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS));
    cp.add(builderAll.getPanel(), BorderLayout.CENTER);
    cp.add(builderBP.getPanel(), BorderLayout.SOUTH);
    pack();
    setResizable(false);
    updateComponents();
    setLayoutForSelectedGroup();
    Util.placeDialog(this, jabrefFrame);

    // add listeners
    ItemListener radioButtonItemListener = new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            setLayoutForSelectedGroup();
            updateComponents();
        }
    };
    m_explicitRadioButton.addItemListener(radioButtonItemListener);
    m_keywordsRadioButton.addItemListener(radioButtonItemListener);
    m_searchRadioButton.addItemListener(radioButtonItemListener);

    Action cancelAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dispose();
        }
    };
    m_cancel.addActionListener(cancelAction);
    builderAll.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
            .put(Globals.prefs.getKey("Close dialog"), "close");
    builderAll.getPanel().getActionMap().put("close", cancelAction);

    m_ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            m_okPressed = true;
            if (m_explicitRadioButton.isSelected()) {
                if (m_editedGroup instanceof ExplicitGroup) {
                    // keep assignments from possible previous ExplicitGroup
                    m_resultingGroup = m_editedGroup.deepCopy();
                    m_resultingGroup.setName(m_name.getText().trim());
                    m_resultingGroup.setHierarchicalContext(getContext());
                } else {
                    m_resultingGroup = new ExplicitGroup(m_name.getText().trim(), getContext());
                    if (m_editedGroup != null) {
                        addPreviousEntries();
                    }
                }
            } else if (m_keywordsRadioButton.isSelected()) {
                // regex is correct, otherwise OK would have been disabled
                // therefore I don't catch anything here
                m_resultingGroup = new KeywordGroup(m_name.getText().trim(), m_kgSearchField.getText().trim(),
                        m_kgSearchTerm.getText().trim(), m_kgCaseSensitive.isSelected(),
                        m_kgRegExp.isSelected(), getContext());
                if (((m_editedGroup instanceof ExplicitGroup) || (m_editedGroup instanceof SearchGroup))
                        && m_resultingGroup.supportsAdd()) {
                    addPreviousEntries();
                }
            } else if (m_searchRadioButton.isSelected()) {
                try {
                    // regex is correct, otherwise OK would have been
                    // disabled
                    // therefore I don't catch anything here
                    m_resultingGroup = new SearchGroup(m_name.getText().trim(),
                            m_sgSearchExpression.getText().trim(), isCaseSensitive(), isRegex(), getContext());
                } catch (Exception e1) {
                    // should never happen
                }
            }
            dispose();
        }
    });

    CaretListener caretListener = new CaretListener() {

        @Override
        public void caretUpdate(CaretEvent e) {
            updateComponents();
        }
    };

    ItemListener itemListener = new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            updateComponents();
        }
    };

    m_name.addCaretListener(caretListener);
    m_kgSearchField.addCaretListener(caretListener);
    m_kgSearchTerm.addCaretListener(caretListener);
    m_kgCaseSensitive.addItemListener(itemListener);
    m_kgRegExp.addItemListener(itemListener);
    m_sgSearchExpression.addCaretListener(caretListener);
    m_sgRegExp.addItemListener(itemListener);
    m_sgCaseSensitive.addItemListener(itemListener);

    // configure for current type
    if (editedGroup instanceof KeywordGroup) {
        KeywordGroup group = (KeywordGroup) editedGroup;
        m_name.setText(group.getName());
        m_kgSearchField.setText(group.getSearchField());
        m_kgSearchTerm.setText(group.getSearchExpression());
        m_kgCaseSensitive.setSelected(group.isCaseSensitive());
        m_kgRegExp.setSelected(group.isRegExp());
        m_keywordsRadioButton.setSelected(true);
        setContext(editedGroup.getHierarchicalContext());
    } else if (editedGroup instanceof SearchGroup) {
        SearchGroup group = (SearchGroup) editedGroup;
        m_name.setText(group.getName());
        m_sgSearchExpression.setText(group.getSearchExpression());
        m_sgCaseSensitive.setSelected(group.isCaseSensitive());
        m_sgRegExp.setSelected(group.isRegExp());
        m_searchRadioButton.setSelected(true);
        setContext(editedGroup.getHierarchicalContext());
    } else if (editedGroup instanceof ExplicitGroup) {
        m_name.setText(editedGroup.getName());
        m_explicitRadioButton.setSelected(true);
        setContext(editedGroup.getHierarchicalContext());
    } else { // creating new group -> defaults!
        m_explicitRadioButton.setSelected(true);
        setContext(GroupHierarchyType.INDEPENDENT);
    }
}

From source file:net.sf.jabref.groups.GroupsPrefsTab.java

License:Open Source License

public GroupsPrefsTab(JabRefPreferences prefs) {
    this.prefs = prefs;

    keywordSeparator.addFocusListener(new FocusListener() {

        @Override/*from  w w  w. jav  a 2  s  . co  m*/
        public void focusGained(FocusEvent e) {
            keywordSeparator.selectAll();
        }

        @Override
        public void focusLost(FocusEvent e) {
            // deselection is automatic
        }
    });

    FormLayout layout = new FormLayout("9dlu, pref", //500px",
            "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, " + "p, 3dlu, p");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.appendSeparator(Globals.lang("View"));
    builder.nextLine();
    builder.nextLine();
    builder.nextColumn();
    builder.append(showIcons);
    builder.nextLine();
    builder.nextLine();
    builder.nextColumn();
    builder.append(showDynamic);
    builder.nextLine();
    builder.nextLine();
    builder.nextColumn();
    builder.append(expandTree);
    builder.nextLine();
    builder.nextLine();
    builder.nextColumn();
    builder.append(autoShow);
    builder.nextLine();
    builder.nextLine();
    builder.nextColumn();
    builder.append(autoHide);
    builder.nextLine();
    builder.nextLine();
    builder.nextColumn();
    builder.append(autoAssignGroup);
    builder.nextLine();
    builder.nextLine();
    builder.appendSeparator(Globals.lang("Dynamic groups"));
    builder.nextLine();
    builder.nextLine();
    builder.nextColumn();
    // build subcomponent
    FormLayout layout2 = new FormLayout("left:pref, 2dlu, left:pref", "p, 3dlu, p");
    DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2);
    builder2.append(new JLabel(Globals.lang("Default grouping field") + ":"));
    builder2.append(groupingField);
    builder2.nextLine();
    builder2.nextLine();
    builder2.append(new JLabel(Globals.lang("When adding/removing keywords, separate them by") + ":"));
    builder2.append(keywordSeparator);
    builder.append(builder2.getPanel());

    setLayout(new BorderLayout());
    JPanel panel = builder.getPanel();
    panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    add(panel, BorderLayout.CENTER);
}

From source file:net.sf.jabref.gui.AttachFileDialog.java

License:Open Source License

private void initGui() {

    final ExternalFilePanel extPan = new ExternalFilePanel(fieldName, metaData, entry, editor,
            Util.getFileFilterForField(fieldName));

    browse.addActionListener(new ActionListener() {

        @Override//ww  w  .j  a  v  a 2  s.  c o m
        public void actionPerformed(ActionEvent event) {
            extPan.browseFile(fieldName, editor);
        }
    });

    download.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            extPan.downLoadFile(fieldName, editor, ths);
        }
    });

    auto.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            JabRefExecutorService.INSTANCE.execute(extPan.autoSetFile(fieldName, editor));
        }
    });

    ActionListener okListener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            cancelled = false;
            dispose();
        }
    };

    ok.addActionListener(okListener);
    ((JTextField) editor.getTextComponent()).addActionListener(okListener);

    AbstractAction cancelListener = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent event) {
            cancelled = true;
            dispose();
        }
    };

    cancel.addActionListener(cancelListener);
    editor.getTextComponent().getInputMap().put(Globals.prefs.getKey("Close dialog"), "close");
    editor.getTextComponent().getActionMap().put("close", cancelListener);

    FormLayout layout = new FormLayout("fill:160dlu, 4dlu, fill:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    //builder.append(Util.nCase(fieldName));//(editor.getLabel());
    builder.appendSeparator(StringUtil.nCase(fieldName));
    builder.append(editor.getTextComponent());
    builder.append(browse);

    ButtonBarBuilder bb = new ButtonBarBuilder();
    bb.addButton(download);
    bb.addButton(auto);
    builder.nextLine();
    builder.append(bb.getPanel());
    builder.nextLine();
    builder.appendSeparator();

    JPanel main = builder.getPanel();

    main.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    bb = new ButtonBarBuilder();
    bb.addGlue();
    bb.addButton(ok);
    bb.addButton(cancel);
    bb.addGlue();

    getContentPane().add(main, BorderLayout.CENTER);
    getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);
    pack();
}

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

License:Open Source License

private void initPanels() {
    // 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 (parentFrame.getBasePanelAt(i) == parentFrame.getCurrentBasePanel()) {
            toSelect = i;/*w  ww  .  ja v a2 s .c  o m*/
        }
    }
    if (toSelect >= 0) {
        dbChooser.setSelectedIndex(toSelect);
    }

    auxFileField = new JTextField("", 25);
    JButton browseAuxFileButton = new JButton(Localization.lang("Browse"));
    browseAuxFileButton.addActionListener(new BrowseAction(auxFileField, parentFrame));
    notFoundList = new JList<>();
    JScrollPane listScrollPane = new JScrollPane(notFoundList);
    statusInfos = new JTextArea("", 5, 20);
    JScrollPane statusScrollPane = new JScrollPane(statusInfos);
    statusInfos.setEditable(false);

    DefaultFormBuilder b = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, fill:pref:grow, 4dlu, left:pref", ""), buttons);
    b.appendSeparator(Localization.lang("Options"));
    b.append(Localization.lang("Reference database") + ":");
    b.append(dbChooser, 3);
    b.nextLine();
    b.append(Localization.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(Localization.lang("Result"));
    b.append(Localization.lang("Unknown bibtex entries") + ":");
    b.append(Localization.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.gui.DatabasePropertiesDialog.java

License:Open Source License

private void init(JFrame parent) {

    JButton browseFile = new JButton(Globals.lang("Browse"));
    JButton browseFileIndv = new JButton(Globals.lang("Browse"));
    JButton browsePdf = new JButton(Globals.lang("Browse"));
    JButton browsePs = new JButton(Globals.lang("Browse"));
    browseFile.addActionListener(BrowseAction.buildForDir(parent, fileDir));
    browseFileIndv.addActionListener(BrowseAction.buildForDir(parent, fileDirIndv));
    browsePdf.addActionListener(BrowseAction.buildForDir(parent, pdfDir));
    browsePs.addActionListener(BrowseAction.buildForDir(parent, psDir));

    setupSortOrderConfiguration();//  w  ww  .  java2  s  . c om

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, left:pref, 4dlu, fill:pref", ""));
    builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    builder.append(Globals.lang("Database encoding"));
    builder.append(encoding);
    builder.nextLine();

    builder.appendSeparator(Globals.lang("Override default file directories"));
    builder.nextLine();
    builder.append(Globals.lang("General file directory"));
    builder.append(fileDir);
    builder.append(browseFile);
    builder.nextLine();
    builder.append(Globals.lang("User-specific file directory"));
    builder.append(fileDirIndv);
    builder.append(browseFileIndv);
    builder.nextLine();
    builder.append(Globals.lang("PDF directory"));
    builder.append(pdfDir);
    builder.append(browsePdf);
    builder.nextLine();
    builder.append(Globals.lang("PS directory"));
    builder.append(psDir);
    builder.append(browsePs);
    builder.nextLine();

    builder.appendSeparator(Globals.lang("Save sort order"));
    builder.append(saveAsConfiguredGlobally, 1);
    builder.nextLine();
    builder.append(saveInOriginalOrder, 1);
    builder.nextLine();
    builder.append(saveInSpecifiedOrder, 1);
    builder.nextLine();

    // Create a new panel with its own FormLayout for these items:
    FormLayout layout2 = new FormLayout("right:pref, 8dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, left:pref", "");
    DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2);
    JLabel lab = new JLabel(Globals.lang("Primary sort criterion"));
    builder2.append(lab);
    builder2.append(savePriSort);
    builder2.append(savePriField);
    builder2.append(savePriDesc);
    builder2.nextLine();
    lab = new JLabel(Globals.lang("Secondary sort criterion"));
    builder2.append(lab);
    builder2.append(saveSecSort);
    builder2.append(saveSecField);
    builder2.append(saveSecDesc);
    builder2.nextLine();
    lab = new JLabel(Globals.lang("Tertiary sort criterion"));
    builder2.append(lab);
    builder2.append(saveTerSort);
    builder2.append(saveTerField);
    builder2.append(saveTerDesc);

    JPanel saveSpecPanel = builder2.getPanel();
    builder.append(saveSpecPanel);
    builder.nextLine();

    builder.appendSeparator(Globals.lang("Database protection"));
    builder.nextLine();
    builder.append(protect, 3);
    ButtonBarBuilder bb = new ButtonBarBuilder();
    bb.addGlue();
    bb.addButton(ok);
    bb.addButton(cancel);
    bb.addGlue();

    getContentPane().add(builder.getPanel(), BorderLayout.CENTER);
    getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);
    pack();

    AbstractAction closeAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dispose();
        }
    };
    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", closeAction);

    ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            storeSettings();
            dispose();
        }
    });

    cancel.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dispose();
        }
    });

}

From source file:net.sf.jabref.gui.FieldWeightDialog.java

License:Open Source License

private JPanel buildMainPanel() {
    FormLayout layout = new FormLayout("right:pref, 4dlu, fill:pref, 8dlu, right:pref, 4dlu, fill:pref", // 4dlu, left:pref, 4dlu",
            "");//from   w ww  . j  a va  2s .c o  m
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    builder.appendSeparator(Globals.lang("Field sizes"));

    // We use this list to build an alphabetical list of field names:
    TreeSet<String> fields = new TreeSet<String>();
    // We use this map to remember which slider represents which field name:
    sliders.clear();
    for (int i = 0, len = BibtexFields.numberOfPublicFields(); i < len; i++) {
        fields.add(BibtexFields.getFieldName(i));
    }
    fields.remove("bibtexkey"); // bibtex key doesn't need weight.
    // Here is the place to add other fields:

    // --------------

    for (String field : fields) {
        builder.append(field);
        int weight = (int) ((100 * BibtexFields.getFieldWeight(field)) / GUIGlobals.MAX_FIELD_WEIGHT);
        //System.out.println(weight);
        JSlider slider = new JSlider(0, 100, weight);//,);
        sliders.put(slider, new SliderInfo(field, weight));
        builder.append(slider);
    }
    builder.appendSeparator();

    return builder.getPanel();

}

From source file:net.sf.jabref.gui.preftabs.AdvancedTab.java

License:Open Source License

public AdvancedTab(JabRefPreferences prefs, JabRef jabRef) {
    this.jabRef = jabRef;
    preferences = prefs;/*from w ww  .j  a v a2 s  .c  o  m*/
    this.remotePreferences = new RemotePreferences(preferences);

    useDefault = new JCheckBox(Localization.lang("Use other look and feel"));
    useRemoteServer = new JCheckBox(Localization.lang("Listen for remote operation on port") + ':');
    useIEEEAbrv = new JCheckBox(Localization.lang("Use IEEE LaTeX abbreviations"));
    remoteServerPort = new JTextField();
    String[] possibleLookAndFeels = { UIManager.getSystemLookAndFeelClassName(),
            UIManager.getCrossPlatformLookAndFeelClassName(), "com.jgoodies.looks.plastic.Plastic3DLookAndFeel",
            "com.jgoodies.looks.windows.WindowsLookAndFeel" };
    // Only list L&F which are available
    List<String> lookAndFeels = new ArrayList<>();
    for (String lf : possibleLookAndFeels) {
        try {
            // Try to find L&F, throws exception if not successful
            Class.forName(lf);
            lookAndFeels.add(lf);
        } catch (ClassNotFoundException ignored) {
            // Ignored
        }
    }
    className = new JComboBox<>(lookAndFeels.toArray(new String[lookAndFeels.size()]));
    className.setEditable(true);
    final JComboBox<String> clName = className;
    useDefault.addChangeListener(e -> clName.setEnabled(((JCheckBox) e.getSource()).isSelected()));
    useConvertToEquation = new JCheckBox(
            Localization.lang("Prefer converting subscripts and superscripts to equations rather than text"));
    useCaseKeeperOnSearch = new JCheckBox(
            Localization.lang("Add {} to specified title words on search to keep the correct case"));
    useUnitFormatterOnSearch = new JCheckBox(Localization
            .lang("Format units by adding non-breaking separators and keeping the correct case on search"));

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

    if (!OS.OS_X) {
        builder.appendSeparator(Localization.lang("Look and feel"));
        JLabel lab = new JLabel(
                Localization.lang("Default look and feel") + ": " + UIManager.getSystemLookAndFeelClassName());
        builder.nextLine();
        builder.append(pan);
        builder.append(lab);
        builder.nextLine();
        builder.append(pan);
        builder.append(useDefault);
        builder.nextLine();
        builder.append(pan);
        JPanel pan2 = new JPanel();
        lab = new JLabel(Localization.lang("Class name") + ':');
        pan2.add(lab);
        pan2.add(className);
        builder.append(pan2);
        builder.nextLine();
        builder.append(pan);
        lab = new JLabel(Localization
                .lang("Note that you must specify the fully qualified class name for the look and feel,"));
        builder.append(lab);
        builder.nextLine();
        builder.append(pan);
        lab = new JLabel(Localization
                .lang("and the class must be available in your classpath next time you start JabRef."));
        builder.append(lab);
        builder.nextLine();
    }
    builder.appendSeparator(Localization.lang("Remote operation"));
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(new JLabel("<html>"
            + Localization.lang("This feature lets new files be opened or imported into an "
                    + "already running instance of JabRef<BR>instead of opening a new instance. For instance, this "
                    + "is useful when you open a file in JabRef<br>from your web browser."
                    + "<BR>Note that this will prevent you from running more than one instance of JabRef at a time.")
            + "</html>"));
    builder.nextLine();
    builder.append(new JPanel());

    JPanel p = new JPanel();
    p.add(useRemoteServer);
    p.add(remoteServerPort);
    p.add(new HelpAction(HelpFiles.remoteHelp).getHelpButton());
    builder.append(p);

    // IEEE
    builder.nextLine();
    builder.appendSeparator(Localization.lang("Search %0", "IEEEXplorer"));
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(useIEEEAbrv);

    builder.nextLine();
    builder.appendSeparator(Localization.lang("Import conversions"));
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(useConvertToEquation);
    builder.nextLine();
    builder.append(pan);
    builder.append(useCaseKeeperOnSearch);
    builder.nextLine();
    builder.append(pan);
    builder.append(useUnitFormatterOnSearch);

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

}

From source file:net.sf.jabref.gui.preftabs.AppearancePrefsTab.java

License:Open Source License

/**
 * Customization of appearance parameters.
 *
 * @param prefs a <code>JabRefPreferences</code> value
 *//*ww w.  j a  va  2  s  .c  o  m*/
public AppearancePrefsTab(JabRefPreferences prefs) {
    this.prefs = prefs;
    setLayout(new BorderLayout());

    // Font sizes:
    fontSize = new JTextField(5);

    // Row padding size:
    rowPadding = new JTextField(5);

    colorCodes = new JCheckBox(Localization.lang("Color codes for required and optional fields"));

    overrideFonts = new JCheckBox(Localization.lang("Override default font settings"));

    showGrid = new JCheckBox(Localization.lang("Show gridlines"));

    FormLayout layout = new FormLayout(
            "1dlu, 8dlu, left:pref, 4dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, fill:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.leadingColumnOffset(2);
    JLabel lab;
    builder.appendSeparator(Localization.lang("General"));
    JPanel p1 = new JPanel();
    lab = new JLabel(Localization.lang("Menu and label font size") + ":");
    p1.add(lab);
    p1.add(fontSize);
    builder.append(p1);
    builder.nextLine();
    builder.append(overrideFonts);
    builder.nextLine();
    builder.appendSeparator(Localization.lang("Table appearance"));
    JPanel p2 = new JPanel();
    p2.add(new JLabel(Localization.lang("Table row height padding") + ":"));
    p2.add(rowPadding);
    builder.append(p2);
    builder.nextLine();
    builder.append(colorCodes);
    builder.nextLine();
    builder.append(showGrid);
    builder.nextLine();
    JButton fontButton = new JButton(Localization.lang("Set table font"));
    builder.append(fontButton);
    builder.nextLine();
    builder.appendSeparator(Localization.lang("Table and entry editor colors"));
    builder.append(colorPanel);

    JPanel upper = new JPanel();
    JPanel sort = new JPanel();
    JPanel namesp = new JPanel();
    JPanel iconCol = new JPanel();
    GridBagLayout gbl = new GridBagLayout();
    upper.setLayout(gbl);
    sort.setLayout(gbl);
    namesp.setLayout(gbl);
    iconCol.setLayout(gbl);

    overrideFonts.addActionListener(e -> fontSize.setEnabled(overrideFonts.isSelected()));

    fontButton.addActionListener(e -> new FontSelectorDialog(null, GUIGlobals.CURRENTFONT).getSelectedFont()
            .ifPresent(x -> font = x));

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

From source file:net.sf.jabref.gui.preftabs.ExternalTab.java

License:Open Source License

public ExternalTab(JabRefFrame frame, PreferencesDialog prefsDiag, JabRefPreferences prefs) {
    this.prefs = prefs;
    this.frame = frame;
    setLayout(new BorderLayout());

    fileDir = new JTextField(25);
    bibLocationAsFileDir = new JCheckBox(
            Localization.lang("Allow file links relative to each bib file's location"));
    bibLocAsPrimaryDir = new JCheckBox(
            Localization.lang("Use the bib file location as primary file directory"));
    bibLocAsPrimaryDir.setToolTipText(Localization.lang("When downloading files, or moving linked files to the "
            + "file directory, prefer the bib file location rather than the file directory set above"));
    bibLocationAsFileDir//w ww . j a v  a 2 s .  c o  m
            .addChangeListener(e -> bibLocAsPrimaryDir.setEnabled(bibLocationAsFileDir.isSelected()));
    JButton editFileTypes = new JButton(Localization.lang("Manage external file types"));
    runAutoFileSearch = new JCheckBox(
            Localization.lang("When opening file link, search for matching file if no link is defined"));
    allowFileAutoOpenBrowse = new JCheckBox(
            Localization.lang("Automatically open browse dialog when creating new file link"));
    citeCommand = new JTextField(25);
    regExpTextField = new JTextField(25);
    useRegExpComboBox = new JRadioButton(Localization.lang("Use Regular Expression Search"));
    ItemListener regExpListener = e -> regExpTextField.setEditable(useRegExpComboBox.isSelected());
    useRegExpComboBox.addItemListener(regExpListener);

    editFileTypes.addActionListener(ExternalFileTypeEditor.getAction(prefsDiag));

    ButtonGroup buttonGroup = new ButtonGroup();
    buttonGroup.add(matchExactKeyOnly);
    buttonGroup.add(matchStartsWithKey);
    buttonGroup.add(useRegExpComboBox);

    BrowseAction browse;

    FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:150dlu, 4dlu, fill:pref", "");

    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    builder.appendSeparator(Localization.lang("External file links"));
    JPanel pan = new JPanel();
    builder.append(pan);
    /**
     * Fix for [ 1749613 ] About translation
     *
     * https://sourceforge.net/tracker/index.php?func=detail&aid=1749613&group_id=92314&atid=600306
     *
     * Cannot really use %0 to refer to the file type, since this ruins translation.
     */
    JLabel lab = new JLabel(Localization.lang("Main file directory") + ':');
    builder.append(lab);
    builder.append(fileDir);
    browse = BrowseAction.buildForDir(this.frame, fileDir);
    builder.append(new JButton(browse));
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(bibLocationAsFileDir, 3);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(bibLocAsPrimaryDir, 3);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(matchStartsWithKey, 3);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(matchExactKeyOnly, 3);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(useRegExpComboBox);
    builder.append(regExpTextField);

    builder.append(new HelpAction(Localization.lang("Help on Regular Expression Search"),
            HelpFiles.regularExpressionSearchHelp).getHelpButton());
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(runAutoFileSearch, 3);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(allowFileAutoOpenBrowse);
    builder.nextLine();

    builder.appendSeparator(Localization.lang("Sending of emails"));
    builder.append(new JPanel());
    lab = new JLabel(Localization.lang("Subject for sending an email with references").concat(":"));
    builder.append(lab);
    emailSubject = new JTextField(25);
    builder.append(emailSubject);
    builder.nextLine();
    builder.append(new JPanel());
    openFoldersOfAttachedFiles = new JCheckBox(
            Localization.lang("Automatically open folders of attached files"));
    builder.append(openFoldersOfAttachedFiles);
    builder.nextLine();

    builder.appendSeparator(Localization.lang("External programs"));
    builder.nextLine();

    JPanel butpan = new JPanel();
    butpan.setLayout(new GridLayout(3, 3));
    for (PushToApplication pushToApplication : PushToApplications.APPLICATIONS) {
        addSettingsButton(pushToApplication, butpan);
    }
    builder.append(new JPanel());
    builder.append(butpan, 3);

    builder.nextLine();
    lab = new JLabel(Localization.lang("Cite command") + ':');
    builder.append(pan);
    builder.append(lab);
    builder.append(citeCommand);

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

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

}