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, Component component) 

Source Link

Document

Adds a text label and component to the panel.

Usage

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

License:Open Source License

public FileTab(JabRefFrame frame, JabRefPreferences prefs) {
    _prefs = prefs;//w w  w.  j av  a 2  s  . co  m
    _frame = frame;

    HelpAction autosaveHelp = new HelpAction(frame.helpDiag, GUIGlobals.autosaveHelp, "Help",
            GUIGlobals.getIconUrl("helpSmall"));
    openLast = new JCheckBox(Globals.lang("Open last edited databases at startup"));
    backup = new JCheckBox(Globals.lang("Backup old file when saving"));
    autoSave = new JCheckBox(Globals.lang(JabRefPreferences.AUTO_SAVE));
    promptBeforeUsingAutoSave = new JCheckBox(
            Globals.lang("Prompt before recovering a database from an autosave file"));
    autoSaveInterval = new JSpinner(new SpinnerNumberModel(1, 1, 60, 1));
    valueDelimiter = new JComboBox(
            new String[] { Globals.lang("Quotes") + ": \", \"", Globals.lang("Curly Brackets") + ": {, }" });
    includeEmptyFields = new JCheckBox(Globals.lang("Include empty fields"));
    sameColumn = new JCheckBox(Globals.lang("Start field contents in same column"));
    camelCase = new JCheckBox(Globals
            .lang("Use camel case for field names (e.g., \"HowPublished\" instead of \"howpublished\")"));
    resolveStringsAll = new JRadioButton(Globals.lang("Resolve strings for all fields except") + ":");
    resolveStringsStandard = new JRadioButton(Globals.lang("Resolve strings for standard BibTeX fields only"));
    ButtonGroup bg = new ButtonGroup();
    bg.add(resolveStringsAll);
    bg.add(resolveStringsStandard);

    //for LWang_AdjustableFieldOrder
    //        ButtonGroup bgFieldOrderStyle=new ButtonGroup();
    //        sortFieldInAlphabetaOrder = new JRadioButton(Globals.lang("Sort fields in alphabeta order (as ver >= 2.10)"));
    //        unSortFieldStyle = new JRadioButton(Globals.lang("Do not sort fields (as ver<=2.9.2)"));
    //        orderAsUserDefined= new JRadioButton(Globals.lang("Save fields as user defined order"));
    //        bgFieldOrderStyle.add(sortFieldInAlphabetaOrder);
    //        bgFieldOrderStyle.add(unSortFieldStyle);
    //        bgFieldOrderStyle.add(orderAsUserDefined);

    userDefinedFieldOrder = new JTextField(_prefs.get(JabRefPreferences.WRITEFIELD_USERDEFINEDORDER)); //need to use JcomboBox in the future

    // This is sort of a quick hack
    newlineSeparator = new JComboBox(new String[] { "CR", "CR/LF", "LF" });

    bracesAroundCapitalsFields = new JTextField(25);
    nonWrappableFields = new JTextField(25);
    doNotResolveStringsFor = new JTextField(30);
    autoDoubleBraces = new JCheckBox(
            //+ Globals.lang("Store fields with double braces, and remove extra braces when loading.<BR>"
            //+ "Double braces signal that BibTeX should preserve character case.") + "</HTML>");
            Globals.lang("Remove double braces around BibTeX fields when loading."));

    autoSave.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent changeEvent) {
            autoSaveInterval.setEnabled(autoSave.isSelected());
            promptBeforeUsingAutoSave.setEnabled(autoSave.isSelected());
        }
    });

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

    builder.appendSeparator(Globals.lang("General"));
    builder.nextLine();
    builder.append(openLast, 3);
    builder.nextLine();
    builder.append(backup, 3);
    builder.nextLine();
    builder.append(autoDoubleBraces, 3);
    builder.nextLine();

    JLabel label = new JLabel(
            Globals.lang("Store the following fields with braces around capital letters") + ":");
    builder.append(label);
    builder.append(bracesAroundCapitalsFields);
    builder.nextLine();
    label = new JLabel(Globals.lang("Do not wrap the following fields when saving") + ":");
    builder.append(label);
    builder.append(nonWrappableFields);
    builder.nextLine();
    builder.append(resolveStringsStandard, 3);
    builder.nextLine();
    builder.append(resolveStringsAll);
    builder.append(doNotResolveStringsFor);
    builder.nextLine();

    JLabel lab = new JLabel(Globals.lang("Newline separator") + ":");
    builder.append(lab);
    builder.append(newlineSeparator);
    builder.nextLine();

    builder.appendSeparator(Globals.lang("Autosave"));
    builder.append(autoSave, 1);
    JButton hlp = new JButton(autosaveHelp);
    hlp.setText(null);
    hlp.setPreferredSize(new Dimension(24, 24));
    JPanel hPan = new JPanel();
    hPan.setLayout(new BorderLayout());
    hPan.add(hlp, BorderLayout.EAST);
    builder.append(hPan);
    builder.nextLine();
    builder.append(Globals.lang("Autosave interval (minutes)") + ":");
    builder.append(autoSaveInterval);
    builder.nextLine();
    builder.append(promptBeforeUsingAutoSave);
    builder.nextLine();
    builder.appendSeparator(Globals.lang("Field saving options"));
    builder.nextLine();
    builder.append(camelCase);
    builder.nextLine();
    builder.append(sameColumn);
    /*FormLayout layout2 = new FormLayout(
        "left:pref, 8dlu, fill:pref", "");
    DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2);
    builder2.append(new JLabel(Globals.lang("Field value delimiter. E.g., \"author={x}\" or \"author='x'\"") + ":"));
    builder2.append(valueDelimiter);
    builder.nextLine();
    builder.append(builder2.getPanel());*/
    builder.append(new JPanel());
    builder.nextLine();
    builder.append(includeEmptyFields);
    builder.append(new JPanel());
    builder.nextLine();

    wrapFieldLine = new JCheckBox(Globals.lang("Wrap fields as ver 2.9.2"));
    builder.append(wrapFieldLine);
    builder.nextLine();
    //for LWang_AdjustableFieldOrder
    String[] _rbs0 = { "Sort fields in alphabeta order (as ver 2.10)",
            "Sort fields in old fasion (as ver 2.9.2)", "Save fields as user defined order" };
    ArrayList<String> _rbs = new ArrayList<String>();
    for (String _rb : _rbs0) {
        _rbs.add(Globals.lang(_rb));
    }
    bgFieldOrderStyle = createRadioBg(_rbs);
    userDefinedFieldOrder = new JTextField(_prefs.get(JabRefPreferences.WRITEFIELD_USERDEFINEDORDER)); //need to use JcomboBox in the future
    createAdFieldOrderBg(builder, bgFieldOrderStyle, userDefinedFieldOrder);
    //        builder.append(sortFieldInAlphabetaOrder);
    //        builder.nextLine();
    //        builder.append(unSortFieldStyle);
    //        builder.nextLine();
    //        builder.append(orderAsUserDefined);
    //        builder.append(userDefinedFieldOrder);
    //        builder.nextLine();

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

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

