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