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

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

Introduction

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

Prototype

public DefaultFormBuilder(FormLayout layout) 

Source Link

Document

Constructs a DefaultFormBuilder for the given layout.

Usage

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

License:Open Source License

private void initSettingsPanel() {
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", ""));
    builder.append(new JLabel(Globals.lang("Path to gnuclient or emacsclient").concat(":")));
    builder.append(emacsPath);/*from w w  w.  ja  va  2s . com*/
    BrowseAction action = BrowseAction.buildForFile(emacsPath);
    JButton browse = new JButton(Globals.lang("Browse"));
    browse.addActionListener(action);
    builder.append(browse);
    builder.nextLine();
    builder.append(Globals.lang("Additional parameters").concat(":"));
    builder.append(additionalParams);
    builder.nextLine();
    builder.append(Globals.lang("Use EMACS 23 insertion string").concat(":"));
    builder.append(useEmacs23);
    builder.nextLine();
    builder.append(Globals.lang("Cite command") + ":");
    builder.append(citeCommand);
    settings = builder.getPanel();
}

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

License:Open Source License

private void initSettingsPanel() {
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", ""));
    builder.append(new JLabel(Globals.lang("Path to LatexEditor (LEd.exe)") + ":"));
    builder.append(ledPath);/*from  w w w. j  a  va 2s  .com*/
    BrowseAction action = BrowseAction.buildForFile(ledPath);
    JButton browse = new JButton(Globals.lang("Browse"));
    browse.addActionListener(action);
    builder.append(browse);
    builder.nextLine();
    builder.append(Globals.lang("Cite command") + ":");
    builder.append(citeCommand);
    settings = builder.getPanel();
}

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

License:Open Source License

private void initSettingsPanel() {
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", ""));

    builder.append(new JLabel(Globals.lang("Path to Vim") + ":"));
    builder.append(vimPath);//from  w w  w.  j av  a 2  s. c  o m
    BrowseAction action = BrowseAction.buildForFile(vimPath);
    JButton browse = new JButton(Globals.lang("Browse"));
    browse.addActionListener(action);
    builder.append(browse);
    builder.nextLine();
    builder.append(Globals.lang("Vim Server Name") + ":");
    builder.append(vimServer);
    builder.nextLine();
    builder.append(Globals.lang("Cite command") + ":");
    builder.append(citeCommand);
    settings = builder.getPanel();
}

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

License:Open Source License

private void initSettingsPanel() {
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", ""));
    builder.append(new JLabel(Globals.lang("Path to WinEdt.exe") + ":"));
    builder.append(winEdtPath);/*from  ww  w.  j av a2  s  .com*/
    BrowseAction action = BrowseAction.buildForFile(winEdtPath);
    JButton browse = new JButton(Globals.lang("Browse"));
    browse.addActionListener(action);
    builder.append(browse);
    builder.nextLine();
    builder.append(Globals.lang("Cite command") + ":");
    builder.append(citeCommand);
    settings = builder.getPanel();
}

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

License:Open Source License

