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

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

Introduction

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

Prototype

public JLabel append(String textWithMnemonic) 

Source Link

Document

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

Usage

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

License:Open Source License

private void initPanels() {
    // collect the names of all open databases
    int len = parentTabbedPane.getTabCount();
    int toSelect = -1;
    for (int i = 0; i < len; i++) {
        dbChooser.addItem(parentTabbedPane.getTitleAt(i));
        if (parentFrame.getBasePanelAt(i) == parentFrame.getCurrentBasePanel()) {
            toSelect = i;//  ww w.j ava  2s  .  c o m
        }
    }
    if (toSelect >= 0) {
        dbChooser.setSelectedIndex(toSelect);
    }

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

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

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

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

License:Open Source License

public ColorSetupPanel() {

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

    buttons.add(new ColorButton("tableText", Globals.lang("Table text color")));
    buttons.add(new ColorButton("markedEntryBackground0", Globals.lang("Marking color %0", "1")));
    buttons.add(new ColorButton("tableBackground", Globals.lang("Table background color")));
    buttons.add(new ColorButton("markedEntryBackground1", Globals.lang("Marking color %0", "2")));
    buttons.add(/*from   w w  w.  j  a v a  2  s  .c o  m*/
            new ColorButton("tableReqFieldBackground", Globals.lang("Background color for required fields")));
    buttons.add(new ColorButton("markedEntryBackground2", Globals.lang("Marking color %0", "3")));
    buttons.add(
            new ColorButton("tableOptFieldBackground", Globals.lang("Background color for optional fields")));
    buttons.add(new ColorButton("markedEntryBackground3", Globals.lang("Marking color %0", "4")));
    buttons.add(
            new ColorButton("incompleteEntryBackground", Globals.lang("Color for marking incomplete entries")));
    buttons.add(new ColorButton("markedEntryBackground4", Globals.lang("Marking color %0", "5")));
    buttons.add(new ColorButton("gridColor", Globals.lang("Table grid color")));
    buttons.add(new ColorButton("markedEntryBackground5", Globals.lang("Import marking color")));

    buttons.add(new ColorButton("fieldEditorTextColor", Globals.lang("Entry editor font color")));
    buttons.add(new ColorButton("validFieldBackgroundColor", Globals.lang("Entry editor background color")));
    buttons.add(new ColorButton("activeFieldEditorBackgroundColor",
            Globals.lang("Entry editor active background color")));
    buttons.add(
            new ColorButton("invalidFieldBackgroundColor", Globals.lang("Entry editor invalid field color")));

    for (ColorButton but : buttons) {
        builder.append(but);
        builder.append(but.getDefaultButton());
        builder.append(but.getName());
        but.addActionListener(new ColorButtonListener(but));

    }

    setLayout(new BorderLayout());
    add(builder.getPanel(), BorderLayout.CENTER);

    setValues();

}

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

License:Open Source License

private void init(JFrame parent) {

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

    setupSortOrderConfiguration();/*from w ww  . j a v  a  2  s .  c  om*/

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

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

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

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

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

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

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

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

    AbstractAction closeAction = new AbstractAction() {

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

    ok.addActionListener(new ActionListener() {

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

    cancel.addActionListener(new ActionListener() {

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

}

From source file:net.sf.jabref.gui.entryeditor.EntryEditorTab.java

License:Open Source License

private void setupPanel(JabRefFrame frame, BasePanel bPanel, boolean addKeyField, boolean compressed,
        String title) {/*from w  ww  . ja v a 2  s .  c  o  m*/

    setupKeyBindings(panel.getInputMap(JComponent.WHEN_FOCUSED), panel.getActionMap());

    panel.setName(title);
    // Use the title for the scrollPane, too.
    // This enables the correct execution of EntryEditor.setVisiblePanel(String name).
    scrollPane.setName(title);

    int fieldsPerRow = compressed ? 2 : 1;

    String colSpec = compressed
            ? "fill:pref, 1dlu, fill:10dlu:grow, 1dlu, fill:pref, "
                    + "8dlu, fill:pref, 1dlu, fill:10dlu:grow, 1dlu, fill:pref"
            : "fill:pref, 1dlu, fill:pref:grow, 1dlu, fill:pref";
    StringBuilder stringBuilder = new StringBuilder();
    int rows = (int) Math.ceil((double) fields.size() / fieldsPerRow);
    for (int i = 0; i < rows; i++) {
        stringBuilder.append("fill:pref:grow, ");
    }
    if (addKeyField) {
        stringBuilder.append("4dlu, fill:pref");
    } else if (stringBuilder.length() >= 2) {
        stringBuilder.delete(stringBuilder.length() - 2, stringBuilder.length());
    }
    String rowSpec = stringBuilder.toString();

    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(colSpec, rowSpec), panel);

    // BibTex edit fields are defined here
    for (int i = 0; i < fields.size(); i++) {
        String field = fields.get(i);

        // Create the text area:
        int editorType = InternalBibtexFields.getEditorType(field);

        FieldEditor fieldEditor;
        int defaultHeight;
        int wHeight = (int) (50.0 * InternalBibtexFields.getFieldWeight(field));
        if (editorType == GUIGlobals.FILE_LIST_EDITOR) {
            fieldEditor = new FileListEditor(frame, bPanel.getBibDatabaseContext().getMetaData(), field, null,
                    parent);
            fileListEditor = (FileListEditor) fieldEditor;
            defaultHeight = 0;
        } else {
            fieldEditor = new TextArea(field, null);
            bPanel.getSearchBar().getSearchQueryHighlightObservable().addSearchListener((TextArea) fieldEditor);
            defaultHeight = fieldEditor.getPane().getPreferredSize().height;
        }

        Optional<JComponent> extra = parent.getExtra(fieldEditor);

        // Add autocompleter listener, if required for this field:
        AutoCompleter<String> autoCompleter = bPanel.getAutoCompleters().get(field);
        AutoCompleteListener autoCompleteListener = null;
        if (autoCompleter != null) {
            autoCompleteListener = new AutoCompleteListener(autoCompleter);
        }
        setupJTextComponent(fieldEditor.getTextComponent(), autoCompleteListener);
        fieldEditor.setAutoCompleteListener(autoCompleteListener);

        // Store the editor for later reference:
        editors.put(field, fieldEditor);
        if (i == 0) {
            activeField = fieldEditor;
        }

        if (!compressed) {
            fieldEditor.getPane().setPreferredSize(new Dimension(100, Math.max(defaultHeight, wHeight)));
        }
        builder.append(fieldEditor.getLabel());
        if (extra.isPresent()) {
            builder.append(fieldEditor.getPane());
            JPanel pan = new JPanel();
            pan.setLayout(new BorderLayout());
            pan.add(extra.get(), BorderLayout.NORTH);
            builder.append(pan);
        } else {
            builder.append(fieldEditor.getPane(), 3);
        }
        if (((i + 1) % fieldsPerRow) == 0) {
            builder.nextLine();
        }
    }

    // Add the edit field for Bibtex-key.
    if (addKeyField) {
        final TextField textField = new TextField(BibEntry.KEY_FIELD, parent.getEntry().getCiteKey(), true);
        setupJTextComponent(textField, null);

        editors.put(BibEntry.KEY_FIELD, textField);
        /*
         * If the key field is the only field, we should have only one
         * editor, and this one should be set as active initially:
         */
        if (editors.size() == 1) {
            activeField = textField;
        }
        builder.nextLine();
        builder.append(textField.getLabel());
        builder.append(textField, 3);
    }
}

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

License:Open Source License

private JPanel buildMainPanel() {
    FormLayout layout = new FormLayout("right:pref, 4dlu, fill:pref, 8dlu, right:pref, 4dlu, fill:pref", // 4dlu, left:pref, 4dlu",
            "");//from   w  w  w . ja v a 2s  .c  om
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

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

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

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

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

    return builder.getPanel();

}

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

License:Open Source License

public FileListEditor(JabRefFrame frame, MetaData metaData, String fieldName, String content,
        EntryEditor entryEditor) {/*from www  .j a  v  a  2 s.  co m*/
    this.frame = frame;
    this.metaData = metaData;
    this.fieldName = fieldName;
    this.entryEditor = entryEditor;
    label = new FieldNameLabel(" " + StringUtil.nCase(fieldName) + " ");
    tableModel = new FileListTableModel();
    setText(content);
    setModel(tableModel);
    JScrollPane sPane = new JScrollPane(this);
    setTableHeader(null);
    addMouseListener(new TableClickListener());

    JButton add = new JButton(GUIGlobals.getImage("add"));
    add.setToolTipText(Globals.lang("New file link (INSERT)"));
    JButton remove = new JButton(GUIGlobals.getImage("remove"));
    remove.setToolTipText(Globals.lang("Remove file link (DELETE)"));
    JButton up = new JButton(GUIGlobals.getImage("up"));

    JButton down = new JButton(GUIGlobals.getImage("down"));
    auto = new JButton(Globals.lang("Auto"));
    JButton download = new JButton(Globals.lang("Download"));
    add.setMargin(new Insets(0, 0, 0, 0));
    remove.setMargin(new Insets(0, 0, 0, 0));
    up.setMargin(new Insets(0, 0, 0, 0));
    down.setMargin(new Insets(0, 0, 0, 0));
    add.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            addEntry();
        }
    });
    remove.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            removeEntries();
        }
    });
    up.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            moveEntry(-1);
        }
    });
    down.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            moveEntry(1);
        }
    });
    auto.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            autoSetLinks();
        }
    });
    download.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            downloadFile();
        }
    });
    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("fill:pref,1dlu,fill:pref,1dlu,fill:pref", "fill:pref,fill:pref"));
    builder.append(up);
    builder.append(add);
    builder.append(auto);
    builder.append(down);
    builder.append(remove);
    builder.append(download);
    panel = new JPanel();
    panel.setLayout(new BorderLayout());
    panel.add(sPane, BorderLayout.CENTER);
    panel.add(builder.getPanel(), BorderLayout.EAST);

    TransferHandler th = new FileListEditorTransferHandler(frame, entryEditor, null);
    setTransferHandler(th);
    panel.setTransferHandler(th);

    // Add an input/action pair for deleting entries:
    getInputMap().put(KeyStroke.getKeyStroke("DELETE"), "delete");
    getActionMap().put("delete", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            int row = getSelectedRow();
            removeEntries();
            row = Math.min(row, getRowCount() - 1);
            if (row >= 0) {
                setRowSelectionInterval(row, row);
            }
        }
    });

    // Add an input/action pair for inserting an entry:
    getInputMap().put(KeyStroke.getKeyStroke("INSERT"), "insert");
    getActionMap().put("insert", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            addEntry();
        }
    });

    // Add input/action pair for moving an entry up:
    getInputMap().put(Globals.prefs.getKey("File list editor, move entry up"), "move up");
    getActionMap().put("move up", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            moveEntry(-1);
        }
    });

    // Add input/action pair for moving an entry down:
    getInputMap().put(Globals.prefs.getKey("File list editor, move entry down"), "move down");
    getActionMap().put("move down", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            moveEntry(1);
        }
    });

    JMenuItem openLink = new JMenuItem(Globals.lang("Open"));
    menu.add(openLink);
    openLink.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            openSelectedFile();
        }
    });

    JMenuItem openFolder = new JMenuItem(Globals.lang("Open folder"));
    menu.add(openFolder);
    openFolder.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            int row = getSelectedRow();
            if (row >= 0) {
                FileListEntry entry = tableModel.getEntry(row);
                try {
                    Util.openFolderAndSelectFile(entry.getLink());
                } catch (IOException ex) {
                    FileListEditor.logger.fine(ex.getMessage());
                }
            }
        }
    });

    JMenuItem rename = new JMenuItem(Globals.lang("Move/Rename file"));
    menu.add(rename);
    rename.addActionListener(new MoveFileAction(frame, entryEditor, this, false));

    JMenuItem moveToFileDir = new JMenuItem(Globals.lang("Move to file directory"));
    menu.add(moveToFileDir);
    moveToFileDir.addActionListener(new MoveFileAction(frame, entryEditor, this, true));
}

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

