List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder append
public JLabel append(String textWithMnemonic)
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); }