License:Open Source License

public GeneralTab(JabRefFrame frame, JabRefPreferences prefs) {
    _prefs = prefs;//from w  w  w. jav a 2 s . c  o m
    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.AutoGroupDialog.java

License:Open Source License

/**
 * @param groupsRoot/*www.  j  a  v  a  2  s.  c om*/
 *            The original set of groups, which is required as undo
 *            information when all groups are cleared.
 */
public AutoGroupDialog(JabRefFrame jabrefFrame, BasePanel basePanel, GroupSelector groupSelector,
        GroupTreeNode groupsRoot, String defaultField, String defaultRemove, String defaultDeliminator) {
    super(jabrefFrame, Globals.lang("Automatically create groups"), true);
    frame = jabrefFrame;
    gs = groupSelector;
    panel = basePanel;
    m_groupsRoot = groupsRoot;
    field.setText(defaultField);
    remove.setText(defaultRemove);
    deliminator.setText(defaultDeliminator);
    nd.setSelected(true);
    ActionListener okListener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            ok_pressed = true;
            dispose();

            GroupTreeNode autoGroupsRoot = new GroupTreeNode(new ExplicitGroup(
                    Globals.lang("Automatically created groups"), GroupHierarchyType.INCLUDING));
            Set<String> hs = null;
            String field = field();
            if (keywords.isSelected()) {
                if (nd.isSelected()) {
                    hs = Util.findDeliminatedWordsInField(panel.getDatabase(), field().toLowerCase().trim(),
                            deliminator.getText());
                } else {
                    hs = Util.findAllWordsInField(panel.getDatabase(), field().toLowerCase().trim(), remove());

                }
            } else if (authors.isSelected()) {
                List<String> fields = new ArrayList<String>(2);
                fields.add("author");
                hs = Util.findAuthorLastNames(panel.getDatabase(), fields);
                field = "author";
            } else if (editors.isSelected()) {
                List<String> fields = new ArrayList<String>(2);
                fields.add("editor");
                hs = Util.findAuthorLastNames(panel.getDatabase(), fields);
                field = "editor";
            }

            for (String keyword : hs) {
                KeywordGroup group = new KeywordGroup(keyword, field, keyword, false, false,
                        GroupHierarchyType.INDEPENDENT);
                autoGroupsRoot.add(new GroupTreeNode(group));
            }

            m_groupsRoot.add(autoGroupsRoot);
            NamedCompound ce = new NamedCompound(Globals.lang("Autogenerate groups"));
            UndoableAddOrRemoveGroup undo = new UndoableAddOrRemoveGroup(gs, m_groupsRoot, autoGroupsRoot,
                    UndoableAddOrRemoveGroup.ADD_NODE);
            undo.setRevalidate(true);
            ce.addEdit(undo);

            panel.markBaseChanged(); // a change always occurs
            gs.revalidateGroups();
            frame.output(Globals.lang("Created groups."));
            ce.end();
            panel.undoManager.addEdit(ce);
        }
    };
    remove.addActionListener(okListener);
    field.addActionListener(okListener);
    field.addCaretListener(this);
    AbstractAction cancelAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dispose();
        }
    };
    JButton cancel = new JButton(Globals.lang("Cancel"));
    cancel.addActionListener(cancelAction);
    ok.addActionListener(okListener);
    // Key bindings:
    JPanel main = new JPanel();
    ActionMap am = main.getActionMap();
    InputMap im = main.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    im.put(frame.prefs().getKey("Close dialog"), "close");
    am.put("close", cancelAction);

    ButtonGroup bg = new ButtonGroup();
    bg.add(keywords);
    bg.add(authors);
    bg.add(editors);
    keywords.setSelected(true);
    DefaultFormBuilder b = new DefaultFormBuilder(
            new FormLayout("left:20dlu, 4dlu, left:pref, 4dlu, fill:60dlu, 4dlu, fill:0dlu", ""), main);
    b.append(keywords, 5);
    b.nextLine();
    b.append(new JPanel());
    b.append(Globals.lang("Field to group by") + ":");
    b.append(field);
    b.nextLine();
    b.append(new JPanel());
    b.append(Globals.lang("Characters to ignore") + ":");
    b.append(remove);
    b.nextLine();
    b.append(new JPanel());
    b.append(nd);
    b.append(deliminator);
    b.nextLine();
    b.append(authors, 5);
    b.nextLine();
    b.append(editors, 5);
    b.nextLine();

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

    // Layout starts here.
    /*main.setLayout(gbl);
    opt.setLayout(gbl);
    main.setBorder(BorderFactory.createTitledBorder(BorderFactory
        .createEtchedBorder(), Globals.lang("Group properties")));
    // Main panel:
    con.weightx = 0;
    con.gridwidth = 1;
    con.insets = new Insets(3, 5, 3, 5);
    con.anchor = GridBagConstraints.EAST;
    con.fill = GridBagConstraints.NONE;
    con.gridx = 0;
    con.gridy = 0;
    gbl.setConstraints(nf, con);
    main.add(nf);
    con.gridy = 1;
    gbl.setConstraints(nr, con);
    main.add(nr);
    con.gridy = 2;
    gbl.setConstraints(nd, con);
    main.add(nd);
    con.weightx = 1;
    con.anchor = GridBagConstraints.WEST;
    con.fill = GridBagConstraints.HORIZONTAL;
    con.gridy = 0;
    con.gridx = 1;
    gbl.setConstraints(field, con);
    main.add(field);
    con.gridy = 1;
    gbl.setConstraints(remove, con);
    main.add(remove);
    con.gridy = 2;
    gbl.setConstraints(deliminator, con);
    main.add(deliminator);
    // Option buttons:
    con.gridx = GridBagConstraints.RELATIVE;
    con.gridy = GridBagConstraints.RELATIVE;
    con.weightx = 1;
    con.gridwidth = 1;
    con.anchor = GridBagConstraints.EAST;
    con.fill = GridBagConstraints.NONE;
    gbl.setConstraints(ok, con);
    opt.add(ok);
    con.anchor = GridBagConstraints.WEST;
    con.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(cancel, con);
    opt.add(cancel);*/
    main.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    opt.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    getContentPane().add(main, BorderLayout.CENTER);
    getContentPane().add(opt, BorderLayout.SOUTH);
    // pack();
    updateComponents();
    pack();
    Util.placeDialog(this, frame);
}

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

