diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-22 21:20:51 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-22 21:20:51 +0000 |
| commit | c555498cfc0c38e151450aa0f82cd659af467610 (patch) | |
| tree | c064cd343a80858ed8fa48f6a524635cad97fd04 | |
| parent | 8a589edb90f21cfcc1f08a4b2c158cccc53035c3 (diff) | |
Buttons and Menu Items are disabled if there is no simulation yet.
| -rw-r--r-- | sources/simulator/VSSimulationCanvas.java | 32 | ||||
| -rw-r--r-- | sources/simulator/VSSimulatorFrame.java | 34 |
2 files changed, 39 insertions, 27 deletions
diff --git a/sources/simulator/VSSimulationCanvas.java b/sources/simulator/VSSimulationCanvas.java index 3874ec8..b520284 100644 --- a/sources/simulator/VSSimulationCanvas.java +++ b/sources/simulator/VSSimulationCanvas.java @@ -40,9 +40,9 @@ public class VSSimulationCanvas extends Canvas implements Runnable, MouseMotionL private VSTaskManager taskManager; private LinkedList<VSMessageLine> messageLines; private LinkedList<VSProcess> processes; - private double clockSpeed; - private double clockOffset; - private long simulationTime; + private double clockSpeed; + private double clockOffset; + private long simulationTime; /* GFX buffering */ private BufferStrategy strategy; @@ -251,20 +251,20 @@ public class VSSimulationCanvas extends Canvas implements Runnable, MouseMotionL } private void updateSimulation(final long globalTime, final long lastGlobalTime) { - if (isPaused || isFinished) - return; + if (isPaused || isFinished) + return; - final long lastSimulationTime = simulationTime; + final long lastSimulationTime = simulationTime; long offset = globalTime - lastGlobalTime; - clockOffset += offset * clockSpeed; + clockOffset += offset * clockSpeed; while (clockOffset >= 1) { --clockOffset; ++simulationTime; } - offset = simulationTime - lastSimulationTime; + offset = simulationTime - lastSimulationTime; for (long l = 0; l < offset; ++l) taskManager.runTasks(l, offset, lastSimulationTime); @@ -582,13 +582,13 @@ public class VSSimulationCanvas extends Canvas implements Runnable, MouseMotionL public void pause() { isPaused = true; - for (VSProcess p : processes) - p.pause(); + for (VSProcess p : processes) + p.pause(); - pauseTime = System.currentTimeMillis(); + pauseTime = System.currentTimeMillis(); - logging.logg(prefs.getString("lang.simulation.paused")); - paint(); + logging.logg(prefs.getString("lang.simulation.paused")); + paint(); } public void reset() { @@ -601,8 +601,8 @@ public class VSSimulationCanvas extends Canvas implements Runnable, MouseMotionL startTime = System.currentTimeMillis(); time = 0; lastTime = 0; - clockOffset = 0; - simulationTime = 0; + clockOffset = 0; + simulationTime = 0; for (VSProcess process : processes) process.reset(); @@ -819,7 +819,7 @@ public class VSSimulationCanvas extends Canvas implements Runnable, MouseMotionL public void updateFromPrefs() { untilTime = prefs.getInteger("sim.seconds") * 1000; - clockSpeed = prefs.getFloat("sim.clock.speed"); + clockSpeed = prefs.getFloat("sim.clock.speed"); secondsSpaceing = (int) (untilTime / 15000); if (secondsSpaceing == 0) diff --git a/sources/simulator/VSSimulatorFrame.java b/sources/simulator/VSSimulatorFrame.java index 8483aaf..56dd459 100644 --- a/sources/simulator/VSSimulatorFrame.java +++ b/sources/simulator/VSSimulatorFrame.java @@ -26,6 +26,8 @@ public class VSSimulatorFrame extends VSFrame implements ActionListener { private JButton resetButton; private JButton startButton; private JMenu menuEdit; + private JMenu menuFile; + private JMenu menuSimulation; private JToolBar toolBar; private VSPrefs prefs; private Vector<VSSimulation> simulations; @@ -46,12 +48,19 @@ public class VSSimulatorFrame extends VSFrame implements ActionListener { setLayout(new BorderLayout()); setContentPane(createContentPane()); setVisible(true); - setEnabled(false); + + pauseButton.setEnabled(false); + replayButton.setEnabled(false); + resetButton.setEnabled(false); + startButton.setEnabled(false); + menuEdit.setEnabled(false); + menuFile.setEnabled(false); + menuSimulation.setEnabled(false); } private JMenuBar createMenuBar() { /* File menu */ - JMenu menuFile = new JMenu(prefs.getString("lang.file")); + menuFile = new JMenu(prefs.getString("lang.file")); menuFile.setMnemonic(prefs.getInteger("keyevent.file")); JMenuItem menuItem; @@ -99,7 +108,7 @@ public class VSSimulatorFrame extends VSFrame implements ActionListener { /* Simulation menu */ toolBar = new JToolBar(); - JMenu menuSimulation = new JMenu( + menuSimulation = new JMenu( prefs.getString("lang.simulation")); menuSimulation.setMnemonic(prefs.getInteger("keyevent.simulation")); @@ -310,8 +319,11 @@ public class VSSimulatorFrame extends VSFrame implements ActionListener { + " " + simulation.getSimulationNum(), simulation); tabbedPane.setSelectedComponent(simulation); - if (!isEnabled()) - setEnabled(true); + if (simulations.size() == 1) { + menuEdit.setEnabled(true); + menuFile.setEnabled(true); + menuSimulation.setEnabled(true); + } } private void removeCurrentSimulation() { @@ -325,13 +337,13 @@ public class VSSimulatorFrame extends VSFrame implements ActionListener { return currentSimulation; } - private ImageIcon getImageIcon(String name, String descr) { - java.net.URL imageURL = getClass().getResource("/icons/"+name); + private ImageIcon getImageIcon(String name, String descr) { + java.net.URL imageURL = getClass().getResource("/icons/"+name); - if (imageURL == null) - return new ImageIcon("icons/"+name, descr); + if (imageURL == null) + return new ImageIcon("icons/"+name, descr); - return new ImageIcon(imageURL, descr); - } + return new ImageIcon(imageURL, descr); + } } |
