PageRenderTime 41ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/jEdit/tags/jedit-4-0-pre5/org/gjt/sp/jedit/options/LoadSaveOptionPane.java

#
Java | 209 lines | 145 code | 22 blank | 42 comment | 5 complexity | 7ab703357fe2324d579cfcffd9052e88 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. * LoadSaveOptionPane.java - Loading and saving 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. //{{{ Imports
  24. import javax.swing.*;
  25. import java.awt.event.*;
  26. import java.awt.*;
  27. import java.util.StringTokenizer;
  28. import org.gjt.sp.jedit.*;
  29. //}}}
  30. public class LoadSaveOptionPane extends AbstractOptionPane
  31. {
  32. //{{{ LoadSaveOptionPane constructor
  33. public LoadSaveOptionPane()
  34. {
  35. super("loadsave");
  36. } //}}}
  37. //{{{ _init() method
  38. public void _init()
  39. {
  40. /* Autosave interval */
  41. autosave = new JTextField(jEdit.getProperty("autosave"));
  42. addComponent(jEdit.getProperty("options.loadsave.autosave"),autosave);
  43. /* Backup count */
  44. backups = new JTextField(jEdit.getProperty("backups"));
  45. addComponent(jEdit.getProperty("options.loadsave.backups"),backups);
  46. /* Backup directory */
  47. backupDirectory = new JTextField(jEdit.getProperty(
  48. "backup.directory"));
  49. addComponent(jEdit.getProperty("options.loadsave.backupDirectory"),
  50. backupDirectory);
  51. /* Backup filename prefix */
  52. backupPrefix = new JTextField(jEdit.getProperty("backup.prefix"));
  53. addComponent(jEdit.getProperty("options.loadsave.backupPrefix"),
  54. backupPrefix);
  55. /* Backup suffix */
  56. backupSuffix = new JTextField(jEdit.getProperty(
  57. "backup.suffix"));
  58. addComponent(jEdit.getProperty("options.loadsave.backupSuffix"),
  59. backupSuffix);
  60. /* Line separator */
  61. String[] lineSeps = { jEdit.getProperty("lineSep.unix"),
  62. jEdit.getProperty("lineSep.windows"),
  63. jEdit.getProperty("lineSep.mac") };
  64. lineSeparator = new JComboBox(lineSeps);
  65. String lineSep = jEdit.getProperty("buffer.lineSeparator",
  66. System.getProperty("line.separator"));
  67. if("\n".equals(lineSep))
  68. lineSeparator.setSelectedIndex(0);
  69. else if("\r\n".equals(lineSep))
  70. lineSeparator.setSelectedIndex(1);
  71. else if("\r".equals(lineSep))
  72. lineSeparator.setSelectedIndex(2);
  73. addComponent(jEdit.getProperty("options.loadsave.lineSeparator"),
  74. lineSeparator);
  75. /* Default file encoding */
  76. DefaultComboBoxModel encodings = new DefaultComboBoxModel();
  77. StringTokenizer st = new StringTokenizer(jEdit.getProperty("encodings"));
  78. while(st.hasMoreTokens())
  79. {
  80. encodings.addElement(st.nextToken());
  81. }
  82. encoding = new JComboBox(encodings);
  83. encoding.setEditable(true);
  84. encoding.setSelectedItem(jEdit.getProperty("buffer.encoding",
  85. System.getProperty("file.encoding")));
  86. addComponent(jEdit.getProperty("options.loadsave.encoding"),encoding);
  87. /* Number of I/O threads to start */
  88. ioThreadCount = new JTextField(jEdit.getProperty("ioThreadCount"));
  89. addComponent(jEdit.getProperty("options.loadsave.ioThreadCount"),
  90. ioThreadCount);
  91. /* Session management */
  92. restore = new JCheckBox(jEdit.getProperty(
  93. "options.loadsave.restore"));
  94. restore.setSelected(jEdit.getBooleanProperty("restore"));
  95. restore.addActionListener(new ActionListener()
  96. {
  97. public void actionPerformed(ActionEvent evt)
  98. {
  99. restoreCLI.setEnabled(restore.isSelected());
  100. }
  101. });
  102. addComponent(restore);
  103. restoreCLI = new JCheckBox(jEdit.getProperty(
  104. "options.loadsave.restore.cli"));
  105. restoreCLI.setSelected(jEdit.getBooleanProperty("restore.cli"));
  106. restoreCLI.setEnabled(restore.isSelected());
  107. addComponent(restoreCLI);
  108. /* Clients open files in new view */
  109. newView = new JCheckBox(jEdit.getProperty(
  110. "options.loadsave.newView"));
  111. newView.setSelected(jEdit.getBooleanProperty("client.newView"));
  112. addComponent(newView);
  113. /* Persistent markers */
  114. persistentMarkers = new JCheckBox(jEdit.getProperty(
  115. "options.loadsave.persistentMarkers"));
  116. persistentMarkers.setSelected(jEdit.getBooleanProperty(
  117. "persistentMarkers"));
  118. addComponent(persistentMarkers);
  119. /* Two-stage save */
  120. twoStageSave = new JCheckBox(jEdit.getProperty(
  121. "options.loadsave.twoStageSave"));
  122. twoStageSave.setSelected(jEdit.getBooleanProperty(
  123. "twoStageSave"));
  124. addComponent(twoStageSave);
  125. /* Parse fully */
  126. parseFully = new JCheckBox(jEdit.getProperty(
  127. "options.loadsave.parseFully"));
  128. parseFully.setSelected(jEdit.getBooleanProperty("parseFully"));
  129. addComponent(parseFully);
  130. /* Backup on every save */
  131. backupEverySave = new JCheckBox(jEdit.getProperty(
  132. "options.loadsave.backupEverySave"));
  133. backupEverySave.setSelected(jEdit.getBooleanProperty("backupEverySave"));
  134. addComponent(backupEverySave);
  135. } //}}}
  136. //{{{ _save() method
  137. public void _save()
  138. {
  139. jEdit.setProperty("autosave",autosave.getText());
  140. jEdit.setProperty("backups",backups.getText());
  141. jEdit.setProperty("backup.directory",backupDirectory.getText());
  142. jEdit.setProperty("backup.prefix",backupPrefix.getText());
  143. jEdit.setProperty("backup.suffix",backupSuffix.getText());
  144. String lineSep = null;
  145. switch(lineSeparator.getSelectedIndex())
  146. {
  147. case 0:
  148. lineSep = "\n";
  149. break;
  150. case 1:
  151. lineSep = "\r\n";
  152. break;
  153. case 2:
  154. lineSep = "\r";
  155. break;
  156. }
  157. jEdit.setProperty("buffer.lineSeparator",lineSep);
  158. jEdit.setProperty("buffer.encoding",(String)
  159. encoding.getSelectedItem());
  160. jEdit.setProperty("ioThreadCount",ioThreadCount.getText());
  161. jEdit.setBooleanProperty("restore",restore.isSelected());
  162. jEdit.setBooleanProperty("restore.cli",restoreCLI.isSelected());
  163. jEdit.setBooleanProperty("client.newView",newView.isSelected());
  164. jEdit.setBooleanProperty("persistentMarkers",
  165. persistentMarkers.isSelected());
  166. jEdit.setBooleanProperty("twoStageSave",twoStageSave.isSelected());
  167. jEdit.setBooleanProperty("parseFully",parseFully.isSelected());
  168. jEdit.setBooleanProperty("backupEverySave", backupEverySave.isSelected());
  169. } //}}}
  170. //{{{ Private members
  171. private JTextField autosave;
  172. private JTextField backups;
  173. private JTextField backupDirectory;
  174. private JTextField backupPrefix;
  175. private JTextField backupSuffix;
  176. private JComboBox lineSeparator;
  177. private JComboBox encoding;
  178. private JTextField ioThreadCount;
  179. private JCheckBox restore;
  180. private JCheckBox restoreCLI;
  181. private JCheckBox newView;
  182. private JCheckBox persistentMarkers;
  183. private JCheckBox twoStageSave;
  184. private JCheckBox parseFully;
  185. private JCheckBox backupEverySave;
  186. //}}}
  187. }