License:Open Source License

public FileSortTab(JabRefPreferences prefs) {
    this.prefs = prefs;
    FormLayout layout = new FormLayout("4dlu, left:pref, 4dlu, fill:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.leadingColumnOffset(1);/*  www. ja v  a 2 s.  co m*/

    // EXPORT SORT ORDER
    // create Components
    exportInOriginalOrder = new JRadioButton(Localization.lang("Export entries in their original order"));
    exportInTableOrder = new JRadioButton(Localization.lang("Export in current table sort order"));
    exportInSpecifiedOrder = new JRadioButton(Localization.lang("Export entries ordered as specified"));

    ButtonGroup buttonGroup = new ButtonGroup();
    buttonGroup.add(exportInOriginalOrder);
    buttonGroup.add(exportInTableOrder);
    buttonGroup.add(exportInSpecifiedOrder);

    ActionListener listener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            boolean selected = e.getSource() == exportInSpecifiedOrder;
            exportOrderPanel.setEnabled(selected);
        }
    };
    exportInOriginalOrder.addActionListener(listener);
    exportInTableOrder.addActionListener(listener);
    exportInSpecifiedOrder.addActionListener(listener);

    // create GUI
    builder.appendSeparator(Localization.lang("Export sort order"));
    builder.append(exportInOriginalOrder, 1);
    builder.nextLine();
    builder.append(exportInTableOrder, 1);
    builder.nextLine();
    builder.append(exportInSpecifiedOrder, 1);
    builder.nextLine();

    exportOrderPanel = new SaveOrderConfigDisplay();
    builder.append(exportOrderPanel.getPanel());
    builder.nextLine();

    // COMBINE EVERYTHING
    JPanel 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.FileTab.java