License:Open Source License

public FileListEntryEditor(JabRefFrame frame, FileListEntry entry, boolean showProgressBar,
        boolean showOpenButton, MetaData metaData) {
    this.entry = entry;
    this.metaData = metaData;

    AbstractAction okAction = new AbstractAction() {

        @Override/*from   w w w . jav a  2  s  .  com*/
        public void actionPerformed(ActionEvent e) {
            // If OK button is disabled, ignore this event:
            if (!ok.isEnabled()) {
                return;
            }
            // If necessary, ask the external confirm object whether we are ready to close.
            if (externalConfirm != null) {
                // Construct an updated FileListEntry:
                FileListEntry testEntry = new FileListEntry("", "", null);
                storeSettings(testEntry);
                if (!externalConfirm.confirmClose(testEntry)) {
                    return;
                }
            }
            diag.dispose();
            storeSettings(FileListEntryEditor.this.entry);
            okPressed = true;
        }
    };
    types = new JComboBox();
    types.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent itemEvent) {
            if (!okDisabledExternally) {
                ok.setEnabled(types.getSelectedItem() != null);
            }
        }
    });

    DefaultFormBuilder builder = new DefaultFormBuilder(
            new FormLayout("left:pref, 4dlu, fill:150dlu, 4dlu, fill:pref, 4dlu, fill:pref", ""));
    builder.append(Globals.lang("Link"));
    builder.append(link);
    final BrowseListener browse = new BrowseListener(frame, link);
    final JButton browseBut = new JButton(Globals.lang("Browse"));
    browseBut.addActionListener(browse);
    builder.append(browseBut);
    JButton open = new JButton(Globals.lang("Open"));
    if (showOpenButton) {
        builder.append(open);
    }
    builder.nextLine();
    builder.append(Globals.lang("Description"));
    builder.append(description, 3);
    builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    builder.nextLine();
    builder.append(Globals.lang("File type"));
    builder.append(types, 3);
    if (showProgressBar) {
        builder.nextLine();
        builder.append(downloadLabel);
        builder.append(prog, 3);
    }

    ButtonBarBuilder bb = new ButtonBarBuilder();
    bb.addGlue();
    //bb.addButton(open);
    //bb.addRelatedGap();
    bb.addRelatedGap();
    bb.addButton(ok);
    JButton cancel = new JButton(Globals.lang("Cancel"));
    bb.addButton(cancel);
    bb.addGlue();

    ok.addActionListener(okAction);
    // Add OK action to the two text fields to simplify entering:
    link.addActionListener(okAction);
    description.addActionListener(okAction);

    open.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            openFile();
        }
    });

    AbstractAction cancelAction = new AbstractAction() {

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

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

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

        @Override
        public void insertUpdate(DocumentEvent documentEvent) {
            checkExtension();
        }

        @Override
        public void removeUpdate(DocumentEvent documentEvent) {
        }

        @Override
        public void changedUpdate(DocumentEvent documentEvent) {
            checkExtension();
        }

    });

    diag = new JDialog(frame, Globals.lang("Edit file link"), true);
    diag.getContentPane().add(builder.getPanel(), BorderLayout.CENTER);
    diag.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);
    diag.pack();
    Util.placeDialog(diag, frame);
    diag.addWindowListener(new WindowAdapter() {

        @Override
        public void windowActivated(WindowEvent event) {
            if (openBrowseWhenShown && !dontOpenBrowseUntilDisposed) {
                dontOpenBrowseUntilDisposed = true;
                SwingUtilities.invokeLater(new Runnable() {

                    @Override
                    public void run() {
                        browse.actionPerformed(new ActionEvent(browseBut, 0, ""));
                    }
                });
            }
        }

        @Override
        public void windowClosed(WindowEvent event) {
            dontOpenBrowseUntilDisposed = false;
        }
    });
    setValues(entry);
}

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

