package net.sf.jabref.groups; import java.awt.BorderLayout; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.*; import net.sf.jabref.Globals; import net.sf.jabref.JabRefPreferences; import net.sf.jabref.PrefsTab; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.layout.FormLayout; // JZTODO lyrics public class GroupsPrefsTab extends JPanel implements PrefsTab { private final JCheckBox showIcons = new JCheckBox(Globals.lang("Show icons for groups")); private final JCheckBox showDynamic = new JCheckBox( "<html>"+Globals.lang("Show dynamic groups in <i>italics</i>")+"</html>"); private final JCheckBox expandTree = new JCheckBox( Globals.lang("Initially show groups tree expanded")); private final JCheckBox autoShow = new JCheckBox( Globals.lang("Automatically show groups interface when switching to a database that contains groups")); private final JCheckBox autoHide = new JCheckBox( Globals.lang("Automatically hide groups interface when switching to a database that contains no groups")); private JTextField groupingField = new JTextField(20); private JTextField keywordSeparator = new JTextField(2); private final JabRefPreferences prefs; public GroupsPrefsTab(JabRefPreferences prefs) { this.prefs = prefs; keywordSeparator.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { keywordSeparator.selectAll(); } 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.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); } public void setValues() { showIcons.setSelected(prefs.getBoolean("groupShowIcons")); showDynamic.setSelected(prefs.getBoolean("groupShowDynamic")); expandTree.setSelected(prefs.getBoolean("groupExpandTree")); groupingField.setText(prefs.get("groupsDefaultField")); autoShow.setSelected(prefs.getBoolean("groupAutoShow")); autoHide.setSelected(prefs.getBoolean("groupAutoHide")); keywordSeparator.setText(prefs.get("groupKeywordSeparator")); } public void storeSettings() { prefs.putBoolean("groupShowIcons", showIcons.isSelected()); prefs.putBoolean("groupShowDynamic", showDynamic.isSelected()); prefs.putBoolean("groupExpandTree", expandTree.isSelected()); prefs.put("groupsDefaultField", groupingField.getText().trim()); prefs.putBoolean("groupAutoShow", autoShow.isSelected()); prefs.putBoolean("groupAutoHide", autoHide.isSelected()); prefs.put("groupKeywordSeparator", keywordSeparator.getText()); } public boolean readyToClose() { return true; } public String getTabName() { return Globals.lang("Groups"); } }