summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-22 21:20:51 +0000
committerPaul Buetow <paul@buetow.org>2008-05-22 21:20:51 +0000
commitc555498cfc0c38e151450aa0f82cd659af467610 (patch)
treec064cd343a80858ed8fa48f6a524635cad97fd04
parent8a589edb90f21cfcc1f08a4b2c158cccc53035c3 (diff)
Buttons and Menu Items are disabled if there is no simulation yet.
-rw-r--r--sources/simulator/VSSimulationCanvas.java32
-rw-r--r--sources/simulator/VSSimulatorFrame.java34
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);
+ }
}