License:Open Source License

public FileTab(JabRefFrame frame, JabRefPreferences prefs) {
    this.prefs = prefs;
    this.frame = frame;

    openLast = new JCheckBox(Localization.lang("Open last edited databases at startup"));
    backup = new JCheckBox(Localization.lang("Backup old file when saving"));
    autoSave = new JCheckBox(Localization.lang("Autosave"));
    promptBeforeUsingAutoSave = new JCheckBox(
            Localization.lang("Prompt before recovering a database from an autosave file"));
    autoSaveInterval = new JSpinner(new SpinnerNumberModel(1, 1, 60, 1));
    valueDelimiter = new JComboBox<>(new String[] { Localization.lang("Quotes") + ": \", \"",
            Localization.lang("Curly Brackets") + ": {, }" });
    resolveStringsAll = new JRadioButton(Localization.lang("Resolve strings for all fields except") + ":");
    resolveStringsStandard = new JRadioButton(
            Localization.lang("Resolve strings for standard BibTeX fields only"));
    ButtonGroup bg = new ButtonGroup();
    bg.add(resolveStringsAll);//from  www  .  ja  v a 2s .c  o  m
    bg.add(resolveStringsStandard);

    // This is sort of a quick hack
    newlineSeparator = new JComboBox<>(new String[] { "CR", "CR/LF", "LF" });

    reformatFileOnSaveAndExport = new JCheckBox(
            Localization.lang("Always reformat .bib file on save and export"));

    bracesAroundCapitalsFields = new JTextField(25);
    nonWrappableFields = new JTextField(25);
    doNotResolveStringsFor = new JTextField(30);

    autoSave.addChangeListener(e -> {
        autoSaveInterval.setEnabled(autoSave.isSelected());
        promptBeforeUsingAutoSave.setEnabled(autoSave.isSelected());
    });

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

    builder.appendSeparator(Localization.lang("General"));
    builder.nextLine();
    builder.append(openLast, 3);
    builder.nextLine();
    builder.append(backup, 3);
    builder.nextLine();

    JLabel label = new JLabel(
            Localization.lang("Store the following fields with braces around capital letters") + ":");
    builder.append(label);
    builder.append(bracesAroundCapitalsFields);
    builder.nextLine();
    label = new JLabel(Localization.lang("Do not wrap the following fields when saving") + ":");
    builder.append(label);
    builder.append(nonWrappableFields);
    builder.nextLine();
    builder.append(resolveStringsStandard, 3);
    builder.nextLine();
    builder.append(resolveStringsAll);
    builder.append(doNotResolveStringsFor);
    builder.nextLine();

    JLabel lab = new JLabel(Localization.lang("Newline separator") + ":");
    builder.append(lab);
    builder.append(newlineSeparator);
    builder.nextLine();

    builder.append(reformatFileOnSaveAndExport, 3);
    builder.nextLine();

    builder.appendSeparator(Localization.lang("Autosave"));
    builder.append(autoSave, 1);
    JButton help = new HelpAction(HelpFiles.autosaveHelp).getHelpButton();
    help.setPreferredSize(new Dimension(24, 24));
    JPanel hPan = new JPanel();
    hPan.setLayout(new BorderLayout());
    hPan.add(help, BorderLayout.EAST);
    builder.append(hPan);
    builder.nextLine();
    builder.append(Localization.lang("Autosave interval (minutes)") + ":");
    builder.append(autoSaveInterval);
    builder.nextLine();
    builder.append(promptBeforeUsingAutoSave);
    builder.nextLine();

    JPanel 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.GeneralTab.java

License:Open Source License

public GeneralTab(JabRefPreferences prefs) {
    this.prefs = prefs;
    setLayout(new BorderLayout());

    biblatexMode = new JComboBox<>(BibDatabaseMode.values());
    biblatexMode.setRenderer(new DefaultBibModeRenderer());
    allowEditing = new JCheckBox(Localization.lang("Allow editing in table cells"));

    memoryStick = new JCheckBox(
            Localization.lang("Load and Save preferences from/to jabref.xml on start-up (memory stick mode)"));
    defSort = new JCheckBox(Localization.lang("Sort automatically"));
    ctrlClick = new JCheckBox(Localization.lang("Open right-click menu with Ctrl+left button"));
    useOwner = new JCheckBox(Localization.lang("Mark new entries with owner name") + ':');
    updateTimeStamp = new JCheckBox(Localization.lang("Update timestamp on modification"));
    useTimeStamp = new JCheckBox(Localization.lang("Mark new entries with addition date") + ". "
            + Localization.lang("Date format") + ':');
    useTimeStamp.addChangeListener(e -> updateTimeStamp.setEnabled(useTimeStamp.isSelected()));
    overwriteOwner = new JCheckBox(Localization.lang("Overwrite"));
    overwriteTimeStamp = new JCheckBox(Localization.lang("Overwrite"));
    overwriteOwner.setToolTipText(//  w w w .  j  a  va 2 s  . com
            Localization.lang("If a pasted or imported entry already has " + "the field set, overwrite."));
    overwriteTimeStamp.setToolTipText(
            Localization.lang("If a pasted or imported entry already has " + "the field set, overwrite."));
    keyDuplicateWarningDialog = new JCheckBox(
            Localization.lang("Show warning dialog when a duplicate BibTeX key is entered"));
    keyEmptyWarningDialog = new JCheckBox(
            Localization.lang("Show warning dialog when an empty BibTeX key is entered"));
    enforceLegalKeys = new JCheckBox(Localization.lang("Enforce legal characters in BibTeX keys"));
    confirmDelete = new JCheckBox(Localization.lang("Show confirmation dialog when deleting entries"));

    markImportedEntries = new JCheckBox(Localization.lang("Mark entries imported into an existing database"));
    unmarkAllEntriesBeforeImporting = new JCheckBox(
            Localization.lang("Unmark all entries before importing new entries into an existing database"));
    defOwnerField = new JTextField();
    timeStampFormat = new JTextField();
    timeStampField = new JTextField();
    inspectionWarnDupli = new JCheckBox(
            Localization.lang("Warn about unresolved duplicates when closing inspection window"));

    encodings = new JComboBox<>();
    encodings.setModel(new DefaultComboBoxModel<>(Encodings.ENCODINGS));

    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(Localization.lang("General"));
    builder.nextLine();
    builder.append(inspectionWarnDupli, 13);
    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 help = new HelpAction(HelpFiles.ownerHelp).getHelpButton();
    builder.append(help);
    builder.nextLine();

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

    help = new HelpAction(HelpFiles.timeStampHelp).getHelpButton();
    builder.append(help);
    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(Localization.lang("Language") + ':');
    builder.append(lab, 3);
    builder.append(language);
    builder.nextLine();
    lab = new JLabel(Localization.lang("Default encoding") + ':');
    builder.append(lab, 3);
    builder.append(encodings);

    builder.nextLine();
    builder.appendSeparator(Localization.lang("Default bibliography mode"));
    builder.append(new JPanel());
    builder.append(biblatexMode);

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

}

From source file:net.sf.jabref.labelPattern.ResolveDuplicateLabelDialog.java

License:Open Source License

public ResolveDuplicateLabelDialog(BasePanel panel, String key, List<BibtexEntry> entries) {
    diag = new JDialog(panel.frame(), Globals.lang("Duplicate BibTeX key"), true);

    DefaultFormBuilder b = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:pref", ""));
    b.append(new JLabel(Globals.lang("Duplicate key") + ": " + key), 3);
    b.nextLine();/*  www.  jav  a 2  s.  com*/
    b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    boolean first = true;
    for (BibtexEntry entry : entries) {
        JCheckBox cb = new JCheckBox(Globals.lang("Generate key"), !first);
        //JPanel pan = new JPanel();
        //pan.setLayout(new BorderLayout());
        //pan.add(cb, BorderLayout.NORTH);
        //cb.add(new JPanel(), BorderLayout.CENTER);
        b.append(cb);
        PreviewPanel pp = new PreviewPanel(null, entry, null, new MetaData(),
                ResolveDuplicateLabelDialog.layout);
        pp.setPreferredSize(new Dimension(800, 90));
        //pp.setBorder(BorderFactory.createEtchedBorder());
        b.append(new JScrollPane(pp));
        b.nextLine();
        cbs.add(cb);
        first = false;
    }

    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.addGlue();
    bb.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    diag.getContentPane().add(b.getPanel(), BorderLayout.CENTER);
    diag.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);

    diag.pack();

    ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            okPressed = true;
            diag.dispose();
        }
    });
    cancel.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            diag.dispose();
        }
    });

    AbstractAction closeAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            diag.dispose();
        }
    };
    ActionMap am = b.getPanel().getActionMap();
    InputMap im = b.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    im.put(Globals.prefs.getKey("Close dialog"), "close");
    am.put("close", closeAction);
}

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

