List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder append
public JLabel append(String textWithMnemonic, Component component)
From source file:net.sf.jabref.FileTab.java
License:Open Source License
public FileTab(JabRefFrame frame, JabRefPreferences prefs) { _prefs = prefs;//w w w. j av 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. jav 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.AutoGroupDialog.java
License:Open Source License
/** * @param groupsRoot/*www. j a v a 2 s. c om*/ * The original set of groups, which is required as undo * information when all groups are cleared. */ public AutoGroupDialog(JabRefFrame jabrefFrame, BasePanel basePanel, GroupSelector groupSelector, GroupTreeNode groupsRoot, String defaultField, String defaultRemove, String defaultDeliminator) { super(jabrefFrame, Globals.lang("Automatically create groups"), true); frame = jabrefFrame; gs = groupSelector; panel = basePanel; m_groupsRoot = groupsRoot; field.setText(defaultField); remove.setText(defaultRemove); deliminator.setText(defaultDeliminator); nd.setSelected(true); ActionListener okListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ok_pressed = true; dispose(); GroupTreeNode autoGroupsRoot = new GroupTreeNode(new ExplicitGroup( Globals.lang("Automatically created groups"), GroupHierarchyType.INCLUDING)); Set<String> hs = null; String field = field(); if (keywords.isSelected()) { if (nd.isSelected()) { hs = Util.findDeliminatedWordsInField(panel.getDatabase(), field().toLowerCase().trim(), deliminator.getText()); } else { hs = Util.findAllWordsInField(panel.getDatabase(), field().toLowerCase().trim(), remove()); } } else if (authors.isSelected()) { List<String> fields = new ArrayList<String>(2); fields.add("author"); hs = Util.findAuthorLastNames(panel.getDatabase(), fields); field = "author"; } else if (editors.isSelected()) { List<String> fields = new ArrayList<String>(2); fields.add("editor"); hs = Util.findAuthorLastNames(panel.getDatabase(), fields); field = "editor"; } for (String keyword : hs) { KeywordGroup group = new KeywordGroup(keyword, field, keyword, false, false, GroupHierarchyType.INDEPENDENT); autoGroupsRoot.add(new GroupTreeNode(group)); } m_groupsRoot.add(autoGroupsRoot); NamedCompound ce = new NamedCompound(Globals.lang("Autogenerate groups")); UndoableAddOrRemoveGroup undo = new UndoableAddOrRemoveGroup(gs, m_groupsRoot, autoGroupsRoot, UndoableAddOrRemoveGroup.ADD_NODE); undo.setRevalidate(true); ce.addEdit(undo); panel.markBaseChanged(); // a change always occurs gs.revalidateGroups(); frame.output(Globals.lang("Created groups.")); ce.end(); panel.undoManager.addEdit(ce); } }; remove.addActionListener(okListener); field.addActionListener(okListener); field.addCaretListener(this); AbstractAction cancelAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }; JButton cancel = new JButton(Globals.lang("Cancel")); cancel.addActionListener(cancelAction); ok.addActionListener(okListener); // Key bindings: JPanel main = new JPanel(); ActionMap am = main.getActionMap(); InputMap im = main.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); im.put(frame.prefs().getKey("Close dialog"), "close"); am.put("close", cancelAction); ButtonGroup bg = new ButtonGroup(); bg.add(keywords); bg.add(authors); bg.add(editors); keywords.setSelected(true); DefaultFormBuilder b = new DefaultFormBuilder( new FormLayout("left:20dlu, 4dlu, left:pref, 4dlu, fill:60dlu, 4dlu, fill:0dlu", ""), main); b.append(keywords, 5); b.nextLine(); b.append(new JPanel()); b.append(Globals.lang("Field to group by") + ":"); b.append(field); b.nextLine(); b.append(new JPanel()); b.append(Globals.lang("Characters to ignore") + ":"); b.append(remove); b.nextLine(); b.append(new JPanel()); b.append(nd); b.append(deliminator); b.nextLine(); b.append(authors, 5); b.nextLine(); b.append(editors, 5); b.nextLine(); JPanel opt = new JPanel(); ButtonBarBuilder bb = new ButtonBarBuilder(opt); bb.addGlue(); bb.addButton(ok); bb.addButton(cancel); bb.addGlue(); // Layout starts here. /*main.setLayout(gbl); opt.setLayout(gbl); main.setBorder(BorderFactory.createTitledBorder(BorderFactory .createEtchedBorder(), Globals.lang("Group properties"))); // Main panel: con.weightx = 0; con.gridwidth = 1; con.insets = new Insets(3, 5, 3, 5); con.anchor = GridBagConstraints.EAST; con.fill = GridBagConstraints.NONE; con.gridx = 0; con.gridy = 0; gbl.setConstraints(nf, con); main.add(nf); con.gridy = 1; gbl.setConstraints(nr, con); main.add(nr); con.gridy = 2; gbl.setConstraints(nd, con); main.add(nd); con.weightx = 1; con.anchor = GridBagConstraints.WEST; con.fill = GridBagConstraints.HORIZONTAL; con.gridy = 0; con.gridx = 1; gbl.setConstraints(field, con); main.add(field); con.gridy = 1; gbl.setConstraints(remove, con); main.add(remove); con.gridy = 2; gbl.setConstraints(deliminator, con); main.add(deliminator); // Option buttons: con.gridx = GridBagConstraints.RELATIVE; con.gridy = GridBagConstraints.RELATIVE; con.weightx = 1; con.gridwidth = 1; con.anchor = GridBagConstraints.EAST; con.fill = GridBagConstraints.NONE; gbl.setConstraints(ok, con); opt.add(ok); con.anchor = GridBagConstraints.WEST; con.gridwidth = GridBagConstraints.REMAINDER; gbl.setConstraints(cancel, con); opt.add(cancel);*/ main.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); opt.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); getContentPane().add(main, BorderLayout.CENTER); getContentPane().add(opt, BorderLayout.SOUTH); // pack(); updateComponents(); pack(); Util.placeDialog(this, frame); }
From source file:net.sf.jabref.gui.preftabs.FileSortTab.java
License:Open Source License
public FileSortTab(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. co m*/ // EXPORT SORT ORDER // create Components exportInOriginalOrder = new JRadioButton(Localization.lang("Export entries in their original order")); exportInTableOrder = new JRadioButton(Localization.lang("Export in current table sort order")); exportInSpecifiedOrder = new JRadioButton(Localization.lang("Export entries ordered as specified")); ButtonGroup buttonGroup = new ButtonGroup(); buttonGroup.add(exportInOriginalOrder); buttonGroup.add(exportInTableOrder); buttonGroup.add(exportInSpecifiedOrder); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { boolean selected = e.getSource() == exportInSpecifiedOrder; exportOrderPanel.setEnabled(selected); } }; exportInOriginalOrder.addActionListener(listener); exportInTableOrder.addActionListener(listener); exportInSpecifiedOrder.addActionListener(listener); // create GUI builder.appendSeparator(Localization.lang("Export sort order")); builder.append(exportInOriginalOrder, 1); builder.nextLine(); builder.append(exportInTableOrder, 1); builder.nextLine(); builder.append(exportInSpecifiedOrder, 1); builder.nextLine(); exportOrderPanel = new SaveOrderConfigDisplay(); builder.append(exportOrderPanel.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.gui.preftabs.FileTab.java
License:Open Source License
public FileTab(JabRefFrame frame, JabRefPreferences prefs) { this.prefs = prefs; this.frame = frame; openLast = new JCheckBox(Localization.lang("Open last edited databases at startup")); backup = new JCheckBox(Localization.lang("Backup old file when saving")); autoSave = new JCheckBox(Localization.lang("Autosave")); promptBeforeUsingAutoSave = new JCheckBox( Localization.lang("Prompt before recovering a database from an autosave file")); autoSaveInterval = new JSpinner(new SpinnerNumberModel(1, 1, 60, 1)); valueDelimiter = new JComboBox<>(new String[] { Localization.lang("Quotes") + ": \", \"", Localization.lang("Curly Brackets") + ": {, }" }); resolveStringsAll = new JRadioButton(Localization.lang("Resolve strings for all fields except") + ":"); resolveStringsStandard = new JRadioButton( Localization.lang("Resolve strings for standard BibTeX fields only")); ButtonGroup bg = new ButtonGroup(); bg.add(resolveStringsAll);//from www . ja v a 2s .c o m bg.add(resolveStringsStandard); // This is sort of a quick hack newlineSeparator = new JComboBox<>(new String[] { "CR", "CR/LF", "LF" }); reformatFileOnSaveAndExport = new JCheckBox( Localization.lang("Always reformat .bib file on save and export")); bracesAroundCapitalsFields = new JTextField(25); nonWrappableFields = new JTextField(25); doNotResolveStringsFor = new JTextField(30); autoSave.addChangeListener(e -> { autoSaveInterval.setEnabled(autoSave.isSelected()); promptBeforeUsingAutoSave.setEnabled(autoSave.isSelected()); }); FormLayout layout = new FormLayout("left:pref, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Localization.lang("General")); builder.nextLine(); builder.append(openLast, 3); builder.nextLine(); builder.append(backup, 3); builder.nextLine(); JLabel label = new JLabel( Localization.lang("Store the following fields with braces around capital letters") + ":"); builder.append(label); builder.append(bracesAroundCapitalsFields); builder.nextLine(); label = new JLabel(Localization.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(Localization.lang("Newline separator") + ":"); builder.append(lab); builder.append(newlineSeparator); builder.nextLine(); builder.append(reformatFileOnSaveAndExport, 3); builder.nextLine(); builder.appendSeparator(Localization.lang("Autosave")); builder.append(autoSave, 1); JButton help = new HelpAction(HelpFiles.autosaveHelp).getHelpButton(); help.setPreferredSize(new Dimension(24, 24)); JPanel hPan = new JPanel(); hPan.setLayout(new BorderLayout()); hPan.add(help, BorderLayout.EAST); builder.append(hPan); builder.nextLine(); builder.append(Localization.lang("Autosave interval (minutes)") + ":"); builder.append(autoSaveInterval); builder.nextLine(); builder.append(promptBeforeUsingAutoSave); 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.gui.preftabs.GeneralTab.java
License:Open Source License
public GeneralTab(JabRefPreferences prefs) { this.prefs = prefs; setLayout(new BorderLayout()); biblatexMode = new JComboBox<>(BibDatabaseMode.values()); biblatexMode.setRenderer(new DefaultBibModeRenderer()); allowEditing = new JCheckBox(Localization.lang("Allow editing in table cells")); memoryStick = new JCheckBox( Localization.lang("Load and Save preferences from/to jabref.xml on start-up (memory stick mode)")); defSort = new JCheckBox(Localization.lang("Sort automatically")); ctrlClick = new JCheckBox(Localization.lang("Open right-click menu with Ctrl+left button")); useOwner = new JCheckBox(Localization.lang("Mark new entries with owner name") + ':'); updateTimeStamp = new JCheckBox(Localization.lang("Update timestamp on modification")); useTimeStamp = new JCheckBox(Localization.lang("Mark new entries with addition date") + ". " + Localization.lang("Date format") + ':'); useTimeStamp.addChangeListener(e -> updateTimeStamp.setEnabled(useTimeStamp.isSelected())); overwriteOwner = new JCheckBox(Localization.lang("Overwrite")); overwriteTimeStamp = new JCheckBox(Localization.lang("Overwrite")); overwriteOwner.setToolTipText(// w w w . j a va 2 s . com Localization.lang("If a pasted or imported entry already has " + "the field set, overwrite.")); overwriteTimeStamp.setToolTipText( Localization.lang("If a pasted or imported entry already has " + "the field set, overwrite.")); keyDuplicateWarningDialog = new JCheckBox( Localization.lang("Show warning dialog when a duplicate BibTeX key is entered")); keyEmptyWarningDialog = new JCheckBox( Localization.lang("Show warning dialog when an empty BibTeX key is entered")); enforceLegalKeys = new JCheckBox(Localization.lang("Enforce legal characters in BibTeX keys")); confirmDelete = new JCheckBox(Localization.lang("Show confirmation dialog when deleting entries")); markImportedEntries = new JCheckBox(Localization.lang("Mark entries imported into an existing database")); unmarkAllEntriesBeforeImporting = new JCheckBox( Localization.lang("Unmark all entries before importing new entries into an existing database")); defOwnerField = new JTextField(); timeStampFormat = new JTextField(); timeStampField = new JTextField(); inspectionWarnDupli = new JCheckBox( Localization.lang("Warn about unresolved duplicates when closing inspection window")); encodings = new JComboBox<>(); encodings.setModel(new DefaultComboBoxModel<>(Encodings.ENCODINGS)); 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(Localization.lang("General")); builder.nextLine(); builder.append(inspectionWarnDupli, 13); 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 help = new HelpAction(HelpFiles.ownerHelp).getHelpButton(); builder.append(help); builder.nextLine(); builder.append(useTimeStamp, 3); builder.append(timeStampFormat); builder.append(overwriteTimeStamp); builder.append(Localization.lang("Field name") + ':'); builder.append(timeStampField); help = new HelpAction(HelpFiles.timeStampHelp).getHelpButton(); builder.append(help); 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(Localization.lang("Language") + ':'); builder.append(lab, 3); builder.append(language); builder.nextLine(); lab = new JLabel(Localization.lang("Default encoding") + ':'); builder.append(lab, 3); builder.append(encodings); builder.nextLine(); builder.appendSeparator(Localization.lang("Default bibliography mode")); builder.append(new JPanel()); builder.append(biblatexMode); JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.labelPattern.ResolveDuplicateLabelDialog.java
License:Open Source License
public ResolveDuplicateLabelDialog(BasePanel panel, String key, List<BibtexEntry> entries) { diag = new JDialog(panel.frame(), Globals.lang("Duplicate BibTeX key"), true); DefaultFormBuilder b = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:pref", "")); b.append(new JLabel(Globals.lang("Duplicate key") + ": " + key), 3); b.nextLine();/* www. jav a 2 s. com*/ b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); boolean first = true; for (BibtexEntry entry : entries) { JCheckBox cb = new JCheckBox(Globals.lang("Generate key"), !first); //JPanel pan = new JPanel(); //pan.setLayout(new BorderLayout()); //pan.add(cb, BorderLayout.NORTH); //cb.add(new JPanel(), BorderLayout.CENTER); b.append(cb); PreviewPanel pp = new PreviewPanel(null, entry, null, new MetaData(), ResolveDuplicateLabelDialog.layout); pp.setPreferredSize(new Dimension(800, 90)); //pp.setBorder(BorderFactory.createEtchedBorder()); b.append(new JScrollPane(pp)); b.nextLine(); cbs.add(cb); first = false; } ButtonBarBuilder bb = new ButtonBarBuilder(); bb.addGlue(); JButton ok = new JButton(Globals.lang("Ok")); bb.addButton(ok); JButton cancel = new JButton(Globals.lang("Cancel")); bb.addButton(cancel); bb.addGlue(); bb.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); diag.getContentPane().add(b.getPanel(), BorderLayout.CENTER); diag.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH); diag.pack(); ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { okPressed = true; diag.dispose(); } }); cancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { diag.dispose(); } }); AbstractAction closeAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { diag.dispose(); } }; ActionMap am = b.getPanel().getActionMap(); InputMap im = b.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); im.put(Globals.prefs.getKey("Close dialog"), "close"); am.put("close", closeAction); }
From source file:net.sf.jabref.NetworkTab.java
License:Open Source License
public NetworkTab(JabRefFrame frame, JabRefPreferences prefs) { _prefs = prefs;//from w w w . ja v a 2 s . c o m setLayout(new BorderLayout()); useProxy = new JCheckBox(Globals.lang("Use custom proxy configuration")); defProxyHostname = new JTextField(); defProxyHostname.setEnabled(false); defProxyPort = new JTextField(); defProxyPort.setEnabled(false); Insets marg = new Insets(0, 12, 3, 0); useProxy.setMargin(marg); defProxyPort.setMargin(marg); // We need a listener on useImportInspector to enable and disable the // import inspector related choices; useProxy.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent event) { //useProxy.setEnabled(useProxy.isSelected()); defProxyHostname.setEnabled(useProxy.isSelected()); defProxyPort.setEnabled(useProxy.isSelected()); } }); FormLayout layout = new FormLayout("1dlu, 8dlu, left:pref, 4dlu, fill:150dlu, 4dlu, fill:pref", ""); //("right:pref, 10dlu, 50dlu, 5dlu, fill:60dlu", ""); //("10dlu, left:50dlu, 4dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.appendSeparator(Globals.lang("Network")); builder.nextLine(); builder.append(useProxy, 5); builder.nextLine(); builder.append(new JPanel()); JLabel lap = new JLabel(Globals.lang("Host") + ':'); builder.append(lap); builder.append(defProxyHostname); builder.nextLine(); builder.append(new JPanel()); JLabel lap2 = new JLabel(Globals.lang("Port") + ':'); builder.append(lap2); //builder.append(new JPanel()); builder.append(defProxyPort); JPanel pan = builder.getPanel(); pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); add(pan, BorderLayout.CENTER); }
From source file:net.sf.jabref.oo.AdvancedCiteDialog.java
License:Open Source License
public AdvancedCiteDialog(JabRefFrame parent) { diag = new JDialog(parent, Globals.lang("Cite special"), true); ButtonGroup bg = new ButtonGroup(); bg.add(inPar);// w w w. j a va 2 s. com bg.add(inText); if (AdvancedCiteDialog.defaultInPar) { inPar.setSelected(true); } else { inText.setSelected(true); } inPar.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent changeEvent) { AdvancedCiteDialog.defaultInPar = inPar.isSelected(); } }); DefaultFormBuilder b = new DefaultFormBuilder(new FormLayout("left:pref, 4dlu, fill:pref", "")); b.append(inPar, 3); b.nextLine(); b.append(inText, 3); b.nextLine(); b.append(Globals.lang("Extra information (e.g. page number)") + ":"); b.append(pageInfo); b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); diag.getContentPane().add(b.getPanel(), BorderLayout.CENTER); ButtonBarBuilder bb = new ButtonBarBuilder(); bb.addGlue(); bb.addButton(ok); bb.addButton(cancel); bb.addGlue(); bb.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); diag.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH); diag.pack(); Action okAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent actionEvent) { okPressed = true; diag.dispose(); } }; ok.addActionListener(okAction); pageInfo.addActionListener(okAction); inPar.addActionListener(okAction); inText.addActionListener(okAction); Action cancelAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent actionEvent) { okPressed = false; diag.dispose(); } }; cancel.addActionListener(cancelAction); b.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(Globals.prefs.getKey("Close dialog"), "close"); b.getPanel().getActionMap().put("close", cancelAction); }
From source file:net.sf.jabref.oo.StyleSelectDialog.java
License:Open Source License
private void init(String initSelection) { this.initSelection = initSelection; ButtonGroup bg = new ButtonGroup(); bg.add(useDefaultAuthoryear);/* w ww . j a va2s . c om*/ bg.add(useDefaultNumerical); bg.add(chooseDirectly); bg.add(setDirectory); if (Globals.prefs.getBoolean("ooUseDefaultAuthoryearStyle")) { useDefaultAuthoryear.setSelected(true); } else if (Globals.prefs.getBoolean("ooUseDefaultNumericalStyle")) { useDefaultNumerical.setSelected(true); } else { if (Globals.prefs.getBoolean("ooChooseStyleDirectly")) { chooseDirectly.setSelected(true); } else { setDirectory.setSelected(true); } } directFile.setText(Globals.prefs.get("ooDirectFile")); styleDir.setText(Globals.prefs.get("ooStyleDirectory")); directFile.setEditable(false); styleDir.setEditable(false); popup.add(edit); BrowseAction dfBrowse = BrowseAction.buildForFile(directFile, directFile); browseDirectFile.addActionListener(dfBrowse); BrowseAction sdBrowse = BrowseAction.buildForDir(styleDir, setDirectory); browseStyleDir.addActionListener(sdBrowse); showDefaultAuthoryearStyle.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { displayDefaultStyle(true); } }); showDefaultNumericalStyle.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { displayDefaultStyle(false); } }); // Add action listener to "Edit" menu item, which is supposed to open the style file in an external editor: edit.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { int i = table.getSelectedRow(); if (i == -1) { return; } ExternalFileType type = Globals.prefs.getExternalFileTypeByExt("jstyle"); String link = tableModel.getElementAt(i).getFile().getPath(); try { if (type != null) { Util.openExternalFileAnyFormat(new MetaData(), link, type); } else { Util.openExternalFileUnknown(frame, null, new MetaData(), link, new UnknownExternalFileType("jstyle")); } } catch (IOException e) { e.printStackTrace(); } } }); diag = new JDialog(frame, Globals.lang("Styles"), true); styles = new BasicEventList<OOBibStyle>(); EventList<OOBibStyle> sortedStyles = new SortedList<OOBibStyle>(styles); // Create a preview panel for previewing styles: preview = new PreviewPanel(null, new MetaData(), ""); // Use the test entry from the Preview settings tab in Preferences: preview.setEntry(prevEntry);//PreviewPrefsTab.getTestEntry()); tableModel = new EventTableModel<OOBibStyle>(sortedStyles, new StyleTableFormat()); table = new JTable(tableModel); TableColumnModel cm = table.getColumnModel(); cm.getColumn(0).setPreferredWidth(100); cm.getColumn(1).setPreferredWidth(200); cm.getColumn(2).setPreferredWidth(80); selectionModel = new EventSelectionModel<OOBibStyle>(sortedStyles); table.setSelectionModel(selectionModel); table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent mouseEvent) { if (mouseEvent.isPopupTrigger()) { tablePopup(mouseEvent); } } @Override public void mouseReleased(MouseEvent mouseEvent) { if (mouseEvent.isPopupTrigger()) { tablePopup(mouseEvent); } } }); selectionModel.getSelected().addListEventListener(new EntrySelectionListener()); styleDir.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(DocumentEvent documentEvent) { readStyles(); setDirectory.setSelected(true); } @Override public void removeUpdate(DocumentEvent documentEvent) { readStyles(); setDirectory.setSelected(true); } @Override public void changedUpdate(DocumentEvent documentEvent) { readStyles(); setDirectory.setSelected(true); } }); directFile.getDocument().addDocumentListener(new DocumentListener() { @Override public void insertUpdate(DocumentEvent documentEvent) { chooseDirectly.setSelected(true); } @Override public void removeUpdate(DocumentEvent documentEvent) { chooseDirectly.setSelected(true); } @Override public void changedUpdate(DocumentEvent documentEvent) { chooseDirectly.setSelected(true); } }); contentPane.setTopComponent(new JScrollPane(table)); contentPane.setBottomComponent(preview); readStyles(); DefaultFormBuilder b = new DefaultFormBuilder( new FormLayout("fill:pref,4dlu,fill:150dlu,4dlu,fill:pref", "")); b.append(useDefaultAuthoryear, 3); b.append(showDefaultAuthoryearStyle); b.nextLine(); b.append(useDefaultNumerical, 3); b.append(showDefaultNumericalStyle); b.nextLine(); b.append(chooseDirectly); b.append(directFile); b.append(browseDirectFile); b.nextLine(); b.append(setDirectory); b.append(styleDir); b.append(browseStyleDir); b.nextLine(); DefaultFormBuilder b2 = new DefaultFormBuilder( new FormLayout("fill:1dlu:grow", "fill:pref, fill:pref, fill:270dlu:grow")); b2.nextLine(); b2.append(new JLabel( "<html>" + Globals.lang("This is the list of available styles. Select the one you want to use.") + "</html>")); b2.nextLine(); b2.append(contentPane); b.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); b2.getPanel().setBorder(BorderFactory.createEmptyBorder(15, 5, 5, 5)); diag.add(b.getPanel(), BorderLayout.NORTH); diag.add(b2.getPanel(), BorderLayout.CENTER); AbstractAction okListener = new AbstractAction() { @Override public void actionPerformed(ActionEvent event) { if (!useDefaultAuthoryear.isSelected() && !useDefaultNumerical.isSelected()) { if (chooseDirectly.isSelected()) { File f = new File(directFile.getText()); if (!f.exists()) { JOptionPane.showMessageDialog(diag, Globals.lang( "You must select either a valid style file, or use a default style."), Globals.lang("Style selection"), JOptionPane.ERROR_MESSAGE); return; } } else { if ((table.getRowCount() == 0) || (table.getSelectedRowCount() == 0)) { JOptionPane.showMessageDialog(diag, Globals.lang( "You must select either a valid style file, or use a default style."), Globals.lang("Style selection"), JOptionPane.ERROR_MESSAGE); return; } } } okPressed = true; storeSettings(); diag.dispose(); } }; ok.addActionListener(okListener); Action cancelListener = new AbstractAction() { @Override public void actionPerformed(ActionEvent event) { diag.dispose(); } }; cancel.addActionListener(cancelListener); ButtonBarBuilder bb = new ButtonBarBuilder(); bb.addGlue(); bb.addButton(ok); bb.addButton(cancel); bb.addGlue(); bb.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); diag.add(bb.getPanel(), BorderLayout.SOUTH); ActionMap am = bb.getPanel().getActionMap(); InputMap im = bb.getPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); im.put(Globals.prefs.getKey("Close dialog"), "close"); am.put("close", cancelListener); im.put(KeyStroke.getKeyStroke("ENTER"), "enterOk"); am.put("enterOk", okListener); diag.pack(); diag.setLocationRelativeTo(frame); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { contentPane.setDividerLocation(contentPane.getSize().height - 150); } }); }