diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-21 01:54:06 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-21 01:54:06 +0000 |
| commit | 6059b54e23e742db068da5e4a53b8b1b046db121 (patch) | |
| tree | 72e51fefd35efe5d013d16b4ac26240d7216660f /sources/prefs/editors/VSEditorFrame.java | |
| parent | 8d5c21477617e4d08bd098069c7628830675abb7 (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.java | 177 |
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); + } + } +} |