License:Open Source License

public NetworkTab(JabRefFrame frame, JabRefPreferences prefs) {
    _prefs = prefs;//from  w w w . ja v  a  2  s . c  o  m

    setLayout(new BorderLayout());

    useProxy = new JCheckBox(Globals.lang("Use custom proxy configuration"));

    defProxyHostname = new JTextField();
    defProxyHostname.setEnabled(false);
    defProxyPort = new JTextField();
    defProxyPort.setEnabled(false);

    Insets marg = new Insets(0, 12, 3, 0);
    useProxy.setMargin(marg);
    defProxyPort.setMargin(marg);

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

        @Override
        public void stateChanged(ChangeEvent event) {
            //useProxy.setEnabled(useProxy.isSelected());
            defProxyHostname.setEnabled(useProxy.isSelected());
            defProxyPort.setEnabled(useProxy.isSelected());
        }
    });

    FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:150dlu, 4dlu, fill:pref", "");
    //("right:pref, 10dlu, 50dlu, 5dlu, fill:60dlu", "");
    //("10dlu, left:50dlu, 4dlu, fill:pref", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    builder.appendSeparator(Globals.lang("Network"));
    builder.nextLine();
    builder.append(useProxy, 5);
    builder.nextLine();
    builder.append(new JPanel());
    JLabel lap = new JLabel(Globals.lang("Host") + ':');
    builder.append(lap);
    builder.append(defProxyHostname);
    builder.nextLine();
    builder.append(new JPanel());
    JLabel lap2 = new JLabel(Globals.lang("Port") + ':');
    builder.append(lap2);
    //builder.append(new JPanel());
    builder.append(defProxyPort);

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

}

