PageRenderTime 43ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/bundles/plugins-trunk/XML/xml/options/GeneralOptionPane.java

#
Java | 200 lines | 140 code | 36 blank | 24 comment | 3 complexity | 3c151279decf16cd406161b151eda46a 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. * GeneralOptionPane.java - XML general options panel
  3. * :tabSize=8:indentSize=8:noTabs=false:
  4. * :folding=explicit:collapseFolds=1:
  5. *
  6. * Copyright (C) 2001, 2003 Slava Pestov
  7. *
  8. * The XML plugin is licensed under the GNU General Public License, with
  9. * the following exception:
  10. *
  11. * "Permission is granted to link this code with software released under
  12. * the Apache license version 1.1, for example used by the Xerces XML
  13. * parser package."
  14. */
  15. package xml.options;
  16. //{{{ Imports
  17. import java.util.Arrays;
  18. import java.awt.event.ActionListener;
  19. import java.awt.event.ActionEvent;
  20. import javax.swing.JCheckBox;
  21. import javax.swing.JComboBox;
  22. import javax.swing.JTextPane;
  23. import org.gjt.sp.jedit.AbstractOptionPane;
  24. import org.gjt.sp.jedit.jEdit;
  25. import xml.Resolver;
  26. //}}}
  27. public class GeneralOptionPane extends AbstractOptionPane
  28. {
  29. //{{{ Private members
  30. private JComboBox network;
  31. private JCheckBox cache;
  32. private JCheckBox popupEditorComplete;
  33. private JCheckBox validate;
  34. private JCheckBox enableSchemaMapping;
  35. private JComboBox showAttributes;
  36. private JCheckBox closeCompleteOpen;
  37. private JCheckBox closeComplete;
  38. private JCheckBox standaloneExtraSpace;
  39. private JCheckBox xinclude;
  40. private JCheckBox xincludeBaseURI;
  41. static String[] comboLabels;
  42. //}}}
  43. //{{{ GeneralOptionPane constructor
  44. public GeneralOptionPane()
  45. {
  46. super("xml.general");
  47. } //}}}
  48. //{{{ _init() method
  49. protected void _init()
  50. {
  51. JTextPane info = new JTextPane();
  52. info.setEditorKit(info.createEditorKitForContentType("text/html"));
  53. info.setOpaque(false);
  54. String text = jEdit.getProperty("options.sidekick.general.info");
  55. info.setText(text);
  56. info.setEditable(false);
  57. addComponent(jEdit.getProperty("options.note", "NOTE: "), info);
  58. addSeparator("options.xml.general.validate-separator");
  59. addComponent(validate = new JCheckBox(jEdit.getProperty(
  60. "options.xml.general.validate")));
  61. validate.setSelected(jEdit.getBooleanProperty("buffer.xml.validate"));
  62. validate.setName("validate");
  63. String prefix = "options." + Resolver.NETWORK_PROPS + ".";
  64. String[] comboLabels = new String[Resolver.MODES.length];
  65. for (int i=0; i<comboLabels.length; ++i) {
  66. comboLabels[i] = jEdit.getProperty(prefix + Resolver.MODES[i]);
  67. }
  68. network = new JComboBox(comboLabels);
  69. network.setSelectedIndex(Arrays.asList(Resolver.MODES).indexOf(Resolver.getNetworkMode()));
  70. network.setName("network");
  71. addComponent(jEdit.getProperty("options.xml.general.network-mode"), network);
  72. cache = new JCheckBox (jEdit.getProperty("options." + Resolver.CACHE));
  73. cache.setSelected(Resolver.isUsingCache());
  74. cache.setName("cache");
  75. addComponent(cache);
  76. addComponent(enableSchemaMapping = new JCheckBox(jEdit.getProperty(
  77. "options.xml.general.enable-schema-mapping")));
  78. enableSchemaMapping.setSelected(jEdit.getBooleanProperty(xml.SchemaMappingManager.ENABLE_SCHEMA_MAPPING_PROP));
  79. enableSchemaMapping.setName("enable-schema-mapping");
  80. enableSchemaMapping.setToolTipText(jEdit.getProperty(
  81. "options.xml.general.enable-schema-mapping.tooltip" ));
  82. String[] showAttributeValues = {
  83. jEdit.getProperty("options.xml.general.show-attributes.none"),
  84. jEdit.getProperty("options.xml.general.show-attributes.id-only"),
  85. jEdit.getProperty("options.xml.general.show-attributes.all")
  86. };
  87. addSeparator("options.xml.general.tree-separator");
  88. addComponent(jEdit.getProperty("options.xml.general.show-attributes"),
  89. showAttributes = new JComboBox(showAttributeValues));
  90. showAttributes.setSelectedIndex(jEdit.getIntegerProperty(
  91. "xml.show-attributes",0));
  92. showAttributes.setName("showAttributes");
  93. addSeparator("options.xml.general.tags-separator");
  94. closeComplete = new JCheckBox(jEdit.getProperty(
  95. "options.xml.general.close-complete"));
  96. closeComplete.setSelected(jEdit.getBooleanProperty(
  97. "xml.close-complete"));
  98. closeComplete.setToolTipText(jEdit.getProperty(
  99. "options.xml.general.close-complete.tooltip" ));
  100. closeComplete.setName("closeComplete");
  101. addComponent(closeComplete);
  102. closeCompleteOpen = new JCheckBox(jEdit.getProperty(
  103. "options.xml.general.close-complete-open"));
  104. closeCompleteOpen.setSelected(jEdit.getBooleanProperty(
  105. "xml.close-complete-open"));
  106. closeCompleteOpen.setName("closeCompleteOpen");
  107. addComponent(closeCompleteOpen);
  108. addComponent(standaloneExtraSpace = new JCheckBox(jEdit.getProperty(
  109. "options.xml.general.standalone-extra-space")));
  110. standaloneExtraSpace.setSelected(jEdit.getBooleanProperty(
  111. "xml.standalone-extra-space"));
  112. standaloneExtraSpace.setName("standaloneExtraSpace");
  113. addComponent(popupEditorComplete = new JCheckBox(jEdit.getProperty(
  114. "options.xml.general.tageditor.popupOnCompletion")));
  115. popupEditorComplete.setSelected(jEdit.getBooleanProperty("xml.tageditor.popupOnComplete", true));
  116. popupEditorComplete.setName("popupEditorComplete");
  117. addSeparator("options.xml.general.xinclude-separator");
  118. addComponent(xinclude = new JCheckBox(jEdit.getProperty(
  119. "options.xml.general.xinclude")));
  120. xinclude.setSelected(jEdit.getBooleanProperty(
  121. "buffer.xml.xinclude"));
  122. xinclude.setName("xinclude");
  123. //force sensible default
  124. xinclude.addActionListener(new ActionListener()
  125. {
  126. public void actionPerformed(ActionEvent ae)
  127. {
  128. if(xinclude.isSelected())xincludeBaseURI.setSelected(true);
  129. }
  130. });
  131. addComponent(xincludeBaseURI = new JCheckBox(jEdit.getProperty(
  132. "options.xml.general.xinclude-xmlbase")));
  133. xincludeBaseURI.setSelected(jEdit.getBooleanProperty(
  134. "buffer.xml.xinclude.fixup-base-uris"));
  135. xincludeBaseURI.setToolTipText(jEdit.getProperty(
  136. "options.xml.general.xinclude-xmlbase.tooltip"));
  137. xincludeBaseURI.setName("xincludeBaseURI");
  138. } //}}}
  139. //{{{ _save() method
  140. protected void _save()
  141. {
  142. jEdit.setBooleanProperty("xml.tageditor.popupOnComplete", popupEditorComplete.isSelected());
  143. jEdit.setBooleanProperty("buffer.xml.validate",validate.isSelected());
  144. Resolver.setNetworkMode(Resolver.MODES[network.getSelectedIndex()]);
  145. Resolver.setUsingCache(cache.isSelected());
  146. jEdit.setBooleanProperty(xml.SchemaMappingManager.ENABLE_SCHEMA_MAPPING_PROP,
  147. enableSchemaMapping.isSelected());
  148. jEdit.setIntegerProperty("xml.show-attributes",
  149. showAttributes.getSelectedIndex());
  150. jEdit.setBooleanProperty("xml.close-complete",
  151. closeComplete.isSelected());
  152. jEdit.setBooleanProperty("xml.close-complete-open",
  153. closeCompleteOpen.isSelected());
  154. /* If we want XML close completion, we need to also enable the
  155. SideKick option to close immediately when possible. */
  156. if (closeComplete.isSelected()) {
  157. jEdit.setBooleanProperty("sidekick.complete-instant.toggle", true);
  158. }
  159. jEdit.setBooleanProperty("xml.standalone-extra-space",
  160. standaloneExtraSpace.isSelected());
  161. jEdit.setBooleanProperty("buffer.xml.xinclude",xinclude.isSelected());
  162. jEdit.setBooleanProperty("buffer.xml.xinclude.fixup-base-uris",xincludeBaseURI.isSelected());
  163. } //}}}
  164. }