List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder appendSeparator
public JComponent appendSeparator(String text)
From source file:jgnash.ui.wizards.imports.ImportTwo.java
License:Open Source License
private void layoutMainPanel() { initComponents();/*from w w w .j a va 2s.c om*/ FormLayout layout = new FormLayout("p, 8dlu, d:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout, this); builder.appendSeparator(rb.getString("Title.ModImportTrans")); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("p")); builder.append(helpPane, 3); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("f:85dlu:g")); builder.append(new JScrollPane(table), 3); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(deleteButton); }
From source file:jgnash.ui.wizards.imports.jgnash.ImportZero.java
License:Open Source License
private void layoutMainPanel() { initComponents();/* w w w .ja v a 2s . c o m*/ FormLayout layout = new FormLayout("p, 8dlu, f:d:g, 4dlu, p", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout, this); builder.appendSeparator(rb.getString("Title.FileImport")); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(helpPane, 3); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(rb.getString("Label.FileName"), fileImportField, fileImportButton); builder.nextLine(); builder.append(validFileLabel, 5); }
From source file:jgnash.ui.wizards.imports.qif.PartialOne.java
License:Open Source License
private void layoutMainPanel() { initComponents();// www .j ava 2s . com FormLayout layout = new FormLayout("p, 8dlu, 85dlu:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout, this); builder.appendSeparator(rb.getString("Title.SelDestAccount")); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("p")); builder.append(helpPane, 3); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(rb.getString("Label.DestAccount"), accountCombo); builder.nextLine(); builder.append(rb.getString("Label.DateFormat"), dateFormatCombo); }
From source file:jgnash.ui.wizards.imports.qif.PartialTwo.java
License:Open Source License
private void layoutMainPanel() { initComponents();//from w w w . j a va2 s.com FormLayout layout = new FormLayout("p, 8dlu, d:g", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout, this); builder.appendSeparator(rb.getString("Title.ModQIFTrans")); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("p")); builder.append(helpPane, 3); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.appendRow(RowSpec.decode("f:85dlu:g")); builder.append(new JScrollPane(table), 3); builder.nextLine(); builder.appendRelatedComponentsGapRow(); builder.nextLine(); builder.append(deleteButton); }
From source file:net.pms.encoders.VLCVideo.java
License:Open Source License
@Override public JComponent config() { // Apply the orientation for the locale Locale locale = new Locale(configuration.getLanguage()); ComponentOrientation orientation = ComponentOrientation.getOrientation(locale); String colSpec = FormLayoutUtil.getColSpec("right:pref, 3dlu, pref:grow, 7dlu, right:pref, 3dlu, pref:grow", orientation);/*from w w w .j av a 2 s .com*/ FormLayout layout = new FormLayout(colSpec, ""); // Here goes my 3rd try to learn JGoodies Form layout.setColumnGroups(new int[][] { { 1, 5 }, { 3, 7 } }); DefaultFormBuilder mainPanel = new DefaultFormBuilder(layout); mainPanel.appendSeparator(Messages.getString("VlcTrans.1")); mainPanel.append(experimentalCodecs = new JCheckBox(Messages.getString("VlcTrans.3"), configuration.isVlcExperimentalCodecs()), 3); experimentalCodecs.setContentAreaFilled(false); experimentalCodecs.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { configuration.setVlcExperimentalCodecs(e.getStateChange() == ItemEvent.SELECTED); } }); mainPanel.append(audioSyncEnabled = new JCheckBox(Messages.getString("VlcTrans.4"), configuration.isVlcAudioSyncEnabled()), 3); audioSyncEnabled.setContentAreaFilled(false); audioSyncEnabled.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { configuration.setVlcAudioSyncEnabled(e.getStateChange() == ItemEvent.SELECTED); } }); mainPanel.nextLine(); // Developer stuff. Theoretically is temporary mainPanel.appendSeparator(Messages.getString("VlcTrans.10")); // Add scale as a subpanel because it has an awkward layout mainPanel.append(Messages.getString("VlcTrans.11")); FormLayout scaleLayout = new FormLayout("pref,3dlu,pref", ""); DefaultFormBuilder scalePanel = new DefaultFormBuilder(scaleLayout); double startingScale = Double.valueOf(configuration.getVlcScale()); scalePanel.append(scale = new JTextField(String.valueOf(startingScale))); final JSlider scaleSlider = new JSlider(JSlider.HORIZONTAL, 0, 10, (int) (startingScale * 10)); scalePanel.append(scaleSlider); scaleSlider.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent ce) { String value = String.valueOf((double) scaleSlider.getValue() / 10); scale.setText(value); configuration.setVlcScale(value); } }); scale.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { String typed = scale.getText(); if (!typed.matches("\\d\\.\\d")) { return; } double value = Double.parseDouble(typed); scaleSlider.setValue((int) (value * 10)); configuration.setVlcScale(String.valueOf(value)); } }); mainPanel.append(scalePanel.getPanel(), 3); // Audio sample rate FormLayout sampleRateLayout = new FormLayout( "right:pref, 3dlu, right:pref, 3dlu, right:pref, 3dlu, left:pref", ""); DefaultFormBuilder sampleRatePanel = new DefaultFormBuilder(sampleRateLayout); sampleRateOverride = new JCheckBox(Messages.getString("VlcTrans.17"), configuration.getVlcSampleRateOverride()); sampleRatePanel.append(Messages.getString("VlcTrans.18"), sampleRateOverride); sampleRate = new JTextField(configuration.getVlcSampleRate(), 8); sampleRate.setEnabled(configuration.getVlcSampleRateOverride()); sampleRate.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { configuration.setVlcSampleRate(sampleRate.getText()); } }); sampleRatePanel.append(Messages.getString("VlcTrans.19"), sampleRate); sampleRateOverride.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { boolean checked = e.getStateChange() == ItemEvent.SELECTED; configuration.setVlcSampleRateOverride(checked); sampleRate.setEnabled(checked); } }); mainPanel.nextLine(); mainPanel.append(sampleRatePanel.getPanel(), 7); // Extra options mainPanel.nextLine(); mainPanel.append(Messages.getString("VlcTrans.20"), extraParams = new JTextField(), 5); return mainPanel.getPanel(); }
From source file:net.sf.jabref.AdvancedTab.java
License:Open Source License
public AdvancedTab(JabRefPreferences prefs, HelpDialog diag, JabRef jabRef) { this.jabRef = jabRef; preferences = prefs;//from ww w .j a v a 2 s. c o m this.remotePreferences = new RemotePreferences(preferences); HelpAction remoteHelp = new HelpAction(diag, GUIGlobals.remoteHelp, "Help", GUIGlobals.getIconUrl("helpSmall")); useDefault = new JCheckBox(Globals.lang("Use other look and feel")); useRemoteServer = new JCheckBox(Globals.lang("Listen for remote operation on port") + ':'); useNativeFileDialogOnMac = new JCheckBox(Globals.lang("Use native file dialog")); filechooserDisableRename = new JCheckBox(Globals.lang("Disable file renaming in non-native file dialog")); useIEEEAbrv = new JCheckBox(Globals.lang("Use IEEE LaTeX abbreviations")); biblatexMode = new JCheckBox(Globals.lang("BibLaTeX mode")); remoteServerPort = new JTextField(); String[] possibleLookAndFeels = { "com.jgoodies.plaf.plastic.Plastic3DLookAndFeel", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel", "com.sun.java.swing.plaf.motif.MotifLookAndFeel", "javax.swing.plaf.mac.MacLookAndFeel", "com.sun.java.swing.plaf.gtk.GTKLookAndFeel", "javax.swing.plaf.metal.MetalLookAndFeel" }; // Only list L&F which are available List<String> lookAndFeels = new ArrayList<String>(); for (String lf : possibleLookAndFeels) { try { // Try to find L&F, throws exception if not successful Class.forName(lf); lookAndFeels.add(lf); } catch (ClassNotFoundException ignored) { } } className = new JComboBox(lookAndFeels.toArray(new String[lookAndFeels.size()])); className.setEditable(true); final JComboBox clName = className; useDefault.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { clName.setEnabled(((JCheckBox) e.getSource()).isSelected()); } }); useConvertToEquation = new JCheckBox( Globals.lang("Prefer converting subscripts and superscripts to equations rather than text")); useCaseKeeperOnSearch = new JCheckBox( Globals.lang("Add {} to specified title words on search to keep the correct case")); useUnitFormatterOnSearch = new JCheckBox(Globals .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 (!Globals.ON_MAC) { builder.appendSeparator(Globals.lang("Look and feel")); JLabel lab = new JLabel( Globals.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(Globals.lang("Class name") + ':'); pan2.add(lab); pan2.add(className); builder.append(pan2); builder.nextLine(); builder.append(pan); lab = new JLabel(Globals .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( Globals.lang("and the class must be available in your classpath next time you start JabRef.")); builder.append(lab); builder.nextLine(); } builder.appendSeparator(Globals.lang("Remote operation")); builder.nextLine(); builder.append(new JPanel()); builder.append(new JLabel("<html>" + Globals.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(remoteHelp.getIconButton()); builder.append(p); //if (Globals.ON_MAC) { builder.nextLine(); builder.appendSeparator(Globals.lang("File dialog")); builder.nextLine(); builder.append(new JPanel()); builder.append(useNativeFileDialogOnMac); builder.nextLine(); builder.append(new JPanel()); builder.append(filechooserDisableRename); //} // IEEE builder.nextLine(); builder.appendSeparator(Globals.lang("Search IEEEXplore")); builder.nextLine(); builder.append(new JPanel()); builder.append(useIEEEAbrv); builder.nextLine(); builder.appendSeparator(Globals.lang("BibLaTeX mode")); builder.append(new JPanel()); builder.append(biblatexMode); builder.nextLine(); builder.appendSeparator(Globals.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.AppearancePrefsTab.java
License:Open Source License
/** * Customization of appearance parameters. * * @param prefs a <code>JabRefPreferences</code> value *///from w w w . j a va2 s .c om public AppearancePrefsTab(JabRefPreferences prefs) { _prefs = prefs; setLayout(new BorderLayout()); // Font sizes: fontSize = new JTextField(5); // Row padding size: rowPadding = new JTextField(5); colorCodes = new JCheckBox(Globals.lang("Color codes for required and optional fields")); /*antialias = new JCheckBox(Globals.lang ("Use antialiasing font"));*/ overrideFonts = new JCheckBox(Globals.lang("Override default font settings")); showGrid = new JCheckBox(Globals.lang("Show gridlines")); //useCustomIconTheme = new JCheckBox(Globals.lang("Use custom icon theme")); //customIconThemeFile = new JTextField(); 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(Globals.lang("General")); JPanel p1 = new JPanel(); lab = new JLabel(Globals.lang("Menu and label font size") + ":"); p1.add(lab); p1.add(fontSize); builder.append(p1); builder.nextLine(); builder.append(overrideFonts); builder.nextLine(); builder.appendSeparator(Globals.lang("Table appearance")); //builder.append(antialias); //builder.nextLine(); JPanel p2 = new JPanel(); p2.add(new JLabel(Globals.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(Globals.lang("Set table font")); builder.append(fontButton); builder.nextLine(); builder.appendSeparator(Globals.lang("Table and entry editor colors")); builder.append(colorPanel); //builder.appendSeparator(Globals.lang("Custom icon theme")); //builder.append(useCustomIconTheme); //builder.nextLine(); //JPanel p2 = new JPanel(); //lab = new JLabel(Globals.lang("Custom icon theme file")+":"); //p2.add(lab); //p2.add(customIconThemeFile); //BrowseAction browse = new BrowseAction(null, customIconThemeFile, false); //JButton browseBut = new JButton(Globals.lang("Browse")); //browseBut.addActionListener(browse); //p2.add(browseBut); //builder.append(p2); JPanel upper = new JPanel(), sort = new JPanel(), namesp = new JPanel(), iconCol = new JPanel(); GridBagLayout gbl = new GridBagLayout(); upper.setLayout(gbl); sort.setLayout(gbl); namesp.setLayout(gbl); iconCol.setLayout(gbl); overrideFonts.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { fontSize.setEnabled(overrideFonts.isSelected()); } }); fontButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Font f = new FontSelectorDialog(null, GUIGlobals.CURRENTFONT).getSelectedFont(); if (f != null) { font = f; } } }); /*menuFontButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Font f=new FontSelectorDialog (null, menuFont).getSelectedFont(); if(f==null) return; else menuFont = f; } });*/ JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.ExternalTab.java
License:Open Source License
public ExternalTab(JabRefFrame frame, PrefsDialog3 prefsDiag, JabRefPreferences prefs, HelpDialog helpDialog) { _prefs = prefs;/* ww w.j a v a 2s. c o m*/ _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);/*from w w w.j ava 2s. c o m*/ { // 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;//w w w. j a v a 2s .c o 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); }