From: <sh...@us...> - 2007-09-24 21:33:37
|
Revision: 10740 http://jedit.svn.sourceforge.net/jedit/?rev=10740&view=rev Author: shlomy Date: 2007-09-24 14:33:33 -0700 (Mon, 24 Sep 2007) Log Message: ----------- Started generalization of mode options pane to be used both by plugin options and by SideKick Mode Options dialog. Currently panels providing mode-specific options are generalized. Modified Paths: -------------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/IModeOptionPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java Added Paths: ----------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java Removed Paths: ------------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeCtagsInvocationPane.java Added: plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java (rev 0) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java 2007-09-24 21:33:33 UTC (rev 10740) @@ -0,0 +1,54 @@ +package ctags.sidekick.options; + +import javax.swing.JLabel; +import javax.swing.JTextField; + +import org.gjt.sp.jedit.jEdit; + +import ctags.sidekick.Plugin; + +@SuppressWarnings("serial") +public class CtagsCmdOptionsPane extends ModeOptionPanel<CtagsCmdOptionsPane.Props> { + + public static class Props { + Props(String s) { + options = s; + } + String options; + } + + static private final String CTAGS_MODE_OPTIONS_LABEL = "options.CtagsSideKick.mode.ctags_options_label"; + private JTextField ctagsCmdOptions; + + public CtagsCmdOptionsPane() { + add(new JLabel(jEdit.getProperty(CTAGS_MODE_OPTIONS_LABEL))); + add(ctagsCmdOptions = new JTextField(30)); + } + + @Override + protected Props createModeProps(String mode) { + return new Props(ModeOptionsPane.getProperty(mode, + Plugin.CTAGS_MODE_OPTIONS)); + } + + @Override + protected void resetModeProps(String mode) { + ModeOptionsPane.clearModeProperty(mode, Plugin.CTAGS_MODE_OPTIONS); + } + + @Override + protected void saveModeProps(String mode, Props props) { + ModeOptionsPane.setProperty(mode, Plugin.CTAGS_MODE_OPTIONS, props.options); + } + + @Override + protected void updatePropsFromUI(Props props) { + props.options = ctagsCmdOptions.getText(); + } + + @Override + protected void updateUIFromProps(Props props) { + ctagsCmdOptions.setText(props.options); + } + +} Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/IModeOptionPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/IModeOptionPane.java 2007-09-24 20:05:11 UTC (rev 10739) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/IModeOptionPane.java 2007-09-24 21:33:33 UTC (rev 10740) @@ -5,6 +5,6 @@ void modeSelected(String mode); // Save all changes (in all modes) void save(); - // Reset current mode options to the defaults - void resetCurrentMode(); + // Sets whether the mode uses the default settings + void setUseDefaults(boolean b); } Deleted: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeCtagsInvocationPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeCtagsInvocationPane.java 2007-09-24 20:05:11 UTC (rev 10739) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeCtagsInvocationPane.java 2007-09-24 21:33:33 UTC (rev 10740) @@ -1,61 +0,0 @@ -package ctags.sidekick.options; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map.Entry; - -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; - -import org.gjt.sp.jedit.jEdit; - -import ctags.sidekick.Plugin; - -@SuppressWarnings("serial") -public class ModeCtagsInvocationPane extends JPanel implements IModeOptionPane { - - static private final String CTAGS_MODE_OPTIONS_LABEL = "options.CtagsSideKick.mode.ctags_options_label"; - private JTextField ctagsOptions; - private HashMap<String, String> modeOptions; - private String mode; - - public ModeCtagsInvocationPane() { - JLabel optionsLabel = new JLabel(jEdit.getProperty(CTAGS_MODE_OPTIONS_LABEL)); - ctagsOptions = new JTextField(30); - add(optionsLabel); - add(ctagsOptions); - modeOptions = new HashMap<String, String>(); - mode = null; - } - - public void modeSelected(String mode) { - if (this.mode != null) - modeOptions.put(this.mode, ctagsOptions.getText()); - this.mode = mode; - String options = modeOptions.get(mode); - if (options == null) { - options = ModeOptionsPane.getProperty(mode, Plugin.CTAGS_MODE_OPTIONS); - modeOptions.put(mode, options); - } - ctagsOptions.setText(options); - } - - public void resetCurrentMode() { - String options = modeOptions.get(null); - modeOptions.put(mode, options); - ctagsOptions.setText(options); - } - - public void save() { - modeOptions.put(this.mode, ctagsOptions.getText()); - Iterator entries = modeOptions.entrySet().iterator(); - while (entries.hasNext()) { - Entry e = (Entry) entries.next(); - String mode = (String) e.getKey(); - String options = (String) e.getValue(); - ModeOptionsPane.setProperty(mode, Plugin.CTAGS_MODE_OPTIONS, options); - } - } - -} Added: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java (rev 0) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java 2007-09-24 21:33:33 UTC (rev 10740) @@ -0,0 +1,66 @@ +package ctags.sidekick.options; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import javax.swing.JPanel; + +abstract public class ModeOptionPanel<Props> extends JPanel implements IModeOptionPane { + + private HashMap<String, Props> modeProps; + private Set<String> useDefaults; // Modes that use default settings + private Props props; // Properties of current mode + private String mode; // Currently selected mode + + // Update the given properties from the UI + abstract protected void updatePropsFromUI(Props props); + // Update the UI from the given properties + abstract protected void updateUIFromProps(Props props); + // Create a new, initialized properties object for the specified mode + abstract protected Props createModeProps(String mode); + // Save (commit) mode properties + abstract protected void saveModeProps(String mode, Props props); + // Reset mode properties to the default settings + abstract protected void resetModeProps(String mode); + + public ModeOptionPanel() { + modeProps = new HashMap<String, Props>(); + useDefaults = new HashSet<String>(); + } + + public void modeSelected(String mode) { + if (this.mode != null) + updatePropsFromUI(props); + this.mode = mode; + props = modeProps.get(mode); + if (props == null) { + props = createModeProps(mode); + modeProps.put(mode, props); + } + updateUIFromProps(props); + setEnabled(! useDefaults.contains(mode)); + } + + public void setUseDefaults(boolean b) { + if (b) + useDefaults.add(mode); + else + useDefaults.remove(mode); + setEnabled(! b); + } + + public void save() { + updatePropsFromUI(props); + Iterator<String> modes = modeProps.keySet().iterator(); + while (modes.hasNext()) { + String m = modes.next(); + if (useDefaults.contains(m)) + resetModeProps(m); + else + saveModeProps(m, modeProps.get(m)); + } + } +} +; \ No newline at end of file Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java 2007-09-24 20:05:11 UTC (rev 10739) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java 2007-09-24 21:33:33 UTC (rev 10740) @@ -25,7 +25,7 @@ protected void _init() { modePanes = new Vector<IModeOptionPane>(); - ModeCtagsInvocationPane invocationPane = new ModeCtagsInvocationPane(); + CtagsCmdOptionsPane invocationPane = new CtagsCmdOptionsPane(); addComponent(invocationPane); modePanes.add(invocationPane); @@ -60,7 +60,7 @@ protected void _reset() { for (int i = 0; i < modePanes.size(); i++) - modePanes.get(i).resetCurrentMode(); + modePanes.get(i).setUseDefaults(true); } protected void _load() Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java 2007-09-24 20:05:11 UTC (rev 10739) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java 2007-09-24 21:33:33 UTC (rev 10740) @@ -164,4 +164,9 @@ processorModel.addElement(model.elementAt(i)); } + public void setUseDefaults(boolean b) { + if (b) + resetCurrentMode(); + } + } Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java 2007-09-24 20:05:11 UTC (rev 10739) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java 2007-09-24 21:33:33 UTC (rev 10740) @@ -15,7 +15,7 @@ import java.util.Arrays; import java.util.Vector; -import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; @@ -38,7 +38,7 @@ JComboBox modeCB; Vector<IModeOptionPane> modePanes; - JButton resetBtn; + JCheckBox useDefaultsCheck; public TreeStyleOptionPane() { @@ -61,7 +61,7 @@ modePanes = new Vector<IModeOptionPane>(); - ModeCtagsInvocationPane invocationPane = new ModeCtagsInvocationPane(); + CtagsCmdOptionsPane invocationPane = new CtagsCmdOptionsPane(); addComponent(invocationPane); modePanes.add(invocationPane); @@ -85,9 +85,9 @@ addSeparator(); - resetBtn = new JButton("Reset to defaults"); - resetBtn.addActionListener(this); - addComponent(resetBtn); + useDefaultsCheck = new JCheckBox("Use default settings"); + useDefaultsCheck.addActionListener(this); + addComponent(useDefaultsCheck); modeCB.setSelectedIndex(0); } @@ -97,10 +97,10 @@ String mode; if (index == 0) { mode = null; - resetBtn.setEnabled(false); + useDefaultsCheck.setEnabled(false); } else { mode = (String) modeCB.getItemAt(index); - resetBtn.setEnabled(true); + useDefaultsCheck.setEnabled(true); } for (int i = 0; i < modePanes.size(); i++) modePanes.get(i).modeSelected(mode); @@ -113,9 +113,9 @@ } public void actionPerformed(ActionEvent e) { - if (e.getSource() == resetBtn) { + if (e.getSource() == useDefaultsCheck) { for (int i = 0; i < modePanes.size(); i++) - modePanes.get(i).resetCurrentMode(); + modePanes.get(i).setUseDefaults(useDefaultsCheck.isSelected()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-09-26 20:00:51
|
Revision: 10758 http://jedit.svn.sourceforge.net/jedit/?rev=10758&view=rev Author: shlomy Date: 2007-09-26 13:00:50 -0700 (Wed, 26 Sep 2007) Log Message: ----------- Fixed saving the changes when Ok is pressed in the plugin options Modified Paths: -------------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java 2007-09-26 15:57:08 UTC (rev 10757) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java 2007-09-26 20:00:50 UTC (rev 10758) @@ -64,7 +64,7 @@ pane.modeSelected(mode); } - public void save() + public void _save() { pane.save(); } Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java 2007-09-26 15:57:08 UTC (rev 10757) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java 2007-09-26 20:00:50 UTC (rev 10758) @@ -10,7 +10,6 @@ public ModeOptionPanelGroup() { panels = new Vector<ModeOptionPanel>(); - props = new Vector<Object>(); } protected void addModePanel(ModeOptionPanel panel) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-09-26 21:52:12
|
Revision: 10759 http://jedit.svn.sourceforge.net/jedit/?rev=10759&view=rev Author: shlomy Date: 2007-09-26 14:52:11 -0700 (Wed, 26 Sep 2007) Log Message: ----------- Fixed the "Use default settings" check-box to recursively disable the mode option pane widgets. Modified Paths: -------------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java 2007-09-26 20:00:50 UTC (rev 10758) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java 2007-09-26 21:52:11 UTC (rev 10759) @@ -14,8 +14,7 @@ import org.gjt.sp.jedit.jEdit; @SuppressWarnings("serial") -public abstract class AbstractModeOptionPane extends AbstractOptionPane - implements ActionListener { +public abstract class AbstractModeOptionPane extends AbstractOptionPane { JComboBox modeCB; JCheckBox useDefaultsCheck; @@ -40,7 +39,11 @@ addComponent("Change settings for mode:", modeCB); useDefaultsCheck = new JCheckBox("Use default settings"); - useDefaultsCheck.addActionListener(this); + useDefaultsCheck.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + useDefaultsChanged(); + } + }); addComponent(useDefaultsCheck); pane = addOptionPane(); @@ -69,9 +72,8 @@ pane.save(); } - public void actionPerformed(ActionEvent e) { - if (e.getSource() == useDefaultsCheck) - pane.setUseDefaults(useDefaultsCheck.isSelected()); + public void useDefaultsChanged() { + pane.setUseDefaults(useDefaultsCheck.isSelected()); } } Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java 2007-09-26 20:00:50 UTC (rev 10758) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java 2007-09-26 21:52:11 UTC (rev 10759) @@ -1,10 +1,12 @@ package ctags.sidekick.options; +import java.awt.Component; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import javax.swing.JComponent; import javax.swing.JPanel; abstract public class ModeOptionPanel extends JPanel implements IModeOptionPane { @@ -49,8 +51,17 @@ else useDefaults.remove(mode); setEnabled(! b); + setEnabled(this, (! b)); } + public void setEnabled(JComponent c, boolean enabled) { + c.setEnabled(enabled); + Component [] children = c.getComponents(); + for (int i = 0; i < children.length; i++) + if (children[i] instanceof JComponent) + setEnabled((JComponent) children[i], enabled); + } + public void save() { updatePropsFromUI(props); Iterator<String> modes = modeProps.keySet().iterator(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2007-09-27 13:37:38
|
Revision: 10764 http://jedit.svn.sourceforge.net/jedit/?rev=10764&view=rev Author: shlomy Date: 2007-09-27 06:37:36 -0700 (Thu, 27 Sep 2007) Log Message: ----------- Replaced the ModeOptionPanel, that inherited JPanel for no reason other than allow UI classes to derive from it, with a ModeOptionPaneController that is used as a helper class inside UI classes rather than being derived by them. This enables the UI classes to derive either from JPanel, AbstractOptionPane, or anything else. Modified Paths: -------------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java Added Paths: ----------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPaneController.java Removed Paths: ------------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java 2007-09-27 08:59:50 UTC (rev 10763) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java 2007-09-27 13:37:36 UTC (rev 10764) @@ -1,6 +1,8 @@ package ctags.sidekick.options; +import javax.swing.JComponent; import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.JTextField; import org.gjt.sp.jedit.jEdit; @@ -8,7 +10,8 @@ import ctags.sidekick.Plugin; @SuppressWarnings("serial") -public class CtagsCmdOptionsPane extends ModeOptionPanel { +public class CtagsCmdOptionsPane extends JPanel + implements ModeOptionPaneController.ModeOptionPane { public static class Props { Props(String s) { @@ -25,29 +28,28 @@ add(ctagsCmdOptions = new JTextField(30)); } - @Override - protected Object createModeProps(String mode) { + public JComponent getComponent() { + return this; + } + + public Object createModeProps(String mode) { return new Props(SideKickModeOptionsPane.getProperty(mode, Plugin.CTAGS_MODE_OPTIONS)); } - @Override - protected void resetModeProps(String mode) { + public void resetModeProps(String mode) { SideKickModeOptionsPane.clearModeProperty(mode, Plugin.CTAGS_MODE_OPTIONS); } - @Override - protected void saveModeProps(String mode, Object props) { + public void saveModeProps(String mode, Object props) { SideKickModeOptionsPane.setProperty(mode, Plugin.CTAGS_MODE_OPTIONS, ((Props)props).options); } - @Override - protected void updatePropsFromUI(Object props) { + public void updatePropsFromUI(Object props) { ((Props)props).options = ctagsCmdOptions.getText(); } - @Override - protected void updateUIFromProps(Object props) { + public void updateUIFromProps(Object props) { ctagsCmdOptions.setText(((Props)props).options); } Added: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPaneController.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPaneController.java (rev 0) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPaneController.java 2007-09-27 13:37:36 UTC (rev 10764) @@ -0,0 +1,81 @@ +package ctags.sidekick.options; + +import java.awt.Component; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import javax.swing.JComponent; + +public class ModeOptionPaneController implements IModeOptionPane { + + interface ModeOptionPane { + // Returns the UI component of the option pane + JComponent getComponent(); + // Update the given properties from the UI + void updatePropsFromUI(Object props); + // Update the UI from the given properties + void updateUIFromProps(Object props); + // Create a new, initialized properties object for the specified mode + Object createModeProps(String mode); + // Save (commit) mode properties + void saveModeProps(String mode, Object props); + // Reset mode properties to the default settings + void resetModeProps(String mode); + } + + private HashMap<String, Object> modeProps; + private Set<String> useDefaults; // Modes that use default settings + private Object props; // Properties of current mode + private String mode; // Currently selected mode + ModeOptionPane pane; // The UI pane controlled by this controller + + public ModeOptionPaneController(ModeOptionPane mop) { + modeProps = new HashMap<String, Object>(); + useDefaults = new HashSet<String>(); + pane = mop; + } + + public void modeSelected(String mode) { + if (this.mode != null) + pane.updatePropsFromUI(props); + this.mode = mode; + props = modeProps.get(mode); + if (props == null) { + props = pane.createModeProps(mode); + modeProps.put(mode, props); + } + pane.updateUIFromProps(props); + setEnabled(pane.getComponent(), ! useDefaults.contains(mode)); + } + + public void setUseDefaults(boolean b) { + if (b) + useDefaults.add(mode); + else + useDefaults.remove(mode); + setEnabled(pane.getComponent(), ! b); + } + + public void setEnabled(JComponent c, boolean enabled) { + c.setEnabled(enabled); + Component [] children = c.getComponents(); + for (int i = 0; i < children.length; i++) + if (children[i] instanceof JComponent) + setEnabled((JComponent) children[i], enabled); + } + + public void save() { + pane.updatePropsFromUI(props); + Iterator<String> modes = modeProps.keySet().iterator(); + while (modes.hasNext()) { + String m = modes.next(); + if (useDefaults.contains(m)) + pane.resetModeProps(m); + else + pane.saveModeProps(m, modeProps.get(m)); + } + } +} +; \ No newline at end of file Deleted: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java 2007-09-27 08:59:50 UTC (rev 10763) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanel.java 2007-09-27 13:37:36 UTC (rev 10764) @@ -1,76 +0,0 @@ -package ctags.sidekick.options; - -import java.awt.Component; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import javax.swing.JComponent; -import javax.swing.JPanel; - -abstract public class ModeOptionPanel extends JPanel implements IModeOptionPane { - - private HashMap<String, Object> modeProps; - private Set<String> useDefaults; // Modes that use default settings - private Object props; // Properties of current mode - private String mode; // Currently selected mode - - // Update the given properties from the UI - abstract protected void updatePropsFromUI(Object props); - // Update the UI from the given properties - abstract protected void updateUIFromProps(Object props); - // Create a new, initialized properties object for the specified mode - abstract protected Object createModeProps(String mode); - // Save (commit) mode properties - abstract protected void saveModeProps(String mode, Object props); - // Reset mode properties to the default settings - abstract protected void resetModeProps(String mode); - - public ModeOptionPanel() { - modeProps = new HashMap<String, Object>(); - useDefaults = new HashSet<String>(); - } - - public void modeSelected(String mode) { - if (this.mode != null) - updatePropsFromUI(props); - this.mode = mode; - props = modeProps.get(mode); - if (props == null) { - props = createModeProps(mode); - modeProps.put(mode, props); - } - updateUIFromProps(props); - setEnabled(this, ! useDefaults.contains(mode)); - } - - public void setUseDefaults(boolean b) { - if (b) - useDefaults.add(mode); - else - useDefaults.remove(mode); - setEnabled(this, ! b); - } - - public void setEnabled(JComponent c, boolean enabled) { - c.setEnabled(enabled); - Component [] children = c.getComponents(); - for (int i = 0; i < children.length; i++) - if (children[i] instanceof JComponent) - setEnabled((JComponent) children[i], enabled); - } - - public void save() { - updatePropsFromUI(props); - Iterator<String> modes = modeProps.keySet().iterator(); - while (modes.hasNext()) { - String m = modes.next(); - if (useDefaults.contains(m)) - resetModeProps(m); - else - saveModeProps(m, modeProps.get(m)); - } - } -} -; \ No newline at end of file Deleted: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java 2007-09-27 08:59:50 UTC (rev 10763) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionPanelGroup.java 2007-09-27 13:37:36 UTC (rev 10764) @@ -1,57 +0,0 @@ -package ctags.sidekick.options; - -import java.util.Vector; - -@SuppressWarnings("serial") -public class ModeOptionPanelGroup extends ModeOptionPanel { - - Vector<ModeOptionPanel> panels; - Vector<Object> props; - - public ModeOptionPanelGroup() { - panels = new Vector<ModeOptionPanel>(); - } - - protected void addModePanel(ModeOptionPanel panel) { - panels.add(panel); - } - - @Override - protected Object createModeProps(String mode) { - props = new Vector<Object>(); - for (int i = 0; i < panels.size(); i++) - props.add(panels.get(i).createModeProps(mode)); - return props; - } - - @Override - protected void resetModeProps(String mode) { - for (int i = 0; i < panels.size(); i++) - panels.get(i).resetModeProps(mode); - } - - @SuppressWarnings("unchecked") - @Override - protected void saveModeProps(String mode, Object props) { - Vector<Object> v = (Vector<Object>) props; - for (int i = 0; i < panels.size(); i++) - panels.get(i).saveModeProps(mode, v.get(i)); - - } - - @SuppressWarnings("unchecked") - @Override - protected void updatePropsFromUI(Object props) { - Vector<Object> v = (Vector<Object>) props; - for (int i = 0; i < panels.size(); i++) - panels.get(i).updatePropsFromUI(v.get(i)); - } - - @SuppressWarnings("unchecked") - @Override - protected void updateUIFromProps(Object props) { - Vector<Object> v = (Vector<Object>) props; - for (int i = 0; i < panels.size(); i++) - panels.get(i).updateUIFromProps(v.get(i)); - } -} Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java 2007-09-27 08:59:50 UTC (rev 10763) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java 2007-09-27 13:37:36 UTC (rev 10764) @@ -1,24 +1,34 @@ package ctags.sidekick.options; import java.awt.GridLayout; +import java.util.Vector; import javax.swing.BoxLayout; +import javax.swing.JComponent; import javax.swing.JPanel; import ctags.sidekick.FilterManager; import ctags.sidekick.MapperManager; import ctags.sidekick.SorterManager; +import ctags.sidekick.options.ModeOptionPaneController.ModeOptionPane; @SuppressWarnings("serial") -public class ModeOptionsPane extends ModeOptionPanelGroup { +public class ModeOptionsPane extends JPanel + implements IModeOptionPane, ModeOptionPane { + ModeOptionPaneController controller; + Vector<ModeOptionPane> subPanes; + public ModeOptionsPane() { + controller = new ModeOptionPaneController(this); + subPanes = new Vector<ModeOptionPane>(); + setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); CtagsCmdOptionsPane invocationPane = new CtagsCmdOptionsPane(); invocationPane.setMaximumSize(invocationPane.getPreferredSize()); invocationPane.setAlignmentX(LEFT_ALIGNMENT); add(invocationPane); - addModePanel(invocationPane); + subPanes.add(invocationPane); JPanel optionPanes = new JPanel(new GridLayout(1, 0)); optionPanes.setAlignmentX(LEFT_ALIGNMENT); @@ -27,16 +37,66 @@ ObjectProcessorListEditor mapperPane = new ObjectProcessorListEditor(MapperManager.getInstance()); optionPanes.add(mapperPane); - addModePanel(mapperPane); + subPanes.add(mapperPane); ObjectProcessorListEditor sorterPane = new ObjectProcessorListEditor(SorterManager.getInstance()); optionPanes.add(sorterPane); - addModePanel(sorterPane); + subPanes.add(sorterPane); ObjectProcessorListEditor filterPane = new ObjectProcessorListEditor(FilterManager.getInstance()); optionPanes.add(filterPane); - addModePanel(filterPane); + subPanes.add(filterPane); } + + public void modeSelected(String mode) { + controller.modeSelected(mode); + } + + public void save() { + controller.save(); + } + + public void setUseDefaults(boolean b) { + controller.setUseDefaults(b); + } + + public Object createModeProps(String mode) { + Vector<Object> props = new Vector<Object>(); + for (int i = 0; i < subPanes.size(); i++) + props.add(subPanes.get(i).createModeProps(mode)); + return props; + } + + public JComponent getComponent() { + return this; + } + + public void resetModeProps(String mode) { + for (int i = 0; i < subPanes.size(); i++) + subPanes.get(i).resetModeProps(mode); + } + + @SuppressWarnings("unchecked") + public void saveModeProps(String mode, Object props) { + Vector<Object> v = (Vector<Object>) props; + for (int i = 0; i < subPanes.size(); i++) + subPanes.get(i).saveModeProps(mode, v.get(i)); + } + + @SuppressWarnings("unchecked") + public void updatePropsFromUI(Object props) { + Vector<Object> v = (Vector<Object>) props; + for (int i = 0; i < subPanes.size(); i++) + subPanes.get(i).updatePropsFromUI(v.get(i)); + } + + @SuppressWarnings("unchecked") + public void updateUIFromProps(Object props) { + Vector<Object> v = (Vector<Object>) props; + for (int i = 0; i < subPanes.size(); i++) + subPanes.get(i).updateUIFromProps(v.get(i)); + } + } Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java 2007-09-27 08:59:50 UTC (rev 10763) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java 2007-09-27 13:37:36 UTC (rev 10764) @@ -8,6 +8,7 @@ import javax.swing.DefaultListModel; import javax.swing.JButton; +import javax.swing.JComponent; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; @@ -23,7 +24,8 @@ import ctags.sidekick.ObjectProcessorManager; @SuppressWarnings("serial") -public class ObjectProcessorListEditor extends ModeOptionPanel { +public class ObjectProcessorListEditor extends JPanel + implements ModeOptionPaneController.ModeOptionPane { JList list; ObjectProcessorManager manager; @@ -114,8 +116,11 @@ list.setSelectedIndex(to); } - @Override - protected Object createModeProps(String mode) { + public JComponent getComponent() { + return this; + } + + public Object createModeProps(String mode) { DefaultListModel model = new DefaultListModel(); ListObjectProcessor processor = manager.getProcessorForMode(mode); Vector<IObjectProcessor> processors = processor.getProcessors(); @@ -124,13 +129,11 @@ return model; } - @Override - protected void resetModeProps(String mode) { + public void resetModeProps(String mode) { manager.resetProcessorForMode(mode); } - @Override - protected void saveModeProps(String mode, Object props) { + public void saveModeProps(String mode, Object props) { DefaultListModel m = (DefaultListModel) props; ListObjectProcessor processor = manager.createProcessorForMode(mode); for (int i = 0; i < m.getSize(); i++) @@ -138,13 +141,11 @@ manager.setProcessorForMode(mode, processor); } - @Override - protected void updatePropsFromUI(Object props) { + public void updatePropsFromUI(Object props) { // Nothing to do, the model is connected directly to the table } - @Override - protected void updateUIFromProps(Object props) { + public void updateUIFromProps(Object props) { model = (DefaultListModel) props; list.setModel(model); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2007-12-09 00:53:39
|
Revision: 11227 http://jedit.svn.sourceforge.net/jedit/?rev=11227&view=rev Author: ezust Date: 2007-12-08 16:53:38 -0800 (Sat, 08 Dec 2007) Log Message: ----------- Made consistent with SideKick rev# 11226. Revision Links: -------------- http://jedit.svn.sourceforge.net/jedit/?rev=11226&view=rev Modified Paths: -------------- plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/SideKickModeOptionsPane.java plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java 2007-12-09 00:53:08 UTC (rev 11226) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/AbstractModeOptionPane.java 2007-12-09 00:53:38 UTC (rev 11227) @@ -13,14 +13,15 @@ import org.gjt.sp.jedit.Mode; import org.gjt.sp.jedit.jEdit; -import sidekick.IModeOptionPane; +import sidekick.ModeOptionPane; +import sidekick.ModeOptionPaneController.ModeOptionPaneDelegate; @SuppressWarnings("serial") public abstract class AbstractModeOptionPane extends AbstractOptionPane { JComboBox modeCB; JCheckBox useDefaultsCheck; - IModeOptionPane pane; + ModeOptionPane pane; public AbstractModeOptionPane(String internalName) { super(internalName); @@ -54,7 +55,7 @@ } // Creates and adds the panel to the abstract option pane - abstract protected IModeOptionPane addOptionPane(); + abstract protected ModeOptionPane addOptionPane(); private void modeSelected() { int index = modeCB.getSelectedIndex(); Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java 2007-12-09 00:53:08 UTC (rev 11226) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/CtagsCmdOptionsPane.java 2007-12-09 00:53:38 UTC (rev 11227) @@ -13,7 +13,7 @@ @SuppressWarnings("serial") public class CtagsCmdOptionsPane extends JPanel - implements ModeOptionPaneController.ModeOptionPane { + implements ModeOptionPaneController.ModeOptionPaneDelegate { public static class Props { Props(String s) { Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java 2007-12-09 00:53:08 UTC (rev 11226) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ModeOptionsPane.java 2007-12-09 00:53:38 UTC (rev 11227) @@ -7,9 +7,9 @@ import javax.swing.JComponent; import javax.swing.JPanel; -import sidekick.IModeOptionPane; +import sidekick.ModeOptionPane; import sidekick.ModeOptionPaneController; -import sidekick.ModeOptionPaneController.ModeOptionPane; +import sidekick.ModeOptionPaneController.ModeOptionPaneDelegate; import ctags.sidekick.FilterManager; import ctags.sidekick.IconProviderManager; @@ -19,14 +19,14 @@ @SuppressWarnings("serial") public class ModeOptionsPane extends JPanel - implements IModeOptionPane, ModeOptionPane { + implements ModeOptionPane, ModeOptionPaneDelegate { ModeOptionPaneController controller; - Vector<ModeOptionPane> subPanes; + Vector<ModeOptionPaneDelegate> subPanes; public ModeOptionsPane() { controller = new ModeOptionPaneController(this); - subPanes = new Vector<ModeOptionPane>(); + subPanes = new Vector<ModeOptionPaneDelegate>(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); CtagsCmdOptionsPane invocationPane = new CtagsCmdOptionsPane(); Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java 2007-12-09 00:53:08 UTC (rev 11226) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/ObjectProcessorListEditor.java 2007-12-09 00:53:38 UTC (rev 11227) @@ -27,7 +27,7 @@ @SuppressWarnings("serial") public class ObjectProcessorListEditor extends JPanel - implements ModeOptionPaneController.ModeOptionPane { + implements ModeOptionPaneController.ModeOptionPaneDelegate { JList list; ObjectProcessorManager manager; Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/SideKickModeOptionsPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/SideKickModeOptionsPane.java 2007-12-09 00:53:08 UTC (rev 11226) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/SideKickModeOptionsPane.java 2007-12-09 00:53:38 UTC (rev 11227) @@ -1,7 +1,7 @@ package ctags.sidekick.options; @SuppressWarnings("serial") -public class SideKickModeOptionsPane extends sidekick.ModeOptionsPane { +public class SideKickModeOptionsPane extends sidekick.AbstractModeOptionPane { ModeOptionsPane pane; Modified: plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java =================================================================== --- plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java 2007-12-09 00:53:08 UTC (rev 11226) +++ plugins/CtagsSideKick/trunk/ctags/sidekick/options/TreeStyleOptionPane.java 2007-12-09 00:53:38 UTC (rev 11227) @@ -10,7 +10,8 @@ package ctags.sidekick.options; -import sidekick.IModeOptionPane; +import sidekick.ModeOptionPane; +import sidekick.ModeOptionPaneController.ModeOptionPaneDelegate; @SuppressWarnings("serial") @@ -21,7 +22,7 @@ } @Override - protected IModeOptionPane addOptionPane() { + protected ModeOptionPane addOptionPane() { ModeOptionsPane pane = new ModeOptionsPane(); addComponent(pane); return pane; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |