List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout)
From source file:net.sf.jabref.external.PushToEmacs.java
License:Open Source License
private void initSettingsPanel() { DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", "")); builder.append(new JLabel(Globals.lang("Path to gnuclient or emacsclient").concat(":"))); builder.append(emacsPath);/*from w w w. ja va 2s . com*/ BrowseAction action = BrowseAction.buildForFile(emacsPath); JButton browse = new JButton(Globals.lang("Browse")); browse.addActionListener(action); builder.append(browse); builder.nextLine(); builder.append(Globals.lang("Additional parameters").concat(":")); builder.append(additionalParams); builder.nextLine(); builder.append(Globals.lang("Use EMACS 23 insertion string").concat(":")); builder.append(useEmacs23); builder.nextLine(); builder.append(Globals.lang("Cite command") + ":"); builder.append(citeCommand); settings = builder.getPanel(); }
From source file:net.sf.jabref.external.PushToLatexEditor.java
License:Open Source License
private void initSettingsPanel() { DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", "")); builder.append(new JLabel(Globals.lang("Path to LatexEditor (LEd.exe)") + ":")); builder.append(ledPath);/*from w w w. j a va 2s .com*/ BrowseAction action = BrowseAction.buildForFile(ledPath); JButton browse = new JButton(Globals.lang("Browse")); browse.addActionListener(action); builder.append(browse); builder.nextLine(); builder.append(Globals.lang("Cite command") + ":"); builder.append(citeCommand); settings = builder.getPanel(); }
From source file:net.sf.jabref.external.PushToVim.java
License:Open Source License
private void initSettingsPanel() { DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", "")); builder.append(new JLabel(Globals.lang("Path to Vim") + ":")); builder.append(vimPath);//from w w w. j av a 2 s. c o m BrowseAction action = BrowseAction.buildForFile(vimPath); JButton browse = new JButton(Globals.lang("Browse")); browse.addActionListener(action); builder.append(browse); builder.nextLine(); builder.append(Globals.lang("Vim Server Name") + ":"); builder.append(vimServer); builder.nextLine(); builder.append(Globals.lang("Cite command") + ":"); builder.append(citeCommand); settings = builder.getPanel(); }
From source file:net.sf.jabref.external.PushToWinEdt.java
License:Open Source License
private void initSettingsPanel() { DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("left:pref, 4dlu, fill:pref, 4dlu, fill:pref", "")); builder.append(new JLabel(Globals.lang("Path to WinEdt.exe") + ":")); builder.append(winEdtPath);/*from ww w. j av a2 s .com*/ BrowseAction action = BrowseAction.buildForFile(winEdtPath); JButton browse = new JButton(Globals.lang("Browse")); browse.addActionListener(action); builder.append(browse); builder.nextLine(); builder.append(Globals.lang("Cite command") + ":"); builder.append(citeCommand); settings = builder.getPanel(); }
From source file:net.sf.jabref.ExternalTab.java
License:Open Source License
public ExternalTab(JabRefFrame frame, PrefsDialog3 prefsDiag, JabRefPreferences prefs, HelpDialog helpDialog) { _prefs = prefs;/*from w w w. ja v a 2 s. com*/ _frame = frame; setLayout(new BorderLayout()); psDir = new JTextField(25); pdfDir = new JTextField(25); fileDir = new JTextField(25); bibLocationAsFileDir = new JCheckBox(Globals.lang("Allow file links relative to each bib file's location")); bibLocAsPrimaryDir = new JCheckBox(Globals.lang("Use the bib file location as primary file directory")); bibLocAsPrimaryDir.setToolTipText(Globals.lang("When downloading files, or moving linked files to the " + "file directory, prefer the bib file location rather than the file directory set above")); bibLocationAsFileDir.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent changeEvent) { bibLocAsPrimaryDir.setEnabled(bibLocationAsFileDir.isSelected()); } }); JButton editFileTypes = new JButton(Globals.lang("Manage external file types")); runAutoFileSearch = new JCheckBox( Globals.lang("When opening file link, search for matching file if no link is defined")); allowFileAutoOpenBrowse = new JCheckBox( Globals.lang("Automatically open browse dialog when creating new file link")); regExpTextField = new JTextField(25); useRegExpComboBox = new JRadioButton(Globals.lang("Use Regular Expression Search")); ItemListener regExpListener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { regExpTextField.setEditable(useRegExpComboBox.isSelected()); } }; useRegExpComboBox.addItemListener(regExpListener); editFileTypes.addActionListener(ExternalFileTypeEditor.getAction(prefsDiag)); ButtonGroup bg = new ButtonGroup(); bg.add(matchExactKeyOnly); bg.add(matchStartsWithKey); bg.add(useRegExpComboBox); BrowseAction browse; FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:150dlu, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("External file links")); JPanel pan = new JPanel(); builder.append(pan); /** * Fix for [ 1749613 ] About translation * * https://sourceforge.net/tracker/index.php?func=detail&aid=1749613&group_id=92314&atid=600306 * * Cannot really use %0 to refer to the file type, since this ruins translation. */ JLabel lab = new JLabel(Globals.lang("Main file directory") + ':'); builder.append(lab); builder.append(fileDir); browse = BrowseAction.buildForDir(_frame, fileDir); builder.append(new JButton(browse)); builder.nextLine(); builder.append(new JPanel()); builder.append(bibLocationAsFileDir, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(bibLocAsPrimaryDir, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(matchStartsWithKey, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(matchExactKeyOnly, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(useRegExpComboBox); builder.append(regExpTextField); HelpAction helpAction = new HelpAction(helpDialog, GUIGlobals.regularExpressionSearchHelp, Globals.lang("Help on Regular Expression Search"), GUIGlobals.getIconUrl("helpSmall")); builder.append(helpAction.getIconButton()); builder.nextLine(); builder.append(new JPanel()); builder.append(runAutoFileSearch, 3); builder.nextLine(); builder.append(new JPanel()); builder.append(allowFileAutoOpenBrowse); builder.nextLine(); builder.appendSeparator(Globals.lang("Sending of emails")); builder.append(new JPanel()); lab = new JLabel(Globals.lang("Subject for sending an email with references").concat(":")); builder.append(lab); emailSubject = new JTextField(25); builder.append(emailSubject); builder.nextLine(); builder.append(new JPanel()); openFoldersOfAttachedFiles = new JCheckBox(Globals.lang("Automatically open folders of attached files")); builder.append(openFoldersOfAttachedFiles); builder.nextLine(); builder.appendSeparator(Globals.lang("Legacy file fields")); pan = new JPanel(); builder.append(pan); builder.append(new JLabel("<html>" + Globals.lang("Note that these settings are used for the legacy " + "<b>pdf</b> and <b>ps</b> fields only.<br>For most users, setting the <b>Main file directory</b> " + "above should be sufficient.") + "</html>"), 5); builder.nextLine(); pan = new JPanel(); builder.append(pan); lab = new JLabel(Globals.lang("Main PDF directory") + ':'); builder.append(lab); builder.append(pdfDir); browse = BrowseAction.buildForDir(_frame, pdfDir); builder.append(new JButton(browse)); builder.nextLine(); pan = new JPanel(); builder.append(pan); lab = new JLabel(Globals.lang("Main PS directory") + ':'); builder.append(lab); builder.append(psDir); browse = BrowseAction.buildForDir(_frame, psDir); builder.append(new JButton(browse)); builder.nextLine(); builder.appendSeparator(Globals.lang("External programs")); builder.nextLine(); JPanel butpan = new JPanel(); butpan.setLayout(new GridLayout(2, 3)); addSettingsButton(new PushToLyx(), butpan); addSettingsButton(new PushToEmacs(), butpan); addSettingsButton(new PushToWinEdt(), butpan); addSettingsButton(new PushToVim(), butpan); addSettingsButton(new PushToLatexEditor(), butpan); addSettingsButton(new PushToTeXstudio(), butpan); builder.append(new JPanel()); builder.append(butpan, 3); builder.nextLine(); builder.append(pan); builder.append(editFileTypes); pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.FileSortTab.java
License:Open Source License
public FileSortTab(JabRefFrame frame, JabRefPreferences prefs) { this._prefs = prefs; FormLayout layout = new FormLayout("4dlu, left:pref, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.leadingColumnOffset(1);// www .ja v a 2 s. com { // SAVE SORT ORDER // create Components saveInOriginalOrder = new JRadioButton(Globals.lang("Save entries in their original order")); saveInTableOrder = new JRadioButton(Globals.lang("Save in current table sort order")); saveInSpecifiedOrder = new JRadioButton(Globals.lang("Save entries ordered as specified")); ButtonGroup bg = new ButtonGroup(); bg.add(saveInOriginalOrder); bg.add(saveInTableOrder); bg.add(saveInSpecifiedOrder); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { boolean selected = e.getSource() == saveInSpecifiedOrder; savePriSort.setEnabled(selected); savePriField.setEnabled(selected); savePriDesc.setEnabled(selected); saveSecSort.setEnabled(selected); saveSecField.setEnabled(selected); saveSecDesc.setEnabled(selected); saveTerSort.setEnabled(selected); saveTerField.setEnabled(selected); saveTerDesc.setEnabled(selected); } }; saveInOriginalOrder.addActionListener(listener); saveInTableOrder.addActionListener(listener); saveInSpecifiedOrder.addActionListener(listener); ArrayList<String> v = new ArrayList<String>(Arrays.asList(BibtexFields.getAllFieldNames())); v.add(BibtexFields.KEY_FIELD); Collections.sort(v); String[] allPlusKey = v.toArray(new String[v.size()]); savePriSort = new JComboBox(allPlusKey); saveSecSort = new JComboBox(allPlusKey); saveTerSort = new JComboBox(allPlusKey); savePriField = new JTextField(10); saveSecField = new JTextField(10); saveTerField = new JTextField(10); savePriSort.insertItemAt(Globals.lang("<select>"), 0); saveSecSort.insertItemAt(Globals.lang("<select>"), 0); saveTerSort.insertItemAt(Globals.lang("<select>"), 0); savePriSort.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (savePriSort.getSelectedIndex() > 0) { savePriField.setText(savePriSort.getSelectedItem().toString()); savePriSort.setSelectedIndex(0); } } }); saveSecSort.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (saveSecSort.getSelectedIndex() > 0) { saveSecField.setText(saveSecSort.getSelectedItem().toString()); saveSecSort.setSelectedIndex(0); } } }); saveTerSort.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (saveTerSort.getSelectedIndex() > 0) { saveTerField.setText(saveTerSort.getSelectedItem().toString()); saveTerSort.setSelectedIndex(0); } } }); savePriDesc = new JCheckBox(Globals.lang("Descending")); saveSecDesc = new JCheckBox(Globals.lang("Descending")); saveTerDesc = new JCheckBox(Globals.lang("Descending")); // create GUI JLabel lab; builder.appendSeparator(Globals.lang("Save sort order")); builder.append(saveInOriginalOrder, 1); builder.nextLine(); builder.append(saveInTableOrder, 1); builder.nextLine(); builder.append(saveInSpecifiedOrder, 1); builder.nextLine(); // Create a new panel with its own FormLayout for these items: FormLayout layout2 = new FormLayout("right:pref, 8dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, left:pref", ""); DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2); lab = new JLabel(Globals.lang("Primary sort criterion")); builder2.append(lab); builder2.append(savePriSort); builder2.append(savePriField); builder2.append(savePriDesc); builder2.nextLine(); lab = new JLabel(Globals.lang("Secondary sort criterion")); builder2.append(lab); builder2.append(saveSecSort); builder2.append(saveSecField); builder2.append(saveSecDesc); builder2.nextLine(); lab = new JLabel(Globals.lang("Tertiary sort criterion")); builder2.append(lab); builder2.append(saveTerSort); builder2.append(saveTerField); builder2.append(saveTerDesc); JPanel saveSpecPanel = builder2.getPanel(); builder.append(saveSpecPanel); builder.nextLine(); } { // EXPORT SORT ORDER // create Components exportInOriginalOrder = new JRadioButton(Globals.lang("Export entries in their original order")); exportInTableOrder = new JRadioButton(Globals.lang("Export in current table sort order")); exportInSpecifiedOrder = new JRadioButton(Globals.lang("Export entries ordered as specified")); ButtonGroup bg = new ButtonGroup(); bg.add(exportInOriginalOrder); bg.add(exportInTableOrder); bg.add(exportInSpecifiedOrder); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { boolean selected = e.getSource() == exportInSpecifiedOrder; exportPriSort.setEnabled(selected); exportPriField.setEnabled(selected); exportPriDesc.setEnabled(selected); exportSecSort.setEnabled(selected); exportSecField.setEnabled(selected); exportSecDesc.setEnabled(selected); exportTerSort.setEnabled(selected); exportTerField.setEnabled(selected); exportTerDesc.setEnabled(selected); } }; exportInOriginalOrder.addActionListener(listener); exportInTableOrder.addActionListener(listener); exportInSpecifiedOrder.addActionListener(listener); ArrayList<String> v = new ArrayList<String>(Arrays.asList(BibtexFields.getAllFieldNames())); v.add(BibtexFields.KEY_FIELD); Collections.sort(v); String[] allPlusKey = v.toArray(new String[v.size()]); exportPriSort = new JComboBox(allPlusKey); exportSecSort = new JComboBox(allPlusKey); exportTerSort = new JComboBox(allPlusKey); exportPriField = new JTextField(10); exportSecField = new JTextField(10); exportTerField = new JTextField(10); exportPriSort.insertItemAt(Globals.lang("<select>"), 0); exportSecSort.insertItemAt(Globals.lang("<select>"), 0); exportTerSort.insertItemAt(Globals.lang("<select>"), 0); exportPriSort.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (exportPriSort.getSelectedIndex() > 0) { exportPriField.setText(exportPriSort.getSelectedItem().toString()); exportPriSort.setSelectedIndex(0); } } }); exportSecSort.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (exportSecSort.getSelectedIndex() > 0) { exportSecField.setText(exportSecSort.getSelectedItem().toString()); exportSecSort.setSelectedIndex(0); } } }); exportTerSort.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (exportTerSort.getSelectedIndex() > 0) { exportTerField.setText(exportTerSort.getSelectedItem().toString()); exportTerSort.setSelectedIndex(0); } } }); exportPriDesc = new JCheckBox(Globals.lang("Descending")); exportSecDesc = new JCheckBox(Globals.lang("Descending")); exportTerDesc = new JCheckBox(Globals.lang("Descending")); // create GUI JLabel lab; builder.appendSeparator(Globals.lang("Export sort order")); builder.append(exportInOriginalOrder, 1); builder.nextLine(); builder.append(exportInTableOrder, 1); builder.nextLine(); builder.append(exportInSpecifiedOrder, 1); builder.nextLine(); // Create a new panel with its own FormLayout for these items: FormLayout layout2 = new FormLayout("right:pref, 8dlu, fill:pref, 4dlu, fill:60dlu, 4dlu, left:pref", ""); DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2); lab = new JLabel(Globals.lang("Primary sort criterion")); builder2.append(lab); builder2.append(exportPriSort); builder2.append(exportPriField); builder2.append(exportPriDesc); builder2.nextLine(); lab = new JLabel(Globals.lang("Secondary sort criterion")); builder2.append(lab); builder2.append(exportSecSort); builder2.append(exportSecField); builder2.append(exportSecDesc); builder2.nextLine(); lab = new JLabel(Globals.lang("Tertiary sort criterion")); builder2.append(lab); builder2.append(exportTerSort); builder2.append(exportTerField); builder2.append(exportTerDesc); builder.append(builder2.getPanel()); builder.nextLine(); } // COMBINE EVERYTHING JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); setLayout(new BorderLayout()); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.FileTab.java
License:Open Source License
public FileTab(JabRefFrame frame, JabRefPreferences prefs) { _prefs = prefs;/*ww w . ja v a 2 s . co m*/ _frame = frame; HelpAction autosaveHelp = new HelpAction(frame.helpDiag, GUIGlobals.autosaveHelp, "Help", GUIGlobals.getIconUrl("helpSmall")); openLast = new JCheckBox(Globals.lang("Open last edited databases at startup")); backup = new JCheckBox(Globals.lang("Backup old file when saving")); autoSave = new JCheckBox(Globals.lang(JabRefPreferences.AUTO_SAVE)); promptBeforeUsingAutoSave = new JCheckBox( Globals.lang("Prompt before recovering a database from an autosave file")); autoSaveInterval = new JSpinner(new SpinnerNumberModel(1, 1, 60, 1)); valueDelimiter = new JComboBox( new String[] { Globals.lang("Quotes") + ": \", \"", Globals.lang("Curly Brackets") + ": {, }" }); includeEmptyFields = new JCheckBox(Globals.lang("Include empty fields")); sameColumn = new JCheckBox(Globals.lang("Start field contents in same column")); camelCase = new JCheckBox(Globals .lang("Use camel case for field names (e.g., \"HowPublished\" instead of \"howpublished\")")); resolveStringsAll = new JRadioButton(Globals.lang("Resolve strings for all fields except") + ":"); resolveStringsStandard = new JRadioButton(Globals.lang("Resolve strings for standard BibTeX fields only")); ButtonGroup bg = new ButtonGroup(); bg.add(resolveStringsAll); bg.add(resolveStringsStandard); //for LWang_AdjustableFieldOrder // ButtonGroup bgFieldOrderStyle=new ButtonGroup(); // sortFieldInAlphabetaOrder = new JRadioButton(Globals.lang("Sort fields in alphabeta order (as ver >= 2.10)")); // unSortFieldStyle = new JRadioButton(Globals.lang("Do not sort fields (as ver<=2.9.2)")); // orderAsUserDefined= new JRadioButton(Globals.lang("Save fields as user defined order")); // bgFieldOrderStyle.add(sortFieldInAlphabetaOrder); // bgFieldOrderStyle.add(unSortFieldStyle); // bgFieldOrderStyle.add(orderAsUserDefined); userDefinedFieldOrder = new JTextField(_prefs.get(JabRefPreferences.WRITEFIELD_USERDEFINEDORDER)); //need to use JcomboBox in the future // This is sort of a quick hack newlineSeparator = new JComboBox(new String[] { "CR", "CR/LF", "LF" }); bracesAroundCapitalsFields = new JTextField(25); nonWrappableFields = new JTextField(25); doNotResolveStringsFor = new JTextField(30); autoDoubleBraces = new JCheckBox( //+ Globals.lang("Store fields with double braces, and remove extra braces when loading.<BR>" //+ "Double braces signal that BibTeX should preserve character case.") + "</HTML>"); Globals.lang("Remove double braces around BibTeX fields when loading.")); autoSave.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent changeEvent) { autoSaveInterval.setEnabled(autoSave.isSelected()); promptBeforeUsingAutoSave.setEnabled(autoSave.isSelected()); } }); FormLayout layout = new FormLayout("left:pref, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("General")); builder.nextLine(); builder.append(openLast, 3); builder.nextLine(); builder.append(backup, 3); builder.nextLine(); builder.append(autoDoubleBraces, 3); builder.nextLine(); JLabel label = new JLabel( Globals.lang("Store the following fields with braces around capital letters") + ":"); builder.append(label); builder.append(bracesAroundCapitalsFields); builder.nextLine(); label = new JLabel(Globals.lang("Do not wrap the following fields when saving") + ":"); builder.append(label); builder.append(nonWrappableFields); builder.nextLine(); builder.append(resolveStringsStandard, 3); builder.nextLine(); builder.append(resolveStringsAll); builder.append(doNotResolveStringsFor); builder.nextLine(); JLabel lab = new JLabel(Globals.lang("Newline separator") + ":"); builder.append(lab); builder.append(newlineSeparator); builder.nextLine(); builder.appendSeparator(Globals.lang("Autosave")); builder.append(autoSave, 1); JButton hlp = new JButton(autosaveHelp); hlp.setText(null); hlp.setPreferredSize(new Dimension(24, 24)); JPanel hPan = new JPanel(); hPan.setLayout(new BorderLayout()); hPan.add(hlp, BorderLayout.EAST); builder.append(hPan); builder.nextLine(); builder.append(Globals.lang("Autosave interval (minutes)") + ":"); builder.append(autoSaveInterval); builder.nextLine(); builder.append(promptBeforeUsingAutoSave); builder.nextLine(); builder.appendSeparator(Globals.lang("Field saving options")); builder.nextLine(); builder.append(camelCase); builder.nextLine(); builder.append(sameColumn); /*FormLayout layout2 = new FormLayout( "left:pref, 8dlu, fill:pref", ""); DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2); builder2.append(new JLabel(Globals.lang("Field value delimiter. E.g., \"author={x}\" or \"author='x'\"") + ":")); builder2.append(valueDelimiter); builder.nextLine(); builder.append(builder2.getPanel());*/ builder.append(new JPanel()); builder.nextLine(); builder.append(includeEmptyFields); builder.append(new JPanel()); builder.nextLine(); wrapFieldLine = new JCheckBox(Globals.lang("Wrap fields as ver 2.9.2")); builder.append(wrapFieldLine); builder.nextLine(); //for LWang_AdjustableFieldOrder String[] _rbs0 = { "Sort fields in alphabeta order (as ver 2.10)", "Sort fields in old fasion (as ver 2.9.2)", "Save fields as user defined order" }; ArrayList<String> _rbs = new ArrayList<String>(); for (String _rb : _rbs0) { _rbs.add(Globals.lang(_rb)); } bgFieldOrderStyle = createRadioBg(_rbs); userDefinedFieldOrder = new JTextField(_prefs.get(JabRefPreferences.WRITEFIELD_USERDEFINEDORDER)); //need to use JcomboBox in the future createAdFieldOrderBg(builder, bgFieldOrderStyle, userDefinedFieldOrder); // builder.append(sortFieldInAlphabetaOrder); // builder.nextLine(); // builder.append(unSortFieldStyle); // builder.nextLine(); // builder.append(orderAsUserDefined); // builder.append(userDefinedFieldOrder); // builder.nextLine(); JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); setLayout(new BorderLayout()); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.GeneralTab.java
License:Open Source License
public GeneralTab(JabRefFrame frame, JabRefPreferences prefs) { _prefs = prefs;//from w w w .j a v a 2 s. c o m setLayout(new BorderLayout()); allowEditing = new JCheckBox(Globals.lang("Allow editing in table cells")); memoryStick = new JCheckBox( Globals.lang("Load and Save preferences from/to jabref.xml on start-up (memory stick mode)")); defSort = new JCheckBox(Globals.lang("Sort Automatically")); ctrlClick = new JCheckBox(Globals.lang("Open right-click menu with Ctrl+left button")); useOwner = new JCheckBox(Globals.lang("Mark new entries with owner name") + ':'); useTimeStamp = new JCheckBox( Globals.lang("Mark new entries with addition date") + ". " + Globals.lang("Date format") + ':'); useTimeStamp.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent arg0) { updateTimeStamp.setEnabled(useTimeStamp.isSelected()); } }); updateTimeStamp = new JCheckBox(Globals.lang("Update timestamp on modification")); overwriteOwner = new JCheckBox(Globals.lang("Overwrite")); overwriteTimeStamp = new JCheckBox(Globals.lang("Overwrite")); overwriteOwner.setToolTipText( Globals.lang("If a pasted or imported entry already has " + "the field set, overwrite.")); overwriteTimeStamp.setToolTipText( Globals.lang("If a pasted or imported entry already has " + "the field set, overwrite.")); keyDuplicateWarningDialog = new JCheckBox( Globals.lang("Show warning dialog when a duplicate BibTeX key is entered")); keyEmptyWarningDialog = new JCheckBox( Globals.lang("Show warning dialog when an empty BibTeX key is entered")); // JZTODO lyrics enforceLegalKeys = new JCheckBox(Globals.lang("Enforce legal characters in BibTeX keys")); confirmDelete = new JCheckBox(Globals.lang("Show confirmation dialog when deleting entries")); useImportInspector = new JCheckBox( Globals.lang("Display imported entries in an inspection window before they are added.")); useImportInspectorForSingle = new JCheckBox( Globals.lang("Use inspection window also when a single entry is imported.")); markImportedEntries = new JCheckBox(Globals.lang("Mark entries imported into an existing database")); unmarkAllEntriesBeforeImporting = new JCheckBox( Globals.lang("Unmark all entries before importing new entries into an existing database")); defOwnerField = new JTextField(); timeStampFormat = new JTextField(); timeStampField = new JTextField(); HelpAction ownerHelp = new HelpAction(frame.helpDiag, GUIGlobals.ownerHelp, "Help", GUIGlobals.getIconUrl("helpSmall")); HelpAction timeStampHelp = new HelpAction(frame.helpDiag, GUIGlobals.timeStampHelp, "Help", GUIGlobals.getIconUrl("helpSmall")); inspectionWarnDupli = new JCheckBox( Globals.lang("Warn about unresolved duplicates when closing inspection window")); Insets marg = new Insets(0, 12, 3, 0); useImportInspectorForSingle.setMargin(marg); inspectionWarnDupli.setMargin(marg); // We need a listener on useImportInspector to enable and disable the // import inspector related choices; useImportInspector.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent event) { useImportInspectorForSingle.setEnabled(useImportInspector.isSelected()); inspectionWarnDupli.setEnabled(useImportInspector.isSelected()); } }); FormLayout layout = new FormLayout( "8dlu, 1dlu, left:170dlu, 4dlu, fill:pref, 4dlu, fill:pref, 4dlu, left:pref, 4dlu, left:pref, 4dlu, left:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("General")); builder.nextLine(); builder.append(useImportInspector, 13); builder.nextLine(); builder.append(new JPanel()); builder.append(useImportInspectorForSingle, 11); builder.nextLine(); builder.append(new JPanel()); builder.append(inspectionWarnDupli, 11); builder.nextLine(); builder.append(ctrlClick, 13); builder.nextLine(); builder.append(confirmDelete, 13); builder.nextLine(); builder.append(keyDuplicateWarningDialog, 13); builder.nextLine(); builder.append(keyEmptyWarningDialog, 13); builder.nextLine(); builder.append(enforceLegalKeys, 13); builder.nextLine(); builder.append(memoryStick, 13); // Create a new panel with its own FormLayout for the last items: builder.append(useOwner, 3); builder.append(defOwnerField); builder.append(overwriteOwner); builder.append(new JPanel(), 3); JButton hlp = new JButton(ownerHelp); hlp.setText(null); hlp.setPreferredSize(new Dimension(24, 24)); builder.append(hlp); builder.nextLine(); builder.append(useTimeStamp, 3); builder.append(timeStampFormat); builder.append(overwriteTimeStamp); builder.append(Globals.lang("Field name") + ':'); builder.append(timeStampField); hlp = new JButton(timeStampHelp); hlp.setText(null); hlp.setPreferredSize(new Dimension(24, 24)); builder.append(hlp); builder.nextLine(); builder.append(new JPanel()); builder.append(updateTimeStamp, 2); builder.nextLine(); builder.append(markImportedEntries, 13); builder.nextLine(); builder.append(unmarkAllEntriesBeforeImporting, 13); builder.nextLine(); JLabel lab; lab = new JLabel(Globals.lang("Language") + ':'); builder.append(lab, 3); builder.append(language); builder.nextLine(); lab = new JLabel(Globals.lang("Default encoding") + ':'); builder.append(lab, 3); builder.append(encodings); JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.groups.GroupDialog.java
License:Open Source License
/** * Shows a group add/edit dialog.//from ww w . j a va 2 s . com * * @param jabrefFrame * The parent frame. * @param basePanel * The default grouping field. * @param editedGroup * The group being edited, or null if a new group is to be * created. */ public GroupDialog(JabRefFrame jabrefFrame, BasePanel basePanel, AbstractGroup editedGroup) { super(jabrefFrame, Globals.lang("Edit group"), true); m_basePanel = basePanel; m_editedGroup = editedGroup; // set default values (overwritten if editedGroup != null) m_kgSearchField.setText(jabrefFrame.prefs().get(JabRefPreferences.GROUPS_DEFAULT_FIELD)); // configure elements ButtonGroup groupType = new ButtonGroup(); groupType.add(m_explicitRadioButton); groupType.add(m_keywordsRadioButton); groupType.add(m_searchRadioButton); ButtonGroup groupHierarchy = new ButtonGroup(); groupHierarchy.add(m_independentButton); groupHierarchy.add(m_intersectionButton); groupHierarchy.add(m_unionButton); m_description.setVerticalAlignment(SwingConstants.TOP); getRootPane().setDefaultButton(m_ok); // build individual layout cards for each group m_optionsPanel.setLayout(m_optionsLayout); // ... for explicit group m_optionsPanel.add(new JPanel(), "" + GroupDialog.INDEX_EXPLICITGROUP); // ... for keyword group FormLayout layoutKG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow, 2dlu, left:pref"); DefaultFormBuilder builderKG = new DefaultFormBuilder(layoutKG); builderKG.append(Globals.lang("Field")); builderKG.append(m_kgSearchField, 3); builderKG.nextLine(); builderKG.append(Globals.lang("Keyword")); builderKG.append(m_kgSearchTerm); builderKG.append(new FieldContentSelector(jabrefFrame, m_basePanel, this, m_kgSearchTerm, m_basePanel.metaData(), null, true, ", ")); builderKG.nextLine(); builderKG.append(m_kgCaseSensitive, 3); builderKG.nextLine(); builderKG.append(m_kgRegExp, 3); m_optionsPanel.add(builderKG.getPanel(), "" + GroupDialog.INDEX_KEYWORDGROUP); // ... for search group FormLayout layoutSG = new FormLayout("right:pref, 4dlu, fill:1dlu:grow"); DefaultFormBuilder builderSG = new DefaultFormBuilder(layoutSG); builderSG.append(Globals.lang("Search expression")); builderSG.append(m_sgSearchExpression); builderSG.nextLine(); builderSG.append(m_sgCaseSensitive, 3); builderSG.nextLine(); builderSG.append(m_sgRegExp, 3); m_optionsPanel.add(builderSG.getPanel(), "" + GroupDialog.INDEX_SEARCHGROUP); // ... for buttons panel FormLayout layoutBP = new FormLayout("pref, 4dlu, pref", "p"); layoutBP.setColumnGroups(new int[][] { { 1, 3 } }); ButtonBarBuilder builderBP = new ButtonBarBuilder(); builderBP.addGlue(); builderBP.addButton(m_ok); JButton m_cancel = new JButton(Globals.lang("Cancel")); builderBP.addButton(m_cancel); builderBP.addGlue(); builderBP.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); // create layout FormLayout layoutAll = new FormLayout("right:pref, 4dlu, fill:600px, 4dlu, fill:pref", "p, 3dlu, p, 3dlu, p, 0dlu, p, 0dlu, p, 3dlu, p, 3dlu, p, " + "0dlu, p, 0dlu, p, 3dlu, p, 3dlu, " + "p, 3dlu, p, 3dlu, top:80dlu, 9dlu, p, 9dlu, p"); DefaultFormBuilder builderAll = new DefaultFormBuilder(layoutAll); builderAll.border(Borders.DIALOG); builderAll.appendSeparator(Globals.lang("General")); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(Globals.lang("Name")); builderAll.append(m_name); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_explicitRadioButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_keywordsRadioButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_searchRadioButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(Globals.lang("Hierarchical context")); // JZTODO lyrics builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_independentButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_intersectionButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_unionButton, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(Globals.lang("Options")); builderAll.nextLine(); builderAll.nextLine(); builderAll.append(m_optionsPanel, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(Globals.lang("Description")); builderAll.nextLine(); builderAll.nextLine(); JScrollPane sp = new JScrollPane(m_description, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED) { @Override public Dimension getPreferredSize() { return getMaximumSize(); } }; builderAll.append(sp, 5); builderAll.nextLine(); builderAll.nextLine(); builderAll.appendSeparator(); builderAll.nextLine(); builderAll.nextLine(); //CellConstraints cc = new CellConstraints(); //builderAll.add(builderBP.getPanel(), cc.xyw(builderAll.getColumn(), // builderAll.getRow(), 5, "center, fill")); Container cp = getContentPane(); //cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS)); cp.add(builderAll.getPanel(), BorderLayout.CENTER); cp.add(builderBP.getPanel(), BorderLayout.SOUTH); pack(); setResizable(false); updateComponents(); setLayoutForSelectedGroup(); Util.placeDialog(this, jabrefFrame); // add listeners ItemListener radioButtonItemListener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { setLayoutForSelectedGroup(); updateComponents(); } }; m_explicitRadioButton.addItemListener(radioButtonItemListener); m_keywordsRadioButton.addItemListener(radioButtonItemListener); m_searchRadioButton.addItemListener(radioButtonItemListener); Action cancelAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }; m_cancel.addActionListener(cancelAction); builderAll.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put(Globals.prefs.getKey("Close dialog"), "close"); builderAll.getPanel().getActionMap().put("close", cancelAction); m_ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { m_okPressed = true; if (m_explicitRadioButton.isSelected()) { if (m_editedGroup instanceof ExplicitGroup) { // keep assignments from possible previous ExplicitGroup m_resultingGroup = m_editedGroup.deepCopy(); m_resultingGroup.setName(m_name.getText().trim()); m_resultingGroup.setHierarchicalContext(getContext()); } else { m_resultingGroup = new ExplicitGroup(m_name.getText().trim(), getContext()); if (m_editedGroup != null) { addPreviousEntries(); } } } else if (m_keywordsRadioButton.isSelected()) { // regex is correct, otherwise OK would have been disabled // therefore I don't catch anything here m_resultingGroup = new KeywordGroup(m_name.getText().trim(), m_kgSearchField.getText().trim(), m_kgSearchTerm.getText().trim(), m_kgCaseSensitive.isSelected(), m_kgRegExp.isSelected(), getContext()); if (((m_editedGroup instanceof ExplicitGroup) || (m_editedGroup instanceof SearchGroup)) && m_resultingGroup.supportsAdd()) { addPreviousEntries(); } } else if (m_searchRadioButton.isSelected()) { try { // regex is correct, otherwise OK would have been // disabled // therefore I don't catch anything here m_resultingGroup = new SearchGroup(m_name.getText().trim(), m_sgSearchExpression.getText().trim(), isCaseSensitive(), isRegex(), getContext()); } catch (Exception e1) { // should never happen } } dispose(); } }); CaretListener caretListener = new CaretListener() { @Override public void caretUpdate(CaretEvent e) { updateComponents(); } }; ItemListener itemListener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { updateComponents(); } }; m_name.addCaretListener(caretListener); m_kgSearchField.addCaretListener(caretListener); m_kgSearchTerm.addCaretListener(caretListener); m_kgCaseSensitive.addItemListener(itemListener); m_kgRegExp.addItemListener(itemListener); m_sgSearchExpression.addCaretListener(caretListener); m_sgRegExp.addItemListener(itemListener); m_sgCaseSensitive.addItemListener(itemListener); // configure for current type if (editedGroup instanceof KeywordGroup) { KeywordGroup group = (KeywordGroup) editedGroup; m_name.setText(group.getName()); m_kgSearchField.setText(group.getSearchField()); m_kgSearchTerm.setText(group.getSearchExpression()); m_kgCaseSensitive.setSelected(group.isCaseSensitive()); m_kgRegExp.setSelected(group.isRegExp()); m_keywordsRadioButton.setSelected(true); setContext(editedGroup.getHierarchicalContext()); } else if (editedGroup instanceof SearchGroup) { SearchGroup group = (SearchGroup) editedGroup; m_name.setText(group.getName()); m_sgSearchExpression.setText(group.getSearchExpression()); m_sgCaseSensitive.setSelected(group.isCaseSensitive()); m_sgRegExp.setSelected(group.isRegExp()); m_searchRadioButton.setSelected(true); setContext(editedGroup.getHierarchicalContext()); } else if (editedGroup instanceof ExplicitGroup) { m_name.setText(editedGroup.getName()); m_explicitRadioButton.setSelected(true); setContext(editedGroup.getHierarchicalContext()); } else { // creating new group -> defaults! m_explicitRadioButton.setSelected(true); setContext(GroupHierarchyType.INDEPENDENT); } }
From source file:net.sf.jabref.groups.GroupsPrefsTab.java
License:Open Source License
public GroupsPrefsTab(JabRefPreferences prefs) { this.prefs = prefs; keywordSeparator.addFocusListener(new FocusListener() { @Override// www . j a va 2 s. co m public void focusGained(FocusEvent e) { keywordSeparator.selectAll(); } @Override public void focusLost(FocusEvent e) { // deselection is automatic } }); FormLayout layout = new FormLayout("9dlu, pref", //500px", "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, " + "p, 3dlu, p"); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("View")); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(showIcons); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(showDynamic); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(expandTree); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(autoShow); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(autoHide); builder.nextLine(); builder.nextLine(); builder.nextColumn(); builder.append(autoAssignGroup); builder.nextLine(); builder.nextLine(); builder.appendSeparator(Globals.lang("Dynamic groups")); builder.nextLine(); builder.nextLine(); builder.nextColumn(); // build subcomponent FormLayout layout2 = new FormLayout("left:pref, 2dlu, left:pref", "p, 3dlu, p"); DefaultFormBuilder builder2 = new DefaultFormBuilder(layout2); builder2.append(new JLabel(Globals.lang("Default grouping field") + ":")); builder2.append(groupingField); builder2.nextLine(); builder2.nextLine(); builder2.append(new JLabel(Globals.lang("When adding/removing keywords, separate them by") + ":")); builder2.append(keywordSeparator); builder.append(builder2.getPanel()); setLayout(new BorderLayout()); JPanel panel = builder.getPanel(); panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(panel, BorderLayout.CENTER); }