List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder appendSeparator
public JComponent appendSeparator(String text)
From source file:net.sf.jabref.GeneralTab.java
License:Open Source License
public GeneralTab(JabRefFrame frame, JabRefPreferences prefs) { _prefs = prefs;//ww w.java2 s. com setLayout(new BorderLayout()); allowEditing = new JCheckBox(Globals.lang("Allow editing in table cells")); memoryStick = new JCheckBox( Globals.lang("Load and Save preferences from/to jabref.xml on start-up (memory stick mode)")); defSort = new JCheckBox(Globals.lang("Sort Automatically")); ctrlClick = new JCheckBox(Globals.lang("Open right-click menu with Ctrl+left button")); useOwner = new JCheckBox(Globals.lang("Mark new entries with owner name") + ':'); useTimeStamp = new JCheckBox( Globals.lang("Mark new entries with addition date") + ". " + Globals.lang("Date format") + ':'); useTimeStamp.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent arg0) { updateTimeStamp.setEnabled(useTimeStamp.isSelected()); } }); updateTimeStamp = new JCheckBox(Globals.lang("Update timestamp on modification")); overwriteOwner = new JCheckBox(Globals.lang("Overwrite")); overwriteTimeStamp = new JCheckBox(Globals.lang("Overwrite")); overwriteOwner.setToolTipText( Globals.lang("If a pasted or imported entry already has " + "the field set, overwrite.")); overwriteTimeStamp.setToolTipText( Globals.lang("If a pasted or imported entry already has " + "the field set, overwrite.")); keyDuplicateWarningDialog = new JCheckBox( Globals.lang("Show warning dialog when a duplicate BibTeX key is entered")); keyEmptyWarningDialog = new JCheckBox( Globals.lang("Show warning dialog when an empty BibTeX key is entered")); // JZTODO lyrics enforceLegalKeys = new JCheckBox(Globals.lang("Enforce legal characters in BibTeX keys")); confirmDelete = new JCheckBox(Globals.lang("Show confirmation dialog when deleting entries")); useImportInspector = new JCheckBox( Globals.lang("Display imported entries in an inspection window before they are added.")); useImportInspectorForSingle = new JCheckBox( Globals.lang("Use inspection window also when a single entry is imported.")); markImportedEntries = new JCheckBox(Globals.lang("Mark entries imported into an existing database")); unmarkAllEntriesBeforeImporting = new JCheckBox( Globals.lang("Unmark all entries before importing new entries into an existing database")); defOwnerField = new JTextField(); timeStampFormat = new JTextField(); timeStampField = new JTextField(); HelpAction ownerHelp = new HelpAction(frame.helpDiag, GUIGlobals.ownerHelp, "Help", GUIGlobals.getIconUrl("helpSmall")); HelpAction timeStampHelp = new HelpAction(frame.helpDiag, GUIGlobals.timeStampHelp, "Help", GUIGlobals.getIconUrl("helpSmall")); inspectionWarnDupli = new JCheckBox( Globals.lang("Warn about unresolved duplicates when closing inspection window")); Insets marg = new Insets(0, 12, 3, 0); useImportInspectorForSingle.setMargin(marg); inspectionWarnDupli.setMargin(marg); // We need a listener on useImportInspector to enable and disable the // import inspector related choices; useImportInspector.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent event) { useImportInspectorForSingle.setEnabled(useImportInspector.isSelected()); inspectionWarnDupli.setEnabled(useImportInspector.isSelected()); } }); FormLayout layout = new FormLayout( "8dlu, 1dlu, left:170dlu, 4dlu, fill:pref, 4dlu, fill:pref, 4dlu, left:pref, 4dlu, left:pref, 4dlu, left:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("General")); builder.nextLine(); builder.append(useImportInspector, 13); builder.nextLine(); builder.append(new JPanel()); builder.append(useImportInspectorForSingle, 11); builder.nextLine(); builder.append(new JPanel()); builder.append(inspectionWarnDupli, 11); builder.nextLine(); builder.append(ctrlClick, 13); builder.nextLine(); builder.append(confirmDelete, 13); builder.nextLine(); builder.append(keyDuplicateWarningDialog, 13); builder.nextLine(); builder.append(keyEmptyWarningDialog, 13); builder.nextLine(); builder.append(enforceLegalKeys, 13); builder.nextLine(); builder.append(memoryStick, 13); // Create a new panel with its own FormLayout for the last items: builder.append(useOwner, 3); builder.append(defOwnerField); builder.append(overwriteOwner); builder.append(new JPanel(), 3); JButton hlp = new JButton(ownerHelp); hlp.setText(null); hlp.setPreferredSize(new Dimension(24, 24)); builder.append(hlp); builder.nextLine(); builder.append(useTimeStamp, 3); builder.append(timeStampFormat); builder.append(overwriteTimeStamp); builder.append(Globals.lang("Field name") + ':'); builder.append(timeStampField); hlp = new JButton(timeStampHelp); hlp.setText(null); hlp.setPreferredSize(new Dimension(24, 24)); builder.append(hlp); builder.nextLine(); builder.append(new JPanel()); builder.append(updateTimeStamp, 2); builder.nextLine(); builder.append(markImportedEntries, 13); builder.nextLine(); builder.append(unmarkAllEntriesBeforeImporting, 13); builder.nextLine(); JLabel lab; lab = new JLabel(Globals.lang("Language") + ':'); builder.append(lab, 3); builder.append(language); builder.nextLine(); lab = new JLabel(Globals.lang("Default encoding") + ':'); builder.append(lab, 3); builder.append(encodings); JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.groups.GroupDialog.java
License:Open Source License
/** * Shows a group add/edit dialog./*from w ww. j a va 2s. com*/ * * @param jabrefFrame * The parent frame. * @param basePanel * The default grouping field. * @param editedGroup * The group being edited, or null if a new group is to be * created. */ public GroupDialog(JabRefFrame jabrefFrame, BasePanel basePanel, AbstractGroup editedGroup) { super(jabrefFrame, Globals.lang("Edit group"), true); m_basePanel = basePanel; m_editedGroup = editedGroup; // set default values (overwritten if editedGroup != null) m_kgSearchField.setText(jabrefFrame.prefs().get(JabRefPreferences.GROUPS_DEFAULT_FIELD)); // configure elements ButtonGroup groupType = new ButtonGroup(); groupType.add(m_explicitRadioButton); groupType.add(m_keywordsRadioButton); groupType.add(m_searchRadioButton); ButtonGroup groupHierarchy = new ButtonGroup(); groupHierarchy.add(m_independentButton); groupHierarchy.add(m_intersectionButton); groupHierarchy.add(m_unionButton); m_description.setVerticalAlignment(SwingConstants.TOP); getRootPane().setDefaultButton(m_ok); // build individual layout cards for each group m_optionsPanel.setLayout(m_optionsLayout); // ... for explicit group m_optionsPanel.add(new JPanel(), "" + GroupDialog.INDEX_EXPLICITGROUP); // ... for keyword group FormLayout layoutKG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow, 2dlu, left:pref"); DefaultFormBuilder builderKG = new DefaultFormBuilder(layoutKG); builderKG.append(Globals.lang("Field")); builderKG.append(m_kgSearchField, 3); builderKG.nextLine(); builderKG.append(Globals.lang("Keyword")); builderKG.append(m_kgSearchTerm); builderKG.append(new FieldContentSelector(jabrefFrame, m_basePanel, this, m_kgSearchTerm, m_basePanel.metaData(), null, true, ", ")); builderKG.nextLine(); builderKG.append(m_kgCaseSensitive, 3); builderKG.nextLine(); builderKG.append(m_kgRegExp, 3); m_optionsPanel.add(builderKG.getPanel(), "" + GroupDialog.INDEX_KEYWORDGROUP); // ... for search group FormLayout layoutSG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow"); DefaultFormBuilder builderSG = new DefaultFormBuilder(layoutSG); builderSG.append(Globals.lang("Search expression")); builderSG.append(m_sgSearchExpression); builderSG.nextLine(); builderSG.append(m_sgCaseSensitive, 3); builderSG.nextLine(); builderSG.append(m_sgRegExp, 3); m_optionsPanel.add(builderSG.getPanel(), "" + GroupDialog.INDEX_SEARCHGROUP); // ... for buttons panel FormLayout layoutBP = new FormLayout("pref, 4dlu, pref", "p"); layoutBP.setColumnGroups(new int[][] { { 1, 3 } }); ButtonBarBuilder builderBP = new ButtonBarBuilder(); builderBP.addGlue(); builderBP.addButton(m_ok); JButton m_cancel = new JButton(Globals.lang("Cancel")); builderBP.addButton(m_cancel); builderBP.addGlue(); builderBP.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); // create layout FormLayout layoutAll = new FormLayout("right:pref, 4dlu, fill:600px, 4dlu, fill:pref", "p, 3dlu, p, 3dlu, p, 0dlu, p, 0dlu, p, 3dlu, p, 3dlu, p, " + "0dlu, p, 0dlu, p, 3dlu, p, 3dlu, " + "p, 3dlu, p, 3dlu, top:80dlu, 9dlu, p, 9dlu, p"); DefaultFormBuilder builderAll = new DefaultFormBuilder(layoutAll); builderAll.border(Borders.DIALOG); builderAll.appendSeparator(Globals.lang("General")); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(Globals.lang("Name")); builderAll.append(m_name); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_explicitRadioButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_keywordsRadioButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_searchRadioButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(Globals.lang("Hierarchical context")); // JZTODO lyrics builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_independentButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_intersectionButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_unionButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(Globals.lang("Options")); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_optionsPanel, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(Globals.lang("Description")); builderAll.nextLine(); builderAll.nextLine(); JScrollPane sp = new JScrollPane(m_description, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED) { @Override public Dimension getPreferredSize() { return getMaximumSize(); } }; builderAll.append(sp, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(); builderAll.nextLine(); builderAll.nextLine(); //CellConstraints cc = new CellConstraints(); //builderAll.add(builderBP.getPanel(), cc.xyw(builderAll.getColumn(), // builderAll.getRow(), 5, "center, fill")); Container cp = getContentPane(); //cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS)); cp.add(builderAll.getPanel(), BorderLayout.CENTER); cp.add(builderBP.getPanel(), BorderLayout.SOUTH); pack(); setResizable(false); updateComponents(); setLayoutForSelectedGroup(); Util.placeDialog(this, jabrefFrame); // add listeners ItemListener radioButtonItemListener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { setLayoutForSelectedGroup(); updateComponents(); } }; m_explicitRadioButton.addItemListener(radioButtonItemListener); m_keywordsRadioButton.addItemListener(radioButtonItemListener); m_searchRadioButton.addItemListener(radioButtonItemListener); Action cancelAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }; m_cancel.addActionListener(cancelAction); builderAll.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(Globals.prefs.getKey("Close dialog"), "close"); builderAll.getPanel().getActionMap().put("close", cancelAction); m_ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { m_okPressed = true; if (m_explicitRadioButton.isSelected()) { if (m_editedGroup instanceof ExplicitGroup) { // keep assignments from possible previous ExplicitGroup m_resultingGroup = m_editedGroup.deepCopy(); m_resultingGroup.setName(m_name.getText().trim()); m_resultingGroup.setHierarchicalContext(getContext()); } else { m_resultingGroup = new ExplicitGroup(m_name.getText().trim(), getContext()); if (m_editedGroup != null) { addPreviousEntries(); } } } else if (m_keywordsRadioButton.isSelected()) { // regex is correct, otherwise OK would have been disabled // therefore I don't catch anything here m_resultingGroup = new KeywordGroup(m_name.getText().trim(), m_kgSearchField.getText().trim(), m_kgSearchTerm.getText().trim(), m_kgCaseSensitive.isSelected(), m_kgRegExp.isSelected(), getContext()); if (((m_editedGroup instanceof ExplicitGroup) || (m_editedGroup instanceof SearchGroup)) && m_resultingGroup.supportsAdd()) { addPreviousEntries(); } } else if (m_searchRadioButton.isSelected()) { try { // regex is correct, otherwise OK would have been // disabled // therefore I don't catch anything here m_resultingGroup = new SearchGroup(m_name.getText().trim(), m_sgSearchExpression.getText().trim(), isCaseSensitive(), isRegex(), getContext()); } catch (Exception e1) { // should never happen } } dispose(); } }); CaretListener caretListener = new CaretListener() { @Override public void caretUpdate(CaretEvent e) { updateComponents(); } }; ItemListener itemListener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { updateComponents(); } }; m_name.addCaretListener(caretListener); m_kgSearchField.addCaretListener(caretListener); m_kgSearchTerm.addCaretListener(caretListener); m_kgCaseSensitive.addItemListener(itemListener); m_kgRegExp.addItemListener(itemListener); m_sgSearchExpression.addCaretListener(caretListener); m_sgRegExp.addItemListener(itemListener); m_sgCaseSensitive.addItemListener(itemListener); // configure for current type if (editedGroup instanceof KeywordGroup) { KeywordGroup group = (KeywordGroup) editedGroup; m_name.setText(group.getName()); m_kgSearchField.setText(group.getSearchField()); m_kgSearchTerm.setText(group.getSearchExpression()); m_kgCaseSensitive.setSelected(group.isCaseSensitive()); m_kgRegExp.setSelected(group.isRegExp()); m_keywordsRadioButton.setSelected(true); setContext(editedGroup.getHierarchicalContext()); } else if (editedGroup instanceof SearchGroup) { SearchGroup group = (SearchGroup) editedGroup; m_name.setText(group.getName()); m_sgSearchExpression.setText(group.getSearchExpression()); m_sgCaseSensitive.setSelected(group.isCaseSensitive()); m_sgRegExp.setSelected(group.isRegExp()); m_searchRadioButton.setSelected(true); setContext(editedGroup.getHierarchicalContext()); } else if (editedGroup instanceof ExplicitGroup) { m_name.setText(editedGroup.getName()); m_explicitRadioButton.setSelected(true); setContext(editedGroup.getHierarchicalContext()); } else { // creating new group -> defaults! m_explicitRadioButton.setSelected(true); setContext(GroupHierarchyType.INDEPENDENT); } }
From source file:net.sf.jabref.groups.GroupsPrefsTab.java
License:Open Source License
public GroupsPrefsTab(JabRefPreferences prefs) { this.prefs = prefs; keywordSeparator.addFocusListener(new FocusListener() { @Override/*from w w w. jav a 2 s . co m*/ public void focusGained(FocusEvent e) { keywordSeparator.selectAll(); } @Override public void focusLost(FocusEvent e) { // deselection is automatic } }); FormLayout layout = new FormLayout("9dlu, pref", //500px", "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, " + "p, 3dlu, p"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("View")); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(showIcons); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(showDynamic); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(expandTree); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(autoShow); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(autoHide); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(autoAssignGroup); builder.nextLine(); builder.nextLine(); builder.appendSeparator(Globals.lang("Dynamic groups")); builder.nextLine(); builder.nextLine(); builder.nextColumn(); // build subcomponent FormLayout layout2 = new FormLayout("left:pref, 2dlu, left:pref", "p, 3dlu, p"); DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2); builder2.append(new JLabel(Globals.lang("Default grouping field") + ":")); builder2.append(groupingField); builder2.nextLine(); builder2.nextLine(); builder2.append(new JLabel(Globals.lang("When adding/removing keywords, separate them by") + ":")); builder2.append(keywordSeparator); builder.append(builder2.getPanel()); setLayout(new BorderLayout()); JPanel panel = builder.getPanel(); panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(panel, BorderLayout.CENTER); }
From source file:net.sf.jabref.gui.AttachFileDialog.java
License:Open Source License
private void initGui() { final ExternalFilePanel extPan = new ExternalFilePanel(fieldName, metaData, entry, editor, Util.getFileFilterForField(fieldName)); browse.addActionListener(new ActionListener() { @Override//ww w .j a v a 2 s. c o m public void actionPerformed(ActionEvent event) { extPan.browseFile(fieldName, editor); } }); download.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { extPan.downLoadFile(fieldName, editor, ths); } }); auto.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { JabRefExecutorService.INSTANCE.execute(extPan.autoSetFile(fieldName, editor)); } }); ActionListener okListener = new ActionListener() { @Override public void actionPerformed(ActionEvent event) { cancelled = false; dispose(); } }; ok.addActionListener(okListener); ((JTextField) editor.getTextComponent()).addActionListener(okListener); AbstractAction cancelListener = new AbstractAction() { @Override public void actionPerformed(ActionEvent event) { cancelled = true; dispose(); } }; cancel.addActionListener(cancelListener); editor.getTextComponent().getInputMap().put(Globals.prefs.getKey("Close dialog"), "close"); editor.getTextComponent().getActionMap().put("close", cancelListener); FormLayout layout = new FormLayout("fill:160dlu, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); //builder.append(Util.nCase(fieldName));//(editor.getLabel()); builder.appendSeparator(StringUtil.nCase(fieldName)); builder.append(editor.getTextComponent()); builder.append(browse); ButtonBarBuilder bb = new ButtonBarBuilder(); bb.addButton(download); bb.addButton(auto); builder.nextLine(); builder.append(bb.getPanel()); builder.nextLine(); builder.appendSeparator(); JPanel main = builder.getPanel(); main.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); bb = new ButtonBarBuilder(); bb.addGlue(); bb.addButton(ok); bb.addButton(cancel); bb.addGlue(); getContentPane().add(main, BorderLayout.CENTER); getContentPane().add(bb.getPanel(), BorderLayout.SOUTH); pack(); }
From source file:net.sf.jabref.gui.auximport.FromAuxDialog.java
License:Open Source License
private void initPanels() { // collect the names of all open databases int len = parentTabbedPane.getTabCount(); int toSelect = -1; for (int i = 0; i < len; i++) { dbChooser.addItem(parentTabbedPane.getTitleAt(i)); if (parentFrame.getBasePanelAt(i) == parentFrame.getCurrentBasePanel()) { toSelect = i;/*w ww . ja v a2 s .c o m*/ } } if (toSelect >= 0) { dbChooser.setSelectedIndex(toSelect); } auxFileField = new JTextField("", 25); JButton browseAuxFileButton = new JButton(Localization.lang("Browse")); browseAuxFileButton.addActionListener(new BrowseAction(auxFileField, parentFrame)); notFoundList = new JList<>(); JScrollPane listScrollPane = new JScrollPane(notFoundList); statusInfos = new JTextArea("", 5, 20); JScrollPane statusScrollPane = new JScrollPane(statusInfos); statusInfos.setEditable(false); DefaultFormBuilder b = new DefaultFormBuilder( new FormLayout("left:pref, 4dlu, fill:pref:grow, 4dlu, left:pref", ""), buttons); b.appendSeparator(Localization.lang("Options")); b.append(Localization.lang("Reference database") + ":"); b.append(dbChooser, 3); b.nextLine(); b.append(Localization.lang("LaTeX AUX file") + ":"); b.append(auxFileField); b.append(browseAuxFileButton); b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); b = new DefaultFormBuilder( new FormLayout("fill:pref:grow, 4dlu, fill:pref:grow", "pref, pref, fill:pref:grow"), statusPanel); b.appendSeparator(Localization.lang("Result")); b.append(Localization.lang("Unknown bibtex entries") + ":"); b.append(Localization.lang("Messages") + ":"); b.nextLine(); b.append(listScrollPane); b.append(statusScrollPane); b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); }
From source file:net.sf.jabref.gui.DatabasePropertiesDialog.java
License:Open Source License
private void init(JFrame parent) { JButton browseFile = new JButton(Globals.lang("Browse")); JButton browseFileIndv = new JButton(Globals.lang("Browse")); JButton browsePdf = new JButton(Globals.lang("Browse")); JButton browsePs = new JButton(Globals.lang("Browse")); browseFile.addActionListener(BrowseAction.buildForDir(parent, fileDir)); browseFileIndv.addActionListener(BrowseAction.buildForDir(parent, fileDirIndv)); browsePdf.addActionListener(BrowseAction.buildForDir(parent, pdfDir)); browsePs.addActionListener(BrowseAction.buildForDir(parent, psDir)); setupSortOrderConfiguration();// w ww . java2 s . c om DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("left:pref, 4dlu, left:pref, 4dlu, fill:pref", "")); builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); builder.append(Globals.lang("Database encoding")); builder.append(encoding); builder.nextLine(); builder.appendSeparator(Globals.lang("Override default file directories")); builder.nextLine(); builder.append(Globals.lang("General file directory")); builder.append(fileDir); builder.append(browseFile); builder.nextLine(); builder.append(Globals.lang("User-specific file directory")); builder.append(fileDirIndv); builder.append(browseFileIndv); builder.nextLine(); builder.append(Globals.lang("PDF directory")); builder.append(pdfDir); builder.append(browsePdf); builder.nextLine(); builder.append(Globals.lang("PS directory")); builder.append(psDir); builder.append(browsePs); builder.nextLine(); builder.appendSeparator(Globals.lang("Save sort order")); builder.append(saveAsConfiguredGlobally, 1); builder.nextLine(); builder.append(saveInOriginalOrder, 1); builder.nextLine(); builder.append(saveInSpecifiedOrder, 1); builder.nextLine(); // Create a new panel with its own FormLayout for these items: FormLayout layout2 = new FormLayout("right:pref, 8dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, left:pref", ""); DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2); JLabel lab = new JLabel(Globals.lang("Primary sort criterion")); builder2.append(lab); builder2.append(savePriSort); builder2.append(savePriField); builder2.append(savePriDesc); builder2.nextLine(); lab = new JLabel(Globals.lang("Secondary sort criterion")); builder2.append(lab); builder2.append(saveSecSort); builder2.append(saveSecField); builder2.append(saveSecDesc); builder2.nextLine(); lab = new JLabel(Globals.lang("Tertiary sort criterion")); builder2.append(lab); builder2.append(saveTerSort); builder2.append(saveTerField); builder2.append(saveTerDesc); JPanel saveSpecPanel = builder2.getPanel(); builder.append(saveSpecPanel); builder.nextLine(); builder.appendSeparator(Globals.lang("Database protection")); builder.nextLine(); builder.append(protect, 3); ButtonBarBuilder bb = new ButtonBarBuilder(); bb.addGlue(); bb.addButton(ok); bb.addButton(cancel); bb.addGlue(); getContentPane().add(builder.getPanel(), BorderLayout.CENTER); getContentPane().add(bb.getPanel(), BorderLayout.SOUTH); pack(); AbstractAction closeAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }; ActionMap am = builder.getPanel().getActionMap(); InputMap im = builder.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); im.put(Globals.prefs.getKey("Close dialog"), "close"); am.put("close", closeAction); ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { storeSettings(); dispose(); } }); cancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }); }
From source file:net.sf.jabref.gui.FieldWeightDialog.java
License:Open Source License
private JPanel buildMainPanel() { FormLayout layout = new FormLayout("right:pref, 4dlu, fill:pref, 8dlu, right:pref, 4dlu, fill:pref", // 4dlu, left:pref, 4dlu", "");//from w ww . j a va 2s .c o m DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("Field sizes")); // We use this list to build an alphabetical list of field names: TreeSet<String> fields = new TreeSet<String>(); // We use this map to remember which slider represents which field name: sliders.clear(); for (int i = 0, len = BibtexFields.numberOfPublicFields(); i < len; i++) { fields.add(BibtexFields.getFieldName(i)); } fields.remove("bibtexkey"); // bibtex key doesn't need weight. // Here is the place to add other fields: // -------------- for (String field : fields) { builder.append(field); int weight = (int) ((100 * BibtexFields.getFieldWeight(field)) / GUIGlobals.MAX_FIELD_WEIGHT); //System.out.println(weight); JSlider slider = new JSlider(0, 100, weight);//,); sliders.put(slider, new SliderInfo(field, weight)); builder.append(slider); } builder.appendSeparator(); return builder.getPanel(); }
From source file:net.sf.jabref.gui.preftabs.AdvancedTab.java
License:Open Source License
public AdvancedTab(JabRefPreferences prefs, JabRef jabRef) { this.jabRef = jabRef; preferences = prefs;/*from w ww .j a v a2 s .c o m*/ this.remotePreferences = new RemotePreferences(preferences); useDefault = new JCheckBox(Localization.lang("Use other look and feel")); useRemoteServer = new JCheckBox(Localization.lang("Listen for remote operation on port") + ':'); useIEEEAbrv = new JCheckBox(Localization.lang("Use IEEE LaTeX abbreviations")); remoteServerPort = new JTextField(); String[] possibleLookAndFeels = { UIManager.getSystemLookAndFeelClassName(), UIManager.getCrossPlatformLookAndFeelClassName(), "com.jgoodies.looks.plastic.Plastic3DLookAndFeel", "com.jgoodies.looks.windows.WindowsLookAndFeel" }; // Only list L&F which are available List<String> lookAndFeels = new ArrayList<>(); for (String lf : possibleLookAndFeels) { try { // Try to find L&F, throws exception if not successful Class.forName(lf); lookAndFeels.add(lf); } catch (ClassNotFoundException ignored) { // Ignored } } className = new JComboBox<>(lookAndFeels.toArray(new String[lookAndFeels.size()])); className.setEditable(true); final JComboBox<String> clName = className; useDefault.addChangeListener(e -> clName.setEnabled(((JCheckBox) e.getSource()).isSelected())); useConvertToEquation = new JCheckBox( Localization.lang("Prefer converting subscripts and superscripts to equations rather than text")); useCaseKeeperOnSearch = new JCheckBox( Localization.lang("Add {} to specified title words on search to keep the correct case")); useUnitFormatterOnSearch = new JCheckBox(Localization .lang("Format units by adding non-breaking separators and keeping the correct case on search")); FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:3dlu", //, 4dlu, fill:pref",// 4dlu, left:pref, 4dlu", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); JPanel pan = new JPanel(); if (!OS.OS_X) { builder.appendSeparator(Localization.lang("Look and feel")); JLabel lab = new JLabel( Localization.lang("Default look and feel") + ": " + UIManager.getSystemLookAndFeelClassName()); builder.nextLine(); builder.append(pan); builder.append(lab); builder.nextLine(); builder.append(pan); builder.append(useDefault); builder.nextLine(); builder.append(pan); JPanel pan2 = new JPanel(); lab = new JLabel(Localization.lang("Class name") + ':'); pan2.add(lab); pan2.add(className); builder.append(pan2); builder.nextLine(); builder.append(pan); lab = new JLabel(Localization .lang("Note that you must specify the fully qualified class name for the look and feel,")); builder.append(lab); builder.nextLine(); builder.append(pan); lab = new JLabel(Localization .lang("and the class must be available in your classpath next time you start JabRef.")); builder.append(lab); builder.nextLine(); } builder.appendSeparator(Localization.lang("Remote operation")); builder.nextLine(); builder.append(new JPanel()); builder.append(new JLabel("<html>" + Localization.lang("This feature lets new files be opened or imported into an " + "already running instance of JabRef<BR>instead of opening a new instance. For instance, this " + "is useful when you open a file in JabRef<br>from your web browser." + "<BR>Note that this will prevent you from running more than one instance of JabRef at a time.") + "</html>")); builder.nextLine(); builder.append(new JPanel()); JPanel p = new JPanel(); p.add(useRemoteServer); p.add(remoteServerPort); p.add(new HelpAction(HelpFiles.remoteHelp).getHelpButton()); builder.append(p); // IEEE builder.nextLine(); builder.appendSeparator(Localization.lang("Search %0", "IEEEXplorer")); builder.nextLine(); builder.append(new JPanel()); builder.append(useIEEEAbrv); builder.nextLine(); builder.appendSeparator(Localization.lang("Import conversions")); builder.nextLine(); builder.append(new JPanel()); builder.append(useConvertToEquation); builder.nextLine(); builder.append(pan); builder.append(useCaseKeeperOnSearch); builder.nextLine(); builder.append(pan); builder.append(useUnitFormatterOnSearch); pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); setLayout(new BorderLayout()); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.gui.preftabs.AppearancePrefsTab.java
License:Open Source License
/** * Customization of appearance parameters. * * @param prefs a <code>JabRefPreferences</code> value *//*ww w. j a va 2 s .c o m*/ public AppearancePrefsTab(JabRefPreferences prefs) { this.prefs = prefs; setLayout(new BorderLayout()); // Font sizes: fontSize = new JTextField(5); // Row padding size: rowPadding = new JTextField(5); colorCodes = new JCheckBox(Localization.lang("Color codes for required and optional fields")); overrideFonts = new JCheckBox(Localization.lang("Override default font settings")); showGrid = new JCheckBox(Localization.lang("Show gridlines")); FormLayout layout = new FormLayout( "1dlu, 8dlu, left:pref, 4dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.leadingColumnOffset(2); JLabel lab; builder.appendSeparator(Localization.lang("General")); JPanel p1 = new JPanel(); lab = new JLabel(Localization.lang("Menu and label font size") + ":"); p1.add(lab); p1.add(fontSize); builder.append(p1); builder.nextLine(); builder.append(overrideFonts); builder.nextLine(); builder.appendSeparator(Localization.lang("Table appearance")); JPanel p2 = new JPanel(); p2.add(new JLabel(Localization.lang("Table row height padding") + ":")); p2.add(rowPadding); builder.append(p2); builder.nextLine(); builder.append(colorCodes); builder.nextLine(); builder.append(showGrid); builder.nextLine(); JButton fontButton = new JButton(Localization.lang("Set table font")); builder.append(fontButton); builder.nextLine(); builder.appendSeparator(Localization.lang("Table and entry editor colors")); builder.append(colorPanel); JPanel upper = new JPanel(); JPanel sort = new JPanel(); JPanel namesp = new JPanel(); JPanel iconCol = new JPanel(); GridBagLayout gbl = new GridBagLayout(); upper.setLayout(gbl); sort.setLayout(gbl); namesp.setLayout(gbl); iconCol.setLayout(gbl); overrideFonts.addActionListener(e -> fontSize.setEnabled(overrideFonts.isSelected())); fontButton.addActionListener(e -> new FontSelectorDialog(null, GUIGlobals.CURRENTFONT).getSelectedFont() .ifPresent(x -> font = x)); JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.gui.preftabs.ExternalTab.java
License:Open Source License
public ExternalTab(JabRefFrame frame, PreferencesDialog prefsDiag, JabRefPreferences prefs) { this.prefs = prefs; this.frame = frame; setLayout(new BorderLayout()); fileDir = new JTextField(25); bibLocationAsFileDir = new JCheckBox( Localization.lang("Allow file links relative to each bib file's location")); bibLocAsPrimaryDir = new JCheckBox( Localization.lang("Use the bib file location as primary file directory")); bibLocAsPrimaryDir.setToolTipText(Localization.lang("When downloading files, or moving linked files to the " + "file directory, prefer the bib file location rather than the file directory set above")); bibLocationAsFileDir//w ww . j a v a 2 s . c o m .addChangeListener(e -> bibLocAsPrimaryDir.setEnabled(bibLocationAsFileDir.isSelected())); JButton editFileTypes = new JButton(Localization.lang("Manage external file types")); runAutoFileSearch = new JCheckBox( Localization.lang("When opening file link, search for matching file if no link is defined")); allowFileAutoOpenBrowse = new JCheckBox( Localization.lang("Automatically open browse dialog when creating new file link")); citeCommand = new JTextField(25); regExpTextField = new JTextField(25); useRegExpComboBox = new JRadioButton(Localization.lang("Use Regular Expression Search")); ItemListener regExpListener = e -> regExpTextField.setEditable(useRegExpComboBox.isSelected()); useRegExpComboBox.addItemListener(regExpListener); editFileTypes.addActionListener(ExternalFileTypeEditor.getAction(prefsDiag)); ButtonGroup buttonGroup = new ButtonGroup(); buttonGroup.add(matchExactKeyOnly); buttonGroup.add(matchStartsWithKey); buttonGroup.add(useRegExpComboBox); BrowseAction browse; FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:150dlu, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Localization.lang("External file links")); JPanel pan = new JPanel(); builder.append(pan); /** * Fix for [ 1749613 ] About translation * * https://sourceforge.net/tracker/index.php?func=detail&aid=1749613&group_id=92314&atid=600306 * * Cannot really use %0 to refer to the file type, since this ruins translation. */ JLabel lab = new JLabel(Localization.lang("Main file directory") + ':'); builder.append(lab); builder.append(fileDir); browse = BrowseAction.buildForDir(this.frame, fileDir); builder.append(new JButton(browse)); builder.nextLine(); builder.append(new JPanel()); builder.append(bibLocationAsFileDir, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(bibLocAsPrimaryDir, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(matchStartsWithKey, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(matchExactKeyOnly, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(useRegExpComboBox); builder.append(regExpTextField); builder.append(new HelpAction(Localization.lang("Help on Regular Expression Search"), HelpFiles.regularExpressionSearchHelp).getHelpButton()); builder.nextLine(); builder.append(new JPanel()); builder.append(runAutoFileSearch, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(allowFileAutoOpenBrowse); builder.nextLine(); builder.appendSeparator(Localization.lang("Sending of emails")); builder.append(new JPanel()); lab = new JLabel(Localization.lang("Subject for sending an email with references").concat(":")); builder.append(lab); emailSubject = new JTextField(25); builder.append(emailSubject); builder.nextLine(); builder.append(new JPanel()); openFoldersOfAttachedFiles = new JCheckBox( Localization.lang("Automatically open folders of attached files")); builder.append(openFoldersOfAttachedFiles); builder.nextLine(); builder.appendSeparator(Localization.lang("External programs")); builder.nextLine(); JPanel butpan = new JPanel(); butpan.setLayout(new GridLayout(3, 3)); for (PushToApplication pushToApplication : PushToApplications.APPLICATIONS) { addSettingsButton(pushToApplication, butpan); } builder.append(new JPanel()); builder.append(butpan, 3); builder.nextLine(); lab = new JLabel(Localization.lang("Cite command") + ':'); builder.append(pan); builder.append(lab); builder.append(citeCommand); builder.nextLine(); builder.append(pan); builder.append(editFileTypes); pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }