001 package nl.cwi.sen1.tide.tool.prefeditor; 002 003 //{{{ imports 004 005 import java.awt.BorderLayout; 006 import java.awt.GridLayout; 007 import java.awt.event.ActionEvent; 008 import java.awt.event.ActionListener; 009 010 import javax.swing.JButton; 011 import javax.swing.JPanel; 012 import javax.swing.JTabbedPane; 013 014 import nl.cwi.sen1.tide.PreferenceListener; 015 import nl.cwi.sen1.tide.PreferenceSet; 016 import nl.cwi.sen1.tide.tool.TideTool; 017 import nl.cwi.sen1.tide.tool.ToolManager; 018 019 //}}} 020 021 public class PreferencesEditor extends TideTool implements PreferenceListener, 022 ActionListener { 023 private PreferenceSet preferences; 024 private FontPreferenceEditor fontPrefs; 025 026 private JButton buttonUpdate; 027 private JButton buttonRevert; 028 029 // {{{ public PreferencesEditor(ToolManager manager) 030 031 public PreferencesEditor(ToolManager manager) { 032 super(manager); 033 034 preferences = manager.getPreferences(); 035 preferences.addPreferenceListener(this); 036 037 JTabbedPane pane = new JTabbedPane(); 038 fontPrefs = new FontPreferenceEditor(this, preferences); 039 pane.addTab("Fonts", null, fontPrefs, "Edit font preferences"); 040 041 setLayout(new BorderLayout()); 042 add("Center", pane); 043 044 JPanel buttons = new JPanel(); 045 buttons.setLayout(new GridLayout(1, 5)); 046 047 buttonUpdate = new JButton("Update"); 048 buttonRevert = new JButton("Revert"); 049 050 buttonUpdate.setEnabled(false); 051 buttonRevert.setEnabled(false); 052 053 buttonUpdate.addActionListener(this); 054 buttonRevert.addActionListener(this); 055 056 buttons.add(new JPanel()); 057 buttons.add(buttonUpdate); 058 buttons.add(new JPanel()); 059 buttons.add(buttonRevert); 060 buttons.add(new JPanel()); 061 062 add("South", buttons); 063 } 064 065 public void preferenceChanged(PreferenceSet prefs, String name,String oldValue, String newValue) {} 066 067 public void preferencesChanged(PreferenceSet prefs) {} 068 069 // }}} 070 // {{{ public void preferencesStatusChanged(boolean clean) 071 072 public void preferencesStatusChanged(PreferenceSet set, boolean clean) {} 073 074 // }}} 075 076 // {{{ void changePending() 077 078 void changePending() { 079 buttonUpdate.setEnabled(true); 080 buttonRevert.setEnabled(true); 081 } 082 083 // }}} 084 // {{{ public void actionPerformed(ActionEvent event) 085 086 public void actionPerformed(ActionEvent event) { 087 if (event.getSource() == buttonUpdate) { 088 fontPrefs.doUpdate(); 089 buttonUpdate.setEnabled(false); 090 buttonRevert.setEnabled(false); 091 } else if (event.getSource() == buttonRevert) { 092 fontPrefs.doRevert(); 093 buttonUpdate.setEnabled(false); 094 buttonRevert.setEnabled(false); 095 } 096 } 097 }