/jEdit/tags/jedit-4-3-pre18/org/gjt/sp/jedit/options/TextAreaOptionPane.java

# · Java · 252 lines · 177 code · 28 blank · 47 comment · 0 complexity · db37ae98a4ec9a027a52a11b3ef595be MD5 · raw file

  1. /*
  2. * TextAreaOptionPane.java - Text area options panel
  3. * :tabSize=8:indentSize=8:noTabs=false:
  4. * :folding=explicit:collapseFolds=1:
  5. *
  6. * Copyright (C) 1998, 1999, 2000 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. //{{{ Imports
  24. import javax.swing.*;
  25. import java.awt.event.ActionEvent;
  26. import java.awt.event.ActionListener;
  27. import java.awt.*;
  28. import org.gjt.sp.jedit.textarea.AntiAlias;
  29. import org.gjt.sp.jedit.jEdit;
  30. import org.gjt.sp.jedit.AbstractOptionPane;
  31. import org.gjt.sp.jedit.gui.FontSelector;
  32. import org.gjt.sp.jedit.gui.ColorWellButton;
  33. //}}}
  34. /**
  35. * @author Slava Pestov
  36. * @version $Id: TextAreaOptionPane.java 15360 2009-05-28 23:16:42Z k_satoda $
  37. */
  38. public class TextAreaOptionPane extends AbstractOptionPane
  39. {
  40. //{{{ TextAreaOptionPane constructor
  41. public TextAreaOptionPane()
  42. {
  43. super("textarea");
  44. } //}}}
  45. //{{{ _init() method
  46. public void _init()
  47. {
  48. /* Font */
  49. font = new FontSelector(jEdit.getFontProperty("view.font"));
  50. addComponent(jEdit.getProperty("options.textarea.font"),font);
  51. /* Text color */
  52. addComponent(jEdit.getProperty("options.textarea.foreground"),
  53. foregroundColor = new ColorWellButton(
  54. jEdit.getColorProperty("view.fgColor")),
  55. GridBagConstraints.VERTICAL);
  56. /* Background color */
  57. addComponent(jEdit.getProperty("options.textarea.background"),
  58. backgroundColor = new ColorWellButton(
  59. jEdit.getColorProperty("view.bgColor")),
  60. GridBagConstraints.VERTICAL);
  61. /* Caret color, caret blink, block caret */
  62. blinkCaret = new JCheckBox(jEdit.getProperty("options.textarea"
  63. + ".blinkCaret"));
  64. blinkCaret.setSelected(jEdit.getBooleanProperty("view.caretBlink"));
  65. blockCaret = new JCheckBox(jEdit.getProperty("options.textarea"
  66. + ".blockCaret"));
  67. blockCaret.setSelected(jEdit.getBooleanProperty("view.blockCaret"));
  68. thickCaret = new JCheckBox(jEdit.getProperty("options.textarea"
  69. + ".thickCaret"));
  70. thickCaret.setSelected(jEdit.getBooleanProperty("view.thickCaret"));
  71. Box caretSettings = new Box(BoxLayout.X_AXIS);
  72. caretSettings.add(new JLabel(jEdit.getProperty(
  73. "options.textarea.caret")));
  74. caretSettings.add(Box.createHorizontalStrut(6));
  75. caretSettings.add(blinkCaret);
  76. caretSettings.add(blockCaret);
  77. caretSettings.add(thickCaret);
  78. addComponent(caretSettings,caretColor = new ColorWellButton(
  79. jEdit.getColorProperty("view.caretColor")),
  80. GridBagConstraints.VERTICAL);
  81. /* Selection color */
  82. addComponent(jEdit.getProperty("options.textarea.selection"),
  83. selectionColor = new ColorWellButton(
  84. jEdit.getColorProperty("view.selectionColor")),
  85. GridBagConstraints.VERTICAL);
  86. /* Multiple selection color */
  87. addComponent(jEdit.getProperty("options.textarea.multipleSelection"),
  88. multipleSelectionColor = new ColorWellButton(
  89. jEdit.getColorProperty("view.multipleSelectionColor")),
  90. GridBagConstraints.VERTICAL);
  91. /* Line highlight */
  92. lineHighlight = new JCheckBox(jEdit.getProperty("options.textarea"
  93. + ".lineHighlight"));
  94. lineHighlight.setSelected(jEdit.getBooleanProperty("view.lineHighlight"));
  95. addComponent(lineHighlight,lineHighlightColor = new ColorWellButton(
  96. jEdit.getColorProperty("view.lineHighlightColor")),
  97. GridBagConstraints.VERTICAL);
  98. /* Structure highlight */
  99. structureHighlight = new JCheckBox(jEdit.getProperty("options.textarea"
  100. + ".structureHighlight"));
  101. structureHighlight.setSelected(jEdit.getBooleanProperty(
  102. "view.structureHighlight"));
  103. addComponent(structureHighlight,structureHighlightColor = new ColorWellButton(
  104. jEdit.getColorProperty("view.structureHighlightColor")),
  105. GridBagConstraints.VERTICAL);
  106. /* EOL markers */
  107. eolMarkers = new JCheckBox(jEdit.getProperty("options.textarea"
  108. + ".eolMarkers"));
  109. eolMarkers.setSelected(jEdit.getBooleanProperty("view.eolMarkers"));
  110. addComponent(eolMarkers,eolMarkerColor =new ColorWellButton(
  111. jEdit.getColorProperty("view.eolMarkerColor")),
  112. GridBagConstraints.VERTICAL);
  113. /* Wrap guide */
  114. wrapGuide = new JCheckBox(jEdit.getProperty("options.textarea"
  115. + ".wrapGuide"));
  116. wrapGuide.setSelected(jEdit.getBooleanProperty("view.wrapGuide"));
  117. addComponent(wrapGuide,wrapGuideColor = new ColorWellButton(
  118. jEdit.getColorProperty("view.wrapGuideColor")),
  119. GridBagConstraints.VERTICAL);
  120. /* Electric borders */
  121. electricBorders = new JCheckBox(jEdit.getProperty("options.textarea"
  122. + ".electricBorders"));
  123. electricBorders.setSelected(!"0".equals(jEdit.getProperty(
  124. "view.electricBorders")));
  125. addComponent(electricBorders);
  126. /* Anti-aliasing */
  127. antiAlias = new JComboBox(AntiAlias.comboChoices);
  128. antiAlias.setToolTipText(jEdit.getProperty("options.textarea.antiAlias.tooltip"));
  129. AntiAlias antiAliasValue = new AntiAlias(jEdit.getProperty("view.antiAlias"));
  130. font.setAntiAliasEnabled(antiAliasValue.val()>0);
  131. antiAlias.addActionListener(new ActionListener()
  132. {
  133. public void actionPerformed(ActionEvent evt)
  134. {
  135. int idx = antiAlias.getSelectedIndex();
  136. font.setAntiAliasEnabled(idx > 0);
  137. font.repaint();
  138. }
  139. });
  140. antiAlias.setSelectedIndex(antiAliasValue.val());
  141. addComponent(jEdit.getProperty("options.textarea"+ ".antiAlias"), antiAlias);
  142. /* Fractional font metrics */
  143. fracFontMetrics = new JCheckBox(jEdit.getProperty("options.textarea"
  144. + ".fracFontMetrics"));
  145. fracFontMetrics.setSelected(jEdit.getBooleanProperty("view.fracFontMetrics"));
  146. addComponent(fracFontMetrics);
  147. /* Strip trailing EOL */
  148. stripTrailingEOL = new JCheckBox(jEdit.getProperty(
  149. "options.textArea.stripTrailingEOL"));
  150. stripTrailingEOL.setSelected(jEdit.getBooleanProperty("stripTrailingEOL"));
  151. addComponent(stripTrailingEOL);
  152. completeFromAllBuffers = new JCheckBox(jEdit.getProperty(
  153. "options.textArea.completeFromAllBuffers"));
  154. completeFromAllBuffers.setSelected(jEdit.getBooleanProperty("completeFromAllBuffers"));
  155. addComponent(completeFromAllBuffers);
  156. } //}}}
  157. //{{{ _save() method
  158. public void _save()
  159. {
  160. jEdit.setFontProperty("view.font",font.getFont());
  161. jEdit.setColorProperty("view.fgColor",foregroundColor
  162. .getSelectedColor());
  163. jEdit.setColorProperty("view.bgColor",backgroundColor
  164. .getSelectedColor());
  165. jEdit.setBooleanProperty("view.caretBlink",blinkCaret.isSelected());
  166. jEdit.setBooleanProperty("view.blockCaret",blockCaret.isSelected());
  167. jEdit.setBooleanProperty("view.thickCaret",thickCaret.isSelected());
  168. jEdit.setColorProperty("view.caretColor",caretColor
  169. .getSelectedColor());
  170. jEdit.setColorProperty("view.selectionColor",selectionColor
  171. .getSelectedColor());
  172. jEdit.setColorProperty("view.multipleSelectionColor",multipleSelectionColor
  173. .getSelectedColor());
  174. jEdit.setBooleanProperty("view.lineHighlight",lineHighlight
  175. .isSelected());
  176. jEdit.setColorProperty("view.lineHighlightColor",
  177. lineHighlightColor.getSelectedColor());
  178. jEdit.setBooleanProperty("view.structureHighlight",structureHighlight
  179. .isSelected());
  180. jEdit.setColorProperty("view.structureHighlightColor",
  181. structureHighlightColor.getSelectedColor());
  182. jEdit.setBooleanProperty("view.eolMarkers",eolMarkers
  183. .isSelected());
  184. jEdit.setColorProperty("view.eolMarkerColor",
  185. eolMarkerColor.getSelectedColor());
  186. jEdit.setBooleanProperty("view.wrapGuide",wrapGuide
  187. .isSelected());
  188. jEdit.setColorProperty("view.wrapGuideColor",
  189. wrapGuideColor.getSelectedColor());
  190. jEdit.setIntegerProperty("view.electricBorders",electricBorders
  191. .isSelected() ? 3 : 0);
  192. AntiAlias nv = new AntiAlias(jEdit.getProperty("view.antiAlias"));
  193. nv.set(antiAlias.getSelectedIndex());
  194. jEdit.setProperty("view.antiAlias", nv.toString());
  195. jEdit.setBooleanProperty("view.fracFontMetrics",fracFontMetrics.isSelected());
  196. jEdit.setBooleanProperty("stripTrailingEOL", stripTrailingEOL.isSelected());
  197. jEdit.setBooleanProperty("completeFromAllBuffers", completeFromAllBuffers.isSelected());
  198. } //}}}
  199. //{{{ Private members
  200. private FontSelector font;
  201. private ColorWellButton foregroundColor;
  202. private ColorWellButton backgroundColor;
  203. private JCheckBox blinkCaret;
  204. private JCheckBox blockCaret;
  205. private JCheckBox thickCaret;
  206. private ColorWellButton caretColor;
  207. private ColorWellButton selectionColor;
  208. private ColorWellButton multipleSelectionColor;
  209. private JCheckBox lineHighlight;
  210. private ColorWellButton lineHighlightColor;
  211. private JCheckBox structureHighlight;
  212. private ColorWellButton structureHighlightColor;
  213. private JCheckBox eolMarkers;
  214. private ColorWellButton eolMarkerColor;
  215. private JCheckBox wrapGuide;
  216. private ColorWellButton wrapGuideColor;
  217. private JCheckBox electricBorders;
  218. // private JCheckBox antiAlias;
  219. private JComboBox antiAlias;
  220. private JCheckBox fracFontMetrics;
  221. private JCheckBox stripTrailingEOL;
  222. private JCheckBox completeFromAllBuffers;
  223. //}}}
  224. }