public ExternalTab(JabRefFrame frame, PrefsDialog3 prefsDiag, JabRefPreferences prefs, HelpDialog helpDialog) {
    _prefs = prefs;/*from  w  w w. ja v a 2  s.  com*/
    _frame = frame;
    setLayout(new BorderLayout());

    psDir = new JTextField(25);
    pdfDir = new JTextField(25);
    fileDir = new JTextField(25);
    bibLocationAsFileDir = new JCheckBox(Globals.lang("Allow file links relative to each bib file's location"));
    bibLocAsPrimaryDir = new JCheckBox(Globals.lang("Use the bib file location as primary file directory"));
    bibLocAsPrimaryDir.setToolTipText(Globals.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.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent changeEvent) {
            bibLocAsPrimaryDir.setEnabled(bibLocationAsFileDir.isSelected());
        }
    });
    JButton editFileTypes = new JButton(Globals.lang("Manage external file types"));
    runAutoFileSearch = new JCheckBox(
            Globals.lang("When opening file link, search for matching file if no link is defined"));
    allowFileAutoOpenBrowse = new JCheckBox(
            Globals.lang("Automatically open browse dialog when creating new file link"));
    regExpTextField = new JTextField(25);
    useRegExpComboBox = new JRadioButton(Globals.lang("Use Regular Expression Search"));
    ItemListener regExpListener = new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            regExpTextField.setEditable(useRegExpComboBox.isSelected());
        }
    };
    useRegExpComboBox.addItemListener(regExpListener);

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

    ButtonGroup bg = new ButtonGroup();
    bg.add(matchExactKeyOnly);
    bg.add(matchStartsWithKey);
    bg.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(Globals.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(Globals.lang("Main file directory") + ':');
    builder.append(lab);
    builder.append(fileDir);
    browse = BrowseAction.buildForDir(_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);

    HelpAction helpAction = new HelpAction(helpDialog, GUIGlobals.regularExpressionSearchHelp,
            Globals.lang("Help on Regular Expression Search"), GUIGlobals.getIconUrl("helpSmall"));
    builder.append(helpAction.getIconButton());
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(runAutoFileSearch, 3);
    builder.nextLine();
    builder.append(new JPanel());
    builder.append(allowFileAutoOpenBrowse);
    builder.nextLine();

    builder.appendSeparator(Globals.lang("Sending of emails"));
    builder.append(new JPanel());
    lab = new JLabel(Globals.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(Globals.lang("Automatically open folders of attached files"));
    builder.append(openFoldersOfAttachedFiles);
    builder.nextLine();

    builder.appendSeparator(Globals.lang("Legacy file fields"));
    pan = new JPanel();
    builder.append(pan);
    builder.append(new JLabel("<html>" + Globals.lang("Note that these settings are used for the legacy "
            + "<b>pdf</b> and <b>ps</b> fields only.<br>For most users, setting the <b>Main file directory</b> "
            + "above should be sufficient.") + "</html>"), 5);
    builder.nextLine();
    pan = new JPanel();
    builder.append(pan);
    lab = new JLabel(Globals.lang("Main PDF directory") + ':');
    builder.append(lab);
    builder.append(pdfDir);
    browse = BrowseAction.buildForDir(_frame, pdfDir);
    builder.append(new JButton(browse));
    builder.nextLine();

    pan = new JPanel();
    builder.append(pan);
    lab = new JLabel(Globals.lang("Main PS directory") + ':');
    builder.append(lab);
    builder.append(psDir);
    browse = BrowseAction.buildForDir(_frame, psDir);
    builder.append(new JButton(browse));
    builder.nextLine();
    builder.appendSeparator(Globals.lang("External programs"));

    builder.nextLine();

    JPanel butpan = new JPanel();
    butpan.setLayout(new GridLayout(2, 3));
    addSettingsButton(new PushToLyx(), butpan);
    addSettingsButton(new PushToEmacs(), butpan);
    addSettingsButton(new PushToWinEdt(), butpan);
    addSettingsButton(new PushToVim(), butpan);
    addSettingsButton(new PushToLatexEditor(), butpan);
    addSettingsButton(new PushToTeXstudio(), butpan);
    builder.append(new JPanel());
    builder.append(butpan, 3);

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

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

}

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

License:Open Source License

public FileSortTab(JabRefFrame frame, 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.  com

    { // SAVE SORT ORDER
      // create Components
        saveInOriginalOrder = new JRadioButton(Globals.lang("Save entries in their original order"));
        saveInTableOrder = new JRadioButton(Globals.lang("Save in current table sort order"));
        saveInSpecifiedOrder = new JRadioButton(Globals.lang("Save entries ordered as specified"));

        ButtonGroup bg = new ButtonGroup();
        bg.add(saveInOriginalOrder);
        bg.add(saveInTableOrder);
        bg.add(saveInSpecifiedOrder);

        ActionListener listener = new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                boolean selected = e.getSource() == saveInSpecifiedOrder;
                savePriSort.setEnabled(selected);
                savePriField.setEnabled(selected);
                savePriDesc.setEnabled(selected);
                saveSecSort.setEnabled(selected);
                saveSecField.setEnabled(selected);
                saveSecDesc.setEnabled(selected);
                saveTerSort.setEnabled(selected);
                saveTerField.setEnabled(selected);
                saveTerDesc.setEnabled(selected);
            }
        };
        saveInOriginalOrder.addActionListener(listener);
        saveInTableOrder.addActionListener(listener);
        saveInSpecifiedOrder.addActionListener(listener);

        ArrayList<String> v = new ArrayList<String>(Arrays.asList(BibtexFields.getAllFieldNames()));
        v.add(BibtexFields.KEY_FIELD);
        Collections.sort(v);
        String[] allPlusKey = v.toArray(new String[v.size()]);
        savePriSort = new JComboBox(allPlusKey);
        saveSecSort = new JComboBox(allPlusKey);
        saveTerSort = new JComboBox(allPlusKey);

        savePriField = new JTextField(10);
        saveSecField = new JTextField(10);
        saveTerField = new JTextField(10);

        savePriSort.insertItemAt(Globals.lang("<select>"), 0);
        saveSecSort.insertItemAt(Globals.lang("<select>"), 0);
        saveTerSort.insertItemAt(Globals.lang("<select>"), 0);

        savePriSort.addActionListener(new ActionListener() {

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

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

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

        savePriDesc = new JCheckBox(Globals.lang("Descending"));
        saveSecDesc = new JCheckBox(Globals.lang("Descending"));
        saveTerDesc = new JCheckBox(Globals.lang("Descending"));

        // create GUI
        JLabel lab;

        builder.appendSeparator(Globals.lang("Save sort order"));
        builder.append(saveInOriginalOrder, 1);
        builder.nextLine();
        builder.append(saveInTableOrder, 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);
        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();
    }

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

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

        ActionListener listener = new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                boolean selected = e.getSource() == exportInSpecifiedOrder;
                exportPriSort.setEnabled(selected);
                exportPriField.setEnabled(selected);
                exportPriDesc.setEnabled(selected);
                exportSecSort.setEnabled(selected);
                exportSecField.setEnabled(selected);
                exportSecDesc.setEnabled(selected);
                exportTerSort.setEnabled(selected);
                exportTerField.setEnabled(selected);
                exportTerDesc.setEnabled(selected);
            }
        };
        exportInOriginalOrder.addActionListener(listener);
        exportInTableOrder.addActionListener(listener);
        exportInSpecifiedOrder.addActionListener(listener);

        ArrayList<String> v = new ArrayList<String>(Arrays.asList(BibtexFields.getAllFieldNames()));
        v.add(BibtexFields.KEY_FIELD);
        Collections.sort(v);
        String[] allPlusKey = v.toArray(new String[v.size()]);
        exportPriSort = new JComboBox(allPlusKey);
        exportSecSort = new JComboBox(allPlusKey);
        exportTerSort = new JComboBox(allPlusKey);

        exportPriField = new JTextField(10);
        exportSecField = new JTextField(10);
        exportTerField = new JTextField(10);

        exportPriSort.insertItemAt(Globals.lang("<select>"), 0);
        exportSecSort.insertItemAt(Globals.lang("<select>"), 0);
        exportTerSort.insertItemAt(Globals.lang("<select>"), 0);

        exportPriSort.addActionListener(new ActionListener() {

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

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

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

        exportPriDesc = new JCheckBox(Globals.lang("Descending"));
        exportSecDesc = new JCheckBox(Globals.lang("Descending"));
        exportTerDesc = new JCheckBox(Globals.lang("Descending"));

        // create GUI
        JLabel lab;

        builder.appendSeparator(Globals.lang("Export sort order"));
        builder.append(exportInOriginalOrder, 1);
        builder.nextLine();
        builder.append(exportInTableOrder, 1);
        builder.nextLine();
        builder.append(exportInSpecifiedOrder, 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);
        lab = new JLabel(Globals.lang("Primary sort criterion"));
        builder2.append(lab);
        builder2.append(exportPriSort);
        builder2.append(exportPriField);
        builder2.append(exportPriDesc);
        builder2.nextLine();
        lab = new JLabel(Globals.lang("Secondary sort criterion"));
        builder2.append(lab);
        builder2.append(exportSecSort);
        builder2.append(exportSecField);
        builder2.append(exportSecDesc);
        builder2.nextLine();
        lab = new JLabel(Globals.lang("Tertiary sort criterion"));
        builder2.append(lab);
        builder2.append(exportTerSort);
        builder2.append(exportTerField);
        builder2.append(exportTerDesc);

        builder.append(builder2.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.FileTab.java

License:Open Source License

public FileTab(JabRefFrame frame, JabRefPreferences prefs) {
    _prefs = prefs;/*ww  w  . ja v 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 .j  a v  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.GroupDialog.java

License:Open Source License

/**
 * Shows a group add/edit dialog.//from  ww w  .  j a va 2 s  . 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//  www .  j a va 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);
}