summaryrefslogtreecommitdiff
path: root/sources/prefs/editors/VSEditorFrame.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-21 01:54:06 +0000
committerPaul Buetow <paul@buetow.org>2008-05-21 01:54:06 +0000
commit6059b54e23e742db068da5e4a53b8b1b046db121 (patch)
tree72e51fefd35efe5d013d16b4ac26240d7216660f /sources/prefs/editors/VSEditorFrame.java
parent8d5c21477617e4d08bd098069c7628830675abb7 (diff)
Introduced a new VSEditorFrame.
No more need for the VSProtcolEditor!
Diffstat (limited to 'sources/prefs/editors/VSEditorFrame.java')
-rw-r--r--sources/prefs/editors/VSEditorFrame.java177
1 files changed, 177 insertions, 0 deletions
diff --git a/sources/prefs/editors/VSEditorFrame.java b/sources/prefs/editors/VSEditorFrame.java
new file mode 100644
index 0000000..918b307
--- /dev/null
+++ b/sources/prefs/editors/VSEditorFrame.java
@@ -0,0 +1,177 @@
+package prefs.editors;
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import javax.swing.filechooser.*;
+import java.util.*;
+import java.io.File;
+
+import prefs.*;
+import simulator.*;
+import utils.*;
+
+public class VSEditorFrame extends VSFrame implements ActionListener {
+ private VSBetterEditor editor;
+ private VSPrefs prefs;
+
+ public VSEditorFrame(VSPrefs prefs, Component relativeTo, VSBetterEditor editor) {
+ super(editor.getTitle(), relativeTo);
+ this.prefs = prefs;
+ this.editor = editor;
+ init();
+ }
+
+ private void init() {
+ editor.setFrame(this);
+ setJMenuBar(createJMenuBar());
+ setContentPane(editor.getContentPane());
+ setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ setSize(prefs.getInteger("window.prefs.xsize"),
+ prefs.getInteger("window.prefs.ysize"));
+ setResizable(false);
+ setVisible(true);
+ }
+
+ private JMenuBar createJMenuBar() {
+ /* File menu */
+ JMenu menuFile = new JMenu(
+ prefs.getString("lang.file"));
+ menuFile.setMnemonic(prefs.getInteger("keyevent.file"));
+ JMenuItem menuItem;
+
+ menuItem = new JMenuItem(
+ prefs.getString("lang.save"));
+ menuItem.setAccelerator(KeyStroke.getKeyStroke(
+ prefs.getInteger("keyevent.save"),
+ ActionEvent.ALT_MASK));
+ menuItem.addActionListener(this);
+ menuFile.add(menuItem);
+
+ if (!(editor instanceof VSSimulationEditor))
+ menuItem.setEnabled(false);
+
+ menuItem = new JMenuItem(
+ prefs.getString("lang.saveas"));
+ menuItem.setAccelerator(KeyStroke.getKeyStroke(
+ prefs.getInteger("keyevent.saveas"),
+ ActionEvent.ALT_MASK));
+ menuItem.addActionListener(this);
+ menuFile.add(menuItem);
+
+ if (!(editor instanceof VSSimulationEditor))
+ menuItem.setEnabled(false);
+
+ menuItem = new JMenuItem(
+ prefs.getString("lang.open"));
+ menuItem.setAccelerator(KeyStroke.getKeyStroke(
+ prefs.getInteger("keyevent.open"),
+ ActionEvent.ALT_MASK));
+ menuItem.addActionListener(this);
+ menuFile.add(menuItem);
+
+ if (!(editor instanceof VSSimulationEditor))
+ menuItem.setEnabled(false);
+
+ menuFile.addSeparator();
+
+ menuItem = new JMenuItem(
+ prefs.getString("lang.close"));
+ menuItem.setAccelerator(KeyStroke.getKeyStroke(
+ prefs.getInteger("keyevent.close"),
+ ActionEvent.ALT_MASK));
+ menuItem.addActionListener(this);
+ menuFile.add(menuItem);
+
+ /* Edit menu */
+ JMenu menuEdit = new JMenu(
+ prefs.getString("lang.edit"));
+ menuEdit.setMnemonic(prefs.getInteger("keyevent.edit"));
+
+ menuItem = new JMenuItem(
+ prefs.getString("lang.default"));
+ menuItem.setAccelerator(KeyStroke.getKeyStroke(
+ prefs.getInteger("keyevent.default"),
+ ActionEvent.ALT_MASK));
+ menuItem.addActionListener(this);
+ menuEdit.add(menuItem);
+
+ if (!(editor instanceof VSSimulationEditor))
+ menuItem.setEnabled(false);
+
+ menuEdit.addSeparator();
+
+ menuItem = new JMenuItem(prefs.getString("lang.prefs"));
+ /*
+ if (editor.getOrefsCategory() == ALL_PREFERENCES) {
+ menuItem.setAccelerator(KeyStroke.getKeyStroke(
+ prefs.getInteger("keyevent.prefs"),
+ ActionEvent.ALT_MASK));
+ menuItem.addActionListener(this);
+ }
+ */
+ menuItem.setEnabled(false);
+ menuEdit.add(menuItem);
+
+ menuItem = new JMenuItem(prefs.getString("lang.prefs.ext"));
+ if (editor.getPrefsCategory() == VSEditor.SIMULATION_PREFERENCES) {
+ menuItem.setAccelerator(KeyStroke.getKeyStroke(
+ prefs.getInteger("keyevent.prefs.ext"),
+ ActionEvent.ALT_MASK));
+ menuItem.addActionListener(this);
+ } else {
+ menuItem.setEnabled(false);
+ }
+ menuEdit.add(menuItem);
+
+ JMenuBar mainMenuBar = new JMenuBar();
+ mainMenuBar.add(menuFile);
+ mainMenuBar.add(menuEdit);
+
+ return mainMenuBar;
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ String actionCommand = e.getActionCommand();
+
+ if (actionCommand.equals(prefs.getString("lang.close"))) {
+ dispose();
+
+ } else if (actionCommand.equals(prefs.getString("lang.saveas"))) {
+ JFileChooser fileChooser = new JFileChooser();
+ int ret = fileChooser.showSaveDialog(this);
+
+ if (ret == JFileChooser.APPROVE_OPTION) {
+ File file = fileChooser.getSelectedFile();
+ editor.savePrefs();
+ prefs.saveFile(file.getName());
+ }
+
+ } else if (actionCommand.equals(prefs.getString("lang.open"))) {
+ JFileChooser fileChooser = new JFileChooser();
+ fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+ int ret = fileChooser.showOpenDialog(this);
+
+ if (ret == JFileChooser.APPROVE_OPTION) {
+ File file = fileChooser.getSelectedFile();
+ VSPrefs newPrefs = VSDefaultPrefs.init(file.getName());
+ editor.setPrefs(newPrefs);
+ editor.setPrefsToEdit(newPrefs);
+ editor.resetEditPanel();
+ }
+
+ } else if (actionCommand.equals(prefs.getString("lang.cancel"))) {
+ dispose();
+
+ } else if (actionCommand.equals(prefs.getString("lang.prefs"))) {
+ editor.newVSEditorInstance(prefs, prefs, VSEditor.SIMULATION_PREFERENCES);
+
+ } else if (actionCommand.equals(prefs.getString("lang.prefs.ext"))) {
+ editor.newVSEditorInstance(prefs, prefs, VSEditor.ALL_PREFERENCES);
+
+ } else {
+ editor.actionPerformed(e);
+ }
+ }
+}