/jEdit/tags/jedit-4-0-pre1/org/gjt/sp/jedit/options/EditingOptionPane.java

# · Java · 179 lines · 106 code · 21 blank · 52 comment · 2 complexity · 46bc9158a422ca04b8311bd547593c4c MD5 · raw file

  1. /*
  2. * EditingOptionPane.java - Editing options panel
  3. * :tabSize=8:indentSize=8:noTabs=false:
  4. * :folding=explicit:collapseFolds=1:
  5. *
  6. * Copyright (C) 1998, 1999, 2000, 2001 Slava Pestov
  7. *
  8. * This program is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU General Public License
  10. * as published by the Free Software Foundation; either version 2
  11. * of the License, or any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program; if not, write to the Free Software
  20. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  21. */
  22. package org.gjt.sp.jedit.options;
  23. import javax.swing.*;
  24. import java.awt.event.*;
  25. import java.awt.*;
  26. import org.gjt.sp.jedit.*;
  27. public class EditingOptionPane extends AbstractOptionPane
  28. {
  29. //{{{ EditingOptionPane constructor
  30. public EditingOptionPane()
  31. {
  32. super("editing");
  33. } //}}}
  34. //{{{ Protected members
  35. //{{{ _init() method
  36. protected void _init()
  37. {
  38. //{{{ Modes
  39. Mode[] modes = jEdit.getModes();
  40. String defaultModeString = jEdit.getProperty("buffer.defaultMode");
  41. String[] modeNames = new String[modes.length];
  42. int index = 0;
  43. for(int i = 0; i < modes.length; i++)
  44. {
  45. Mode _mode = modes[i];
  46. modeNames[i] = _mode.getName();
  47. if(defaultModeString.equals(_mode.getName()))
  48. index = i;
  49. }
  50. defaultMode = new JComboBox(modeNames);
  51. defaultMode.setSelectedIndex(index);
  52. addComponent(jEdit.getProperty("options.editing.defaultMode"),
  53. defaultMode);
  54. //}}}
  55. //{{{ Tab size
  56. String[] tabSizes = { "2", "4", "8" };
  57. defaultTabSize = new JComboBox(tabSizes);
  58. defaultTabSize.setEditable(true);
  59. defaultTabSize.setSelectedItem(jEdit.getProperty("buffer.tabSize"));
  60. addComponent(jEdit.getProperty("options.editing.tabSize"),defaultTabSize);
  61. //}}}
  62. //{{{ Indent size
  63. defaultIndentSize = new JComboBox(tabSizes);
  64. defaultIndentSize.setEditable(true);
  65. defaultIndentSize.setSelectedItem(jEdit.getProperty("buffer.indentSize"));
  66. addComponent(jEdit.getProperty("options.editing.indentSize"),defaultIndentSize);
  67. //}}}
  68. //{{{ Max line length
  69. String[] lineLens = { "0", "72", "76", "80" };
  70. defaultMaxLineLen = new JComboBox(lineLens);
  71. defaultMaxLineLen.setEditable(true);
  72. defaultMaxLineLen.setSelectedItem(jEdit.getProperty("buffer.maxLineLen"));
  73. addComponent(jEdit.getProperty("options.editing.maxLineLen"),defaultMaxLineLen);
  74. //}}}
  75. //{{{ Word break chars
  76. defaultWordBreakChars = new JTextField(jEdit.getProperty("buffer.wordBreakChars"));
  77. addComponent(jEdit.getProperty("options.editing.wordBreakChars"),defaultWordBreakChars);
  78. //}}}
  79. //{{{ Default fold mode
  80. String[] foldModes = {
  81. "none",
  82. "indent",
  83. "explicit"
  84. };
  85. addComponent(jEdit.getProperty("options.editing.folding"),
  86. defaultFolding = new JComboBox(foldModes));
  87. defaultFolding.setSelectedItem(jEdit.getProperty("buffer.folding"));
  88. //}}}
  89. //{{{ Default fold level
  90. defaultCollapseFolds = new JTextField(jEdit.getProperty("buffer.collapseFolds"));
  91. addComponent(jEdit.getProperty("options.editing.collapseFolds"),defaultCollapseFolds);
  92. //}}}
  93. //{{{ Undo queue size
  94. undoCount = new JTextField(jEdit.getProperty("buffer.undoCount"));
  95. addComponent(jEdit.getProperty("options.editing.undoCount"),undoCount);
  96. //}}}
  97. //{{{ Syntax highlighting
  98. defaultSyntax = new JCheckBox(jEdit.getProperty("options.editing"
  99. + ".syntax"));
  100. defaultSyntax.setSelected(jEdit.getBooleanProperty("buffer.syntax"));
  101. addComponent(defaultSyntax);
  102. //}}}
  103. //{{{ Indent on tab
  104. defaultIndentOnTab = new JCheckBox(jEdit.getProperty("options.editing"
  105. + ".indentOnTab"));
  106. defaultIndentOnTab.setSelected(jEdit.getBooleanProperty("buffer.indentOnTab"));
  107. addComponent(defaultIndentOnTab);
  108. //}}}
  109. //{{{ Indent on enter
  110. defaultIndentOnEnter = new JCheckBox(jEdit.getProperty("options.editing"
  111. + ".indentOnEnter"));
  112. defaultIndentOnEnter.setSelected(jEdit.getBooleanProperty("buffer.indentOnEnter"));
  113. addComponent(defaultIndentOnEnter);
  114. //}}}
  115. //{{{ Soft tabs
  116. defaultNoTabs = new JCheckBox(jEdit.getProperty("options.editing"
  117. + ".noTabs"));
  118. defaultNoTabs.setSelected(jEdit.getBooleanProperty("buffer.noTabs"));
  119. addComponent(defaultNoTabs);
  120. //}}}
  121. } //}}}
  122. //{{{ _save() method
  123. protected void _save()
  124. {
  125. jEdit.setProperty("buffer.defaultMode",
  126. (String)defaultMode.getSelectedItem());
  127. jEdit.setProperty("buffer.tabSize",(String)defaultTabSize
  128. .getSelectedItem());
  129. jEdit.setProperty("buffer.indentSize",(String)defaultIndentSize
  130. .getSelectedItem());
  131. jEdit.setProperty("buffer.maxLineLen",(String)defaultMaxLineLen.getSelectedItem());
  132. jEdit.setProperty("buffer.wordBreakChars",defaultWordBreakChars.getText());
  133. jEdit.setProperty("buffer.folding",(String)defaultFolding.getSelectedItem());
  134. jEdit.setProperty("buffer.collapseFolds",defaultCollapseFolds.getText());
  135. jEdit.setProperty("buffer.undoCount",undoCount.getText());
  136. jEdit.setBooleanProperty("buffer.syntax",defaultSyntax.isSelected());
  137. jEdit.setBooleanProperty("buffer.indentOnTab",defaultIndentOnTab
  138. .isSelected());
  139. jEdit.setBooleanProperty("buffer.indentOnEnter",defaultIndentOnEnter
  140. .isSelected());
  141. jEdit.setBooleanProperty("buffer.noTabs",defaultNoTabs.isSelected());
  142. } //}}}
  143. //}}}
  144. //{{{ Private members
  145. private JComboBox defaultMode;
  146. private JComboBox defaultTabSize;
  147. private JComboBox defaultIndentSize;
  148. private JComboBox defaultMaxLineLen;
  149. private JTextField defaultWordBreakChars;
  150. private JComboBox defaultFolding;
  151. private JTextField defaultCollapseFolds;
  152. private JTextField undoCount;
  153. private JCheckBox defaultSyntax;
  154. private JCheckBox defaultIndentOnTab;
  155. private JCheckBox defaultIndentOnEnter;
  156. private JCheckBox defaultNoTabs;
  157. //}}}
  158. }