PageRenderTime 32ms CodeModel.GetById 8ms RepoModel.GetById 0ms app.codeStats 0ms

/bundles/plugins-trunk/SideKick/sidekick/SideKickModeOptionsPane.java

#
Java | 176 lines | 108 code | 33 blank | 35 comment | 4 complexity | ed34b3646c16add597ee3b6cfe690977 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. /*
  2. * SideKickModeOptionsPane.java -
  3. * :tabSize=8:indentSize=8:noTabs=false:
  4. * :folding=explicit:collapseFolds=1:
  5. *
  6. * Copyright (C) 2006 Alan Ezust
  7. * Copyright (c) 2007 Shlomy Reinstein
  8. *
  9. * This program is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License
  11. * as published by the Free Software Foundation; either version 2
  12. * of the License, or any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this program; if not, write to the Free Software
  21. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  22. */
  23. package sidekick;
  24. import javax.swing.DefaultComboBoxModel;
  25. import javax.swing.JCheckBox;
  26. import javax.swing.JComboBox;
  27. import javax.swing.JComponent;
  28. import org.gjt.sp.jedit.jEdit;
  29. import sidekick.ModeOptionPaneController.ModeOptionPaneDelegate;
  30. // {{{ SideKickModeOptionsPane
  31. /**
  32. *
  33. * Mode-Specific options for SideKick - a custom ModeOptionPane which
  34. * includes 3 questions for the user, and provides an example of
  35. * how to extend ModeOptionPane and set/reset the mode options.
  36. *
  37. * @author Alan Ezust
  38. *
  39. */
  40. @SuppressWarnings("serial")
  41. public class SideKickModeOptionsPane extends AbstractModeOptionPane implements ModeOptionPaneDelegate
  42. {
  43. ModeOptionPaneController controller;
  44. JCheckBox showStatusWindow;
  45. JCheckBox treeFollowsCaret;
  46. JComboBox autoExpandTreeDepth;
  47. JComboBox defaultParser;
  48. // {{{ SideKickModeOptionsPane ctor
  49. public SideKickModeOptionsPane()
  50. {
  51. super("sidekick.mode");
  52. controller = new ModeOptionPaneController(this);
  53. showStatusWindow = new JCheckBox(jEdit.getProperty("options." + SideKick.SHOW_STATUS));
  54. addComponent(showStatusWindow);
  55. treeFollowsCaret = new JCheckBox(jEdit.getProperty("options.sidekick.tree-follows-caret"));
  56. addComponent(treeFollowsCaret);
  57. autoExpandTreeDepth = new JComboBox();
  58. addComponent(jEdit.getProperty("options.sidekick.auto-expand-tree-depth"), autoExpandTreeDepth);
  59. // autoExpandTreeDepth.addActionListener(new ActionHandler());
  60. autoExpandTreeDepth.addItem(ModeOptionsDialog.ALL);
  61. for (int i = 0; i <= 10; i++)
  62. autoExpandTreeDepth.addItem(String.valueOf(i));
  63. addComponent(autoExpandTreeDepth);
  64. defaultParser = new JComboBox();
  65. defaultParser.setModel(new DefaultComboBoxModel(SideKickTree.parserList().toArray()));
  66. addComponent(jEdit.getProperty("options.sidekick.parser.parser"), defaultParser);
  67. } // }}}
  68. // {{{ init()
  69. protected void _init() {
  70. } // }}}
  71. class Props {
  72. boolean treeFollowsCaret;
  73. boolean showStatusWindow;
  74. int autoExpandTreeDepth;
  75. String parser;
  76. }
  77. public Object createModeProps(String mode) {
  78. Props p = new Props();
  79. p.treeFollowsCaret = getBooleanProperty(mode, SideKick.FOLLOW_CARET);
  80. p.showStatusWindow = getBooleanProperty(mode, SideKick.SHOW_STATUS);
  81. p.autoExpandTreeDepth = getIntegerProperty(mode, SideKick.AUTO_EXPAND_DEPTH, 1);
  82. p.parser = getProperty(mode, SideKickPlugin.PARSER_PROPERTY);
  83. return p;
  84. }
  85. public void resetModeProps(String mode) {
  86. clearModeProperty(mode, SideKick.FOLLOW_CARET);
  87. clearModeProperty(mode, SideKick.AUTO_EXPAND_DEPTH);
  88. clearModeProperty(mode, SideKick.SHOW_STATUS);
  89. clearModeProperty(mode, SideKickPlugin.PARSER_PROPERTY);
  90. }
  91. public void saveModeProps(String mode, Object props) {
  92. Props p = (Props) props;
  93. setBooleanProperty(mode, SideKick.FOLLOW_CARET, p.treeFollowsCaret);
  94. setBooleanProperty(mode, SideKick.SHOW_STATUS, p.showStatusWindow);
  95. setIntegerProperty(mode, SideKick.AUTO_EXPAND_DEPTH, p.autoExpandTreeDepth);
  96. if (p.parser == SideKickPlugin.DEFAULT)
  97. clearModeProperty(mode, SideKickPlugin.PARSER_PROPERTY);
  98. else
  99. setProperty(mode, SideKickPlugin.PARSER_PROPERTY, p.parser);
  100. }
  101. public void updatePropsFromUI(Object props) {
  102. Props p = (Props) props;
  103. p.treeFollowsCaret = treeFollowsCaret.isSelected();
  104. p.showStatusWindow = showStatusWindow.isSelected();
  105. String value = (String)autoExpandTreeDepth.getSelectedItem();
  106. String depth = value.equals(ModeOptionsDialog.ALL) ? "-1" : value;
  107. p.autoExpandTreeDepth = Integer.valueOf(depth);
  108. Object parser = defaultParser.getSelectedItem();
  109. p.parser = (parser == null) ? null : parser.toString();
  110. }
  111. public void updateUIFromProps(Object props) {
  112. Props p = (Props) props;
  113. treeFollowsCaret.setSelected(p.treeFollowsCaret);
  114. showStatusWindow.setSelected(p.showStatusWindow);
  115. autoExpandTreeDepth.setSelectedIndex(p.autoExpandTreeDepth + 1);
  116. defaultParser.setSelectedItem(p.parser);
  117. }
  118. public void modeSelected(String mode) {
  119. controller.modeSelected(mode);
  120. }
  121. public void cancel() {
  122. controller.cancel();
  123. }
  124. public void setUseDefaults(boolean b) {
  125. controller.setUseDefaults(b);
  126. }
  127. public boolean getUseDefaults(String mode) {
  128. return controller.getUseDefaults(mode);
  129. }
  130. public JComponent getUIComponent() {
  131. return this;
  132. }
  133. public boolean hasModeProps(String mode) {
  134. return modePropertyExists(mode, SideKick.FOLLOW_CARET) ||
  135. modePropertyExists(mode, SideKick.AUTO_EXPAND_DEPTH) ||
  136. modePropertyExists(mode, SideKick.SHOW_STATUS) ||
  137. modePropertyExists(mode, SideKickPlugin.PARSER_PROPERTY);
  138. }
  139. @Override
  140. public void _save() {
  141. controller.save();
  142. }
  143. } // }}}