|
What this is
Other links
The source code
/*
* 01/25/2003 - 14:04:26
*
* GeneralOptions.java - The interface options pane
* Copyright (C) 2000 Romain Guy
* romain.guy@jext.org
* www.jext.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.jext.options;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.File;
import org.jext.*;
import org.jext.gui.*;
import org.jext.console.*;
public class GeneralOptions extends AbstractOptionPane implements ActionListener
{
private JComboBox prompt;
private JTextField saveDelay, maxRecent, promptPattern, templatesDir;
private JextCheckBox check, tips, console, fullFileName, autoSave, labeledSeparator,
saveSession, scriptingDebug, leftPanel, topPanel, newWindow,
scrollableTabbedPanes, jythonMode;
public GeneralOptions()
{
super("general");
String prompts[] = { "DOS", "Jext", "Linux", "Solaris" };
prompt = new JComboBox(prompts);
prompt.setRenderer(new ModifiedCellRenderer());
addComponent(Jext.getProperty("options.prompt.label"), prompt);
addComponent(Jext.getProperty("options.pattern.label"), promptPattern = new JTextField(4));
promptPattern.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
addComponent(Jext.getProperty("options.maxrecent.label"), maxRecent = new JTextField(4));
maxRecent.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
addComponent(Jext.getProperty("options.delay.label"), saveDelay = new JTextField(4));
saveDelay.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
addComponent(Jext.getProperty("options.templates.label"), templatesDir = new JTextField(10));
templatesDir.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
addComponent(newWindow = new JextCheckBox(Jext.getProperty("options.newwindow.label")));
addComponent(jythonMode = new JextCheckBox(Jext.getProperty("options.jythonmode.label")));
addComponent(scriptingDebug = new JextCheckBox(Jext.getProperty("options.scriptingdebug.label")));
addComponent(autoSave = new JextCheckBox(Jext.getProperty("options.autosave.label")));
addComponent(saveSession = new JextCheckBox(Jext.getProperty("options.savesession.label")));
addComponent(check = new JextCheckBox(Jext.getProperty("options.check.label")));
addComponent(console = new JextCheckBox(Jext.getProperty("options.console.label")));
addComponent(fullFileName = new JextCheckBox(Jext.getProperty("options.full.filename.label")));
addComponent(tips = new JextCheckBox(Jext.getProperty("options.tips.label")));
addComponent(scrollableTabbedPanes = new JextCheckBox(Jext.getProperty("options.scrollabletabbedpanes.label")));
scrollableTabbedPanes.setEnabled(Utilities.JDK_VERSION.charAt(2) >= '4');
addComponent(leftPanel = new JextCheckBox(Jext.getProperty("options.leftPanel.label")));
addComponent(topPanel = new JextCheckBox(Jext.getProperty("options.topPanel.label")));
load();
prompt.addActionListener(this);//this must be done here, so the values loading doesn't trigger an actionPerformed
}
public void load()
{
String promptTxt = Jext.getProperty("console.prompt");
promptPattern.setText(promptTxt);
prompt.setSelectedIndex(-1); //no item selected
for (int i = 0; i < Console.DEFAULT_PROMPTS.length; i++) {
if (promptTxt.equals(Console.DEFAULT_PROMPTS[i])) {
prompt.setSelectedIndex(i);
break;
}
}
maxRecent.setText(Jext.getProperty("max.recent"));
String svDelay = Jext.getProperty("editor.autoSaveDelay");
if (svDelay == null)
svDelay = "60";
saveDelay.setText(svDelay);
templatesDir.setText(Jext.getProperty("templates.directory",
Jext.JEXT_HOME + File.separator + "templates"));
newWindow.setSelected(Jext.getBooleanProperty("jextLoader.newWindow"));
jythonMode.setSelected(Jext.getBooleanProperty("console.jythonMode"));
scriptingDebug.setSelected(Jext.getBooleanProperty("dawn.scripting.debug"));
autoSave.setSelected(Jext.getBooleanProperty("editor.autoSave"));
saveSession.setSelected(Jext.getBooleanProperty("editor.saveSession"));
check.setSelected(Jext.getBooleanProperty("check"));
console.setSelected(Jext.getBooleanProperty("console.save", "on"));
fullFileName.setSelected(Jext.getBooleanProperty("full.filename", "off"));
tips.setSelected(Jext.getBooleanProperty("tips"));
scrollableTabbedPanes.setSelected(Jext.getBooleanProperty("scrollableTabbedPanes"));
leftPanel.setSelected(Jext.getBooleanProperty("leftPanel.show"));
topPanel.setSelected(Jext.getBooleanProperty("topPanel.show"));
}
public Component getComponent()
{
JScrollPane scroller = new JScrollPane(this);
Dimension _dim = this.getPreferredSize();
scroller.setPreferredSize(new Dimension((int) _dim.width, 410));
//scroller.setBorder(javax.swing.border.LineBorder.createBlackLineBorder());
return scroller;
}
public void actionPerformed(ActionEvent evt)
{
if (evt.getSource() == prompt)
{
int idx = prompt.getSelectedIndex();
if (idx != -1)
promptPattern.setText(Console.DEFAULT_PROMPTS[idx]);
//else nothing is selected and nothing must be done
}
}
public void save()
{
Jext.setProperty("max.recent", maxRecent.getText());
Jext.setProperty("templates.directory", templatesDir.getText());
Jext.setProperty("check", check.isSelected() ? "on" : "off");
Jext.setProperty("tips", tips.isSelected() ? "on" : "off");
String _prompt = promptPattern.getText();
Jext.setProperty("console.prompt", _prompt.length() == 0 ? "> " : _prompt);
Jext.setProperty("console.save", console.isSelected() ? "on" : "off");
Jext.setProperty("console.jythonMode", jythonMode.isSelected() ? "on" : "off");
Jext.setProperty("full.filename", fullFileName.isSelected() ? "on" : "off");
Jext.setProperty("editor.autoSave", autoSave.isSelected() ? "on" : "off");
Jext.setProperty("editor.autoSaveDelay", saveDelay.getText());
Jext.setProperty("editor.saveSession", saveSession.isSelected() ? "on" : "off");
Jext.setProperty("dawn.scripting.debug", scriptingDebug.isSelected() ? "on" : "off");
Jext.setProperty("leftPanel.show", leftPanel.isSelected() ? "on" : "off");
Jext.setProperty("topPanel.show", topPanel.isSelected() ? "on" : "off");
Jext.setProperty("jextLoader.newWindow", newWindow.isSelected() ? "on" : "off");
Jext.setProperty("scrollableTabbedPanes", scrollableTabbedPanes.isSelected() ? "on" : "off");
}
}
// End of GeneralOptions.java
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.