License:Open Source License

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

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

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

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

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

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

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

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

}

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

License:Open Source License

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

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

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

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

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

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

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

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

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

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

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

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

License:Open Source License

public EntryEditorPrefsTab(JabRefFrame frame, JabRefPreferences prefs) {
    this.prefs = prefs;
    autoCompletePreferences = new AutoCompletePreferences(prefs);
    this.frame = frame;
    setLayout(new BorderLayout());

    autoOpenForm = new JCheckBox(Localization.lang("Open editor when a new entry is created"));
    defSource = new JCheckBox(Localization.lang("Show BibTeX source by default"));
    emacsMode = new JCheckBox(Localization.lang("Use Emacs key bindings"));
    emacsRebindCtrlA = new JCheckBox(Localization.lang("Rebind C-a, too"));
    emacsRebindCtrlF = new JCheckBox(Localization.lang("Rebind C-f, too"));
    disableOnMultiple = new JCheckBox(
            Localization.lang("Disable entry editor when multiple entries are selected"));
    autoComplete = new JCheckBox(Localization.lang("Enable word/name autocompletion"));

    shortestToComplete = new JSpinner(
            new SpinnerNumberModel(autoCompletePreferences.getShortestLengthToComplete(), 1, 5, 1));

    // allowed name formats
    autoCompFF = new JRadioButton(Localization.lang("Autocomplete names in 'Firstname Lastname' format only"));
    autoCompLF = new JRadioButton(Localization.lang("Autocomplete names in 'Lastname, Firstname' format only"));
    autoCompBoth = new JRadioButton(Localization.lang("Autocomplete names in both formats"));
    ButtonGroup buttonGroup = new ButtonGroup();
    buttonGroup.add(autoCompLF);/*from  w ww .j av  a2  s .  c  o  m*/
    buttonGroup.add(autoCompFF);
    buttonGroup.add(autoCompBoth);

    // treatment of first name
    firstNameModeFull = new JRadioButton(Localization.lang("Use full firstname whenever possible"));
    firstNameModeAbbr = new JRadioButton(Localization.lang("Use abbreviated firstname whenever possible"));
    firstNameModeBoth = new JRadioButton(Localization.lang("Use abbreviated and full firstname"));
    ButtonGroup firstNameModeButtonGroup = new ButtonGroup();
    firstNameModeButtonGroup.add(firstNameModeFull);
    firstNameModeButtonGroup.add(firstNameModeAbbr);
    firstNameModeButtonGroup.add(firstNameModeBoth);

    Insets marg = new Insets(0, 20, 3, 0);

    emacsRebindCtrlA.setMargin(marg);
    // We need a listener on showSource to enable and disable the source panel-related choices:
    emacsMode.addChangeListener(event -> emacsRebindCtrlA.setEnabled(emacsMode.isSelected()));

    emacsRebindCtrlF.setMargin(marg);
    // We need a listener on showSource to enable and disable the source panel-related choices:
    emacsMode.addChangeListener(event -> emacsRebindCtrlF.setEnabled(emacsMode.isSelected()));

    autoCompFields = new JTextField(40);
    // We need a listener on autoComplete to enable and disable the
    // autoCompFields text field:
    autoComplete.addChangeListener(event -> setAutoCompleteElementsEnabled(autoComplete.isSelected()));

    FormLayout layout = new FormLayout(// columns
            "8dlu, left:pref, 8dlu, fill:150dlu, 4dlu, fill:pref", // 4dlu, left:pref, 4dlu",
            // rows  1 to 10
            "pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, " +
            // rows 11 to 20
                    "pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, pref, 6dlu, " +
                    // rows 21 to 31
                    "pref, 6dlu, pref, pref, pref, pref, 6dlu, pref, pref, pref, pref");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    CellConstraints cc = new CellConstraints();
    builder.addSeparator(Localization.lang("Editor options"), cc.xyw(1, 1, 5));
    builder.add(autoOpenForm, cc.xy(2, 3));
    builder.add(disableOnMultiple, cc.xy(2, 5));
    builder.add(defSource, cc.xy(2, 7));
    builder.add(emacsMode, cc.xy(2, 9));
    builder.add(emacsRebindCtrlA, cc.xy(2, 11));
    builder.add(emacsRebindCtrlF, cc.xy(2, 13));

    builder.addSeparator(Localization.lang("Autocompletion options"), cc.xyw(1, 15, 5));
    builder.add(autoComplete, cc.xy(2, 19));

    DefaultFormBuilder builder3 = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:150dlu", ""));
    JLabel label = new JLabel(Localization.lang("Use autocompletion for the following fields") + ":");

    builder3.append(label);
    builder3.append(autoCompFields);
    JLabel label2 = new JLabel(Localization.lang("Autocomplete after following number of characters") + ":");
    builder3.append(label2);
    builder3.append(shortestToComplete);
    builder.add(builder3.getPanel(), cc.xyw(2, 21, 3));

    builder.addSeparator(Localization.lang("Name format used for autocompletion"), cc.xyw(2, 23, 4));
    builder.add(autoCompFF, cc.xy(2, 24));
    builder.add(autoCompLF, cc.xy(2, 25));
    builder.add(autoCompBoth, cc.xy(2, 26));

    builder.addSeparator(Localization.lang("Treatment of first names"), cc.xyw(2, 28, 4));
    builder.add(firstNameModeAbbr, cc.xy(2, 29));
    builder.add(firstNameModeFull, cc.xy(2, 30));
    builder.add(firstNameModeBoth, cc.xy(2, 31));

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