From d4c1ddcc90c1e2e8660598fc36b3772d2bff6816 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 15 May 2008 23:08:33 +0000 Subject: 1 Moved the stuff to trunk! --- sources/editors/VSEditorFrame.java | 225 +++++++++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 sources/editors/VSEditorFrame.java (limited to 'sources/editors/VSEditorFrame.java') diff --git a/sources/editors/VSEditorFrame.java b/sources/editors/VSEditorFrame.java new file mode 100644 index 0000000..b9c14c6 --- /dev/null +++ b/sources/editors/VSEditorFrame.java @@ -0,0 +1,225 @@ +package 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 abstract class VSEditorFrame extends VSEditor { + protected VSInfoArea infoArea; + protected VSFrame frame; + + public VSEditorFrame(VSPrefs prefs, Component relativeTo, VSPrefs prefsToEdit, String title) { + super(prefs, prefsToEdit); + frame = new VSFrame(title, relativeTo); + initialize(); + } + + public VSEditorFrame(VSPrefs prefs, Component relativeTo, VSPrefs prefsToEdit, String title, int prefsCategory) { + super(prefs, prefsToEdit, prefsCategory); + frame = new VSFrame(title, relativeTo); + initialize(); + } + + private void initialize() { + frame.setJMenuBar(createJMenuBar()); + frame.setContentPane(createContentPane()); + frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + frame.setSize(prefs.getInteger("window.prefs.xsize"), + prefs.getInteger("window.prefs.ysize")); + frame.setResizable(false); + frame.setVisible(true); + + /* + frame.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent we) { + Window window = we.getWindow(); + } + }); + */ + } + + private Container createContentPane() { + Container contentPane = frame.getContentPane(); + + infoArea = new VSInfoArea(); + JPanel editPanel = super.editPanel; + JPanel buttonPanel = createButtonPanel(); + + JScrollPane scrollPane = new JScrollPane(editPanel); + contentPane.add(infoArea, BorderLayout.NORTH); + contentPane.add(scrollPane, BorderLayout.CENTER); + contentPane.add(buttonPanel, BorderLayout.SOUTH); + + return contentPane; + } + + protected void addToEditPanelFront(JPanel editPanel) { } + + protected void addToEditPanelLast(JPanel editPanel) { } + + private JPanel createButtonPanel() { + JPanel buttonPanel = super.buttonPanel; + + JButton cancelButton = new JButton( + prefs.getString("lang.cancel")); + cancelButton.setMnemonic(prefs.getInteger("keyevent.cancel")); + cancelButton.addActionListener(this); + buttonPanel.add(cancelButton); + + return buttonPanel; + } + + 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 (!(this 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 (!(this 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 (!(this 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 (!(this instanceof VSSimulationEditor)) + menuItem.setEnabled(false); + + menuEdit.addSeparator(); + + menuItem = new JMenuItem(prefs.getString("lang.prefs")); + /* + if (super.prefsCategory == 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 (super.prefsCategory == 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"))) { + frame.dispose(); + + } else if (actionCommand.equals(prefs.getString("lang.saveas"))) { + JFileChooser fileChooser = new JFileChooser(); + int ret = fileChooser.showSaveDialog(frame); + + if (ret == JFileChooser.APPROVE_OPTION) { + File file = fileChooser.getSelectedFile(); + 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(frame); + + if (ret == JFileChooser.APPROVE_OPTION) { + File file = fileChooser.getSelectedFile(); + prefsToEdit = prefs = VSDefaultPrefs.initialize(file.getName()); + resetEditPanel(); + } + + } else if (actionCommand.equals(prefs.getString("lang.cancel"))) { + frame.dispose(); + + } else if (actionCommand.equals(prefs.getString("lang.prefs"))) { + newVSEditorInstance(prefs, prefs, VSEditor.SIMULATION_PREFERENCES); + + } else if (actionCommand.equals(prefs.getString("lang.prefs.ext"))) { + newVSEditorInstance(prefs, prefs, VSEditor.ALL_PREFERENCES); + + } else { + /* More action in the super class!!! */ + super.actionPerformed(e); + } + } + + public void newVSEditorInstance(VSPrefs prefs, VSPrefs prefsToEdit, int prefsCategory) { }; + + protected VSFrame getFrame() { + return frame; + } +} -- cgit v1.2.3