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

# · Java · 238 lines · 165 code · 26 blank · 47 comment · 0 complexity · 38b28910219f2947a2093319f451affa 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 7143 2006-09-29 09:08:24Z kpouer $
  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. Box caretSettings = new Box(BoxLayout.X_AXIS);
  69. caretSettings.add(new JLabel(jEdit.getProperty(
  70. "options.textarea.caret")));
  71. caretSettings.add(Box.createHorizontalStrut(6));
  72. caretSettings.add(blinkCaret);
  73. caretSettings.add(blockCaret);
  74. addComponent(caretSettings,caretColor = new ColorWellButton(
  75. jEdit.getColorProperty("view.caretColor")),
  76. GridBagConstraints.VERTICAL);
  77. /* Selection color */
  78. addComponent(jEdit.getProperty("options.textarea.selection"),
  79. selectionColor = new ColorWellButton(
  80. jEdit.getColorProperty("view.selectionColor")),
  81. GridBagConstraints.VERTICAL);
  82. /* Multiple selection color */
  83. addComponent(jEdit.getProperty("options.textarea.multipleSelection"),
  84. multipleSelectionColor = new ColorWellButton(
  85. jEdit.getColorProperty("view.multipleSelectionColor")),
  86. GridBagConstraints.VERTICAL);
  87. /* Line highlight */
  88. lineHighlight = new JCheckBox(jEdit.getProperty("options.textarea"
  89. + ".lineHighlight"));
  90. lineHighlight.setSelected(jEdit.getBooleanProperty("view.lineHighlight"));
  91. addComponent(lineHighlight,lineHighlightColor = new ColorWellButton(
  92. jEdit.getColorProperty("view.lineHighlightColor")),
  93. GridBagConstraints.VERTICAL);
  94. /* Structure highlight */
  95. structureHighlight = new JCheckBox(jEdit.getProperty("options.textarea"
  96. + ".structureHighlight"));
  97. structureHighlight.setSelected(jEdit.getBooleanProperty(
  98. "view.structureHighlight"));
  99. addComponent(structureHighlight,structureHighlightColor = new ColorWellButton(
  100. jEdit.getColorProperty("view.structureHighlightColor")),
  101. GridBagConstraints.VERTICAL);
  102. /* EOL markers */
  103. eolMarkers = new JCheckBox(jEdit.getProperty("options.textarea"
  104. + ".eolMarkers"));
  105. eolMarkers.setSelected(jEdit.getBooleanProperty("view.eolMarkers"));
  106. addComponent(eolMarkers,eolMarkerColor =new ColorWellButton(
  107. jEdit.getColorProperty("view.eolMarkerColor")),
  108. GridBagConstraints.VERTICAL);
  109. /* Wrap guide */
  110. wrapGuide = new JCheckBox(jEdit.getProperty("options.textarea"
  111. + ".wrapGuide"));
  112. wrapGuide.setSelected(jEdit.getBooleanProperty("view.wrapGuide"));
  113. addComponent(wrapGuide,wrapGuideColor = new ColorWellButton(
  114. jEdit.getColorProperty("view.wrapGuideColor")),
  115. GridBagConstraints.VERTICAL);
  116. /* Electric borders */
  117. electricBorders = new JCheckBox(jEdit.getProperty("options.textarea"
  118. + ".electricBorders"));
  119. electricBorders.setSelected(!"0".equals(jEdit.getProperty(
  120. "view.electricBorders")));
  121. addComponent(electricBorders);
  122. /* Anti-aliasing */
  123. antiAlias = new JComboBox(AntiAlias.comboChoices);
  124. antiAlias.setToolTipText(jEdit.getProperty("options.textarea.antiAlias.tooltip"));
  125. AntiAlias antiAliasValue = new AntiAlias(jEdit.getProperty("view.antiAlias"));
  126. font.setAntiAliasEnabled(antiAliasValue.val()>0);
  127. antiAlias.addActionListener(new ActionListener()
  128. {
  129. public void actionPerformed(ActionEvent evt)
  130. {
  131. int idx = antiAlias.getSelectedIndex();
  132. font.setAntiAliasEnabled(idx > 0);
  133. font.repaint();
  134. }
  135. });
  136. antiAlias.setSelectedIndex(antiAliasValue.val());
  137. addComponent(jEdit.getProperty("options.textarea"+ ".antiAlias"), antiAlias);
  138. /* Fractional font metrics */
  139. fracFontMetrics = new JCheckBox(jEdit.getProperty("options.textarea"
  140. + ".fracFontMetrics"));
  141. fracFontMetrics.setSelected(jEdit.getBooleanProperty("view.fracFontMetrics"));
  142. addComponent(fracFontMetrics);
  143. /* Strip trailing EOL */
  144. stripTrailingEOL = new JCheckBox(jEdit.getProperty(
  145. "options.textArea.stripTrailingEOL"));
  146. stripTrailingEOL.setSelected(jEdit.getBooleanProperty("stripTrailingEOL"));
  147. addComponent(stripTrailingEOL);
  148. } //}}}
  149. //{{{ _save() method
  150. public void _save()
  151. {
  152. jEdit.setFontProperty("view.font",font.getFont());
  153. jEdit.setColorProperty("view.fgColor",foregroundColor
  154. .getSelectedColor());
  155. jEdit.setColorProperty("view.bgColor",backgroundColor
  156. .getSelectedColor());
  157. jEdit.setBooleanProperty("view.caretBlink",blinkCaret.isSelected());
  158. jEdit.setBooleanProperty("view.blockCaret",blockCaret.isSelected());
  159. jEdit.setColorProperty("view.caretColor",caretColor
  160. .getSelectedColor());
  161. jEdit.setColorProperty("view.selectionColor",selectionColor
  162. .getSelectedColor());
  163. jEdit.setColorProperty("view.multipleSelectionColor",multipleSelectionColor
  164. .getSelectedColor());
  165. jEdit.setBooleanProperty("view.lineHighlight",lineHighlight
  166. .isSelected());
  167. jEdit.setColorProperty("view.lineHighlightColor",
  168. lineHighlightColor.getSelectedColor());
  169. jEdit.setBooleanProperty("view.structureHighlight",structureHighlight
  170. .isSelected());
  171. jEdit.setColorProperty("view.structureHighlightColor",
  172. structureHighlightColor.getSelectedColor());
  173. jEdit.setBooleanProperty("view.eolMarkers",eolMarkers
  174. .isSelected());
  175. jEdit.setColorProperty("view.eolMarkerColor",
  176. eolMarkerColor.getSelectedColor());
  177. jEdit.setBooleanProperty("view.wrapGuide",wrapGuide
  178. .isSelected());
  179. jEdit.setColorProperty("view.wrapGuideColor",
  180. wrapGuideColor.getSelectedColor());
  181. jEdit.setIntegerProperty("view.electricBorders",electricBorders
  182. .isSelected() ? 3 : 0);
  183. AntiAlias nv = new AntiAlias(jEdit.getProperty("view.antiAlias"));
  184. nv.set(antiAlias.getSelectedIndex());
  185. jEdit.setProperty("view.antiAlias", nv.toString());
  186. jEdit.setBooleanProperty("view.fracFontMetrics",fracFontMetrics.isSelected());
  187. jEdit.setBooleanProperty("stripTrailingEOL", stripTrailingEOL.isSelected());
  188. } //}}}
  189. //{{{ Private members
  190. private FontSelector font;
  191. private ColorWellButton foregroundColor;
  192. private ColorWellButton backgroundColor;
  193. private JCheckBox blinkCaret;
  194. private JCheckBox blockCaret;
  195. private ColorWellButton caretColor;
  196. private ColorWellButton selectionColor;
  197. private ColorWellButton multipleSelectionColor;
  198. private JCheckBox lineHighlight;
  199. private ColorWellButton lineHighlightColor;
  200. private JCheckBox structureHighlight;
  201. private ColorWellButton structureHighlightColor;
  202. private JCheckBox eolMarkers;
  203. private ColorWellButton eolMarkerColor;
  204. private JCheckBox wrapGuide;
  205. private ColorWellButton wrapGuideColor;
  206. private JCheckBox electricBorders;
  207. // private JCheckBox antiAlias;
  208. private JComboBox antiAlias;
  209. private JCheckBox fracFontMetrics;
  210. private JCheckBox stripTrailingEOL;
  211. //}}}
  212. }