From source file:net.sf.jabref.oo.AdvancedCiteDialog.java

License:Open Source License

public AdvancedCiteDialog(JabRefFrame parent) {
    diag = new JDialog(parent, Globals.lang("Cite special"), true);
    ButtonGroup bg = new ButtonGroup();
    bg.add(inPar);// w  w  w. j a  va 2  s. com
    bg.add(inText);
    if (AdvancedCiteDialog.defaultInPar) {
        inPar.setSelected(true);
    } else {
        inText.setSelected(true);
    }

    inPar.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent changeEvent) {
            AdvancedCiteDialog.defaultInPar = inPar.isSelected();
        }
    });

    DefaultFormBuilder b = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:pref", ""));
    b.append(inPar, 3);
    b.nextLine();
    b.append(inText, 3);
    b.nextLine();
    b.append(Globals.lang("Extra information (e.g. page number)") + ":");
    b.append(pageInfo);

    b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    diag.getContentPane().add(b.getPanel(), BorderLayout.CENTER);

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

    diag.pack();

    Action okAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            okPressed = true;
            diag.dispose();
        }
    };
    ok.addActionListener(okAction);
    pageInfo.addActionListener(okAction);
    inPar.addActionListener(okAction);
    inText.addActionListener(okAction);
    Action cancelAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            okPressed = false;
            diag.dispose();
        }
    };
    cancel.addActionListener(cancelAction);
    b.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(Globals.prefs.getKey("Close dialog"),
            "close");
    b.getPanel().getActionMap().put("close", cancelAction);

}

From source file:net.sf.jabref.oo.StyleSelectDialog.java

License:Open Source License

private void init(String initSelection) {
    this.initSelection = initSelection;

    ButtonGroup bg = new ButtonGroup();
    bg.add(useDefaultAuthoryear);/* w ww  .  j  a  va2s  .  c  om*/
    bg.add(useDefaultNumerical);
    bg.add(chooseDirectly);
    bg.add(setDirectory);
    if (Globals.prefs.getBoolean("ooUseDefaultAuthoryearStyle")) {
        useDefaultAuthoryear.setSelected(true);
    } else if (Globals.prefs.getBoolean("ooUseDefaultNumericalStyle")) {
        useDefaultNumerical.setSelected(true);
    } else {
        if (Globals.prefs.getBoolean("ooChooseStyleDirectly")) {
            chooseDirectly.setSelected(true);
        } else {
            setDirectory.setSelected(true);
        }
    }

    directFile.setText(Globals.prefs.get("ooDirectFile"));
    styleDir.setText(Globals.prefs.get("ooStyleDirectory"));
    directFile.setEditable(false);
    styleDir.setEditable(false);

    popup.add(edit);

    BrowseAction dfBrowse = BrowseAction.buildForFile(directFile, directFile);
    browseDirectFile.addActionListener(dfBrowse);

    BrowseAction sdBrowse = BrowseAction.buildForDir(styleDir, setDirectory);
    browseStyleDir.addActionListener(sdBrowse);

    showDefaultAuthoryearStyle.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            displayDefaultStyle(true);
        }
    });
    showDefaultNumericalStyle.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            displayDefaultStyle(false);
        }
    });
    // Add action listener to "Edit" menu item, which is supposed to open the style file in an external editor:
    edit.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            int i = table.getSelectedRow();
            if (i == -1) {
                return;
            }
            ExternalFileType type = Globals.prefs.getExternalFileTypeByExt("jstyle");
            String link = tableModel.getElementAt(i).getFile().getPath();
            try {
                if (type != null) {
                    Util.openExternalFileAnyFormat(new MetaData(), link, type);
                } else {
                    Util.openExternalFileUnknown(frame, null, new MetaData(), link,
                            new UnknownExternalFileType("jstyle"));
                }
            } catch (IOException e) {
                e.printStackTrace();

            }
        }
    });

    diag = new JDialog(frame, Globals.lang("Styles"), true);

    styles = new BasicEventList<OOBibStyle>();
    EventList<OOBibStyle> sortedStyles = new SortedList<OOBibStyle>(styles);

    // Create a preview panel for previewing styles:
    preview = new PreviewPanel(null, new MetaData(), "");
    // Use the test entry from the Preview settings tab in Preferences:
    preview.setEntry(prevEntry);//PreviewPrefsTab.getTestEntry());

    tableModel = new EventTableModel<OOBibStyle>(sortedStyles, new StyleTableFormat());
    table = new JTable(tableModel);
    TableColumnModel cm = table.getColumnModel();
    cm.getColumn(0).setPreferredWidth(100);
    cm.getColumn(1).setPreferredWidth(200);
    cm.getColumn(2).setPreferredWidth(80);
    selectionModel = new EventSelectionModel<OOBibStyle>(sortedStyles);
    table.setSelectionModel(selectionModel);
    table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    table.addMouseListener(new MouseAdapter() {

        @Override
        public void mousePressed(MouseEvent mouseEvent) {
            if (mouseEvent.isPopupTrigger()) {
                tablePopup(mouseEvent);
            }
        }

        @Override
        public void mouseReleased(MouseEvent mouseEvent) {
            if (mouseEvent.isPopupTrigger()) {
                tablePopup(mouseEvent);
            }
        }
    });

    selectionModel.getSelected().addListEventListener(new EntrySelectionListener());

    styleDir.getDocument().addDocumentListener(new DocumentListener() {

        @Override
        public void insertUpdate(DocumentEvent documentEvent) {
            readStyles();
            setDirectory.setSelected(true);
        }

        @Override
        public void removeUpdate(DocumentEvent documentEvent) {
            readStyles();
            setDirectory.setSelected(true);
        }

        @Override
        public void changedUpdate(DocumentEvent documentEvent) {
            readStyles();
            setDirectory.setSelected(true);
        }
    });
    directFile.getDocument().addDocumentListener(new DocumentListener() {

        @Override
        public void insertUpdate(DocumentEvent documentEvent) {
            chooseDirectly.setSelected(true);
        }

        @Override
        public void removeUpdate(DocumentEvent documentEvent) {
            chooseDirectly.setSelected(true);
        }

        @Override
        public void changedUpdate(DocumentEvent documentEvent) {
            chooseDirectly.setSelected(true);
        }
    });

    contentPane.setTopComponent(new JScrollPane(table));
    contentPane.setBottomComponent(preview);

    readStyles();

    DefaultFormBuilder b = new DefaultFormBuilder(
            new FormLayout("fill:pref,4dlu,fill:150dlu,4dlu,fill:pref", ""));
    b.append(useDefaultAuthoryear, 3);
    b.append(showDefaultAuthoryearStyle);
    b.nextLine();
    b.append(useDefaultNumerical, 3);
    b.append(showDefaultNumericalStyle);
    b.nextLine();
    b.append(chooseDirectly);
    b.append(directFile);
    b.append(browseDirectFile);
    b.nextLine();
    b.append(setDirectory);
    b.append(styleDir);
    b.append(browseStyleDir);
    b.nextLine();
    DefaultFormBuilder b2 = new DefaultFormBuilder(
            new FormLayout("fill:1dlu:grow", "fill:pref, fill:pref, fill:270dlu:grow"));

    b2.nextLine();
    b2.append(new JLabel(
            "<html>" + Globals.lang("This is the list of available styles. Select the one you want to use.")
                    + "</html>"));
    b2.nextLine();
    b2.append(contentPane);
    b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    b2.getPanel().setBorder(BorderFactory.createEmptyBorder(15, 5, 5, 5));
    diag.add(b.getPanel(), BorderLayout.NORTH);
    diag.add(b2.getPanel(), BorderLayout.CENTER);

    AbstractAction okListener = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent event) {
            if (!useDefaultAuthoryear.isSelected() && !useDefaultNumerical.isSelected()) {
                if (chooseDirectly.isSelected()) {
                    File f = new File(directFile.getText());
                    if (!f.exists()) {
                        JOptionPane.showMessageDialog(diag,
                                Globals.lang(
                                        "You must select either a valid style file, or use a default style."),
                                Globals.lang("Style selection"), JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                } else {
                    if ((table.getRowCount() == 0) || (table.getSelectedRowCount() == 0)) {
                        JOptionPane.showMessageDialog(diag,
                                Globals.lang(
                                        "You must select either a valid style file, or use a default style."),
                                Globals.lang("Style selection"), JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                }
            }
            okPressed = true;
            storeSettings();
            diag.dispose();
        }
    };
    ok.addActionListener(okListener);

    Action cancelListener = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent event) {
            diag.dispose();
        }
    };
    cancel.addActionListener(cancelListener);

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

    ActionMap am = bb.getPanel().getActionMap();
    InputMap im = bb.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    im.put(Globals.prefs.getKey("Close dialog"), "close");
    am.put("close", cancelListener);
    im.put(KeyStroke.getKeyStroke("ENTER"), "enterOk");
    am.put("enterOk", okListener);

    diag.pack();
    diag.setLocationRelativeTo(frame);
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            contentPane.setDividerLocation(contentPane.getSize().height - 150);
        }
    });

}