diff options
| author | Paul Buetow <paul@buetow.org> | 2008-06-02 01:43:11 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-06-02 01:43:11 +0000 |
| commit | 16200e39c38ed76ddac954c7e005a22b6233c642 (patch) | |
| tree | f4703e6359da7fbc3d5ca97e7427556777839b39 /sources/simulator | |
| parent | 378c2674fc704b2a6bbf0e6a01b721a7aea7c2e2 (diff) | |
foo
Diffstat (limited to 'sources/simulator')
| -rw-r--r-- | sources/simulator/VSSimulator.java | 4 | ||||
| -rw-r--r-- | sources/simulator/VSSimulatorCanvas.java | 47 |
2 files changed, 36 insertions, 15 deletions
diff --git a/sources/simulator/VSSimulator.java b/sources/simulator/VSSimulator.java index 4323190..b6cdb44 100644 --- a/sources/simulator/VSSimulator.java +++ b/sources/simulator/VSSimulator.java @@ -335,6 +335,7 @@ public class VSSimulator extends JPanel implements VSSerializable { if (SwingUtilities.isRightMouseButton(me)) { ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent ae) { + System.out.println("BAZ"); String command = ae.getActionCommand(); if (command.equals(prefs.getString("lang.remove"))) { removeTaskAtRow(row); @@ -596,6 +597,7 @@ public class VSSimulator extends JPanel implements VSSerializable { prefs.getString("lang.logging.clear")); clearButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { + System.out.println("BAY"); String command = ae.getActionCommand(); if (command.equals( prefs.getString("lang.logging.clear"))) { @@ -818,6 +820,7 @@ public class VSSimulator extends JPanel implements VSSerializable { takeoverButton.addActionListener(new ActionListener() { private boolean isRed; public void actionPerformed(ActionEvent ae) { + System.out.println("BAR"); String textValue = textField.getText(); Long longValue = null; @@ -1247,6 +1250,7 @@ public class VSSimulator extends JPanel implements VSSerializable { serialize.setObject("logging", logging); simulatorCanvas.deserialize(serialize, objectInputStream); + updateFromPrefs(); updateTaskManagerTable(); } } diff --git a/sources/simulator/VSSimulatorCanvas.java b/sources/simulator/VSSimulatorCanvas.java index 1d12a06..752f726 100644 --- a/sources/simulator/VSSimulatorCanvas.java +++ b/sources/simulator/VSSimulatorCanvas.java @@ -673,6 +673,11 @@ public class VSSimulatorCanvas extends Canvas * order to gain performance! */ private void recalcOnChange() { + synchronized (processes) { + if (processes.size() == 0) + return; + } + processlineColor = prefs.getColor("col.process.line"); processSecondlineColor = prefs.getColor("col.process.secondline"); processSeplineColor = prefs.getColor("col.process.sepline"); @@ -1484,16 +1489,15 @@ public class VSSimulatorCanvas extends Canvas index = processes.indexOf(process); processes.remove(index); - for (VSProcess p : processes) { + for (VSProcess p : processes) p.removedAProcessAtIndex(index); - } numProcesses = processes.size(); } - taskManager.removeTasksOf(process); - simulator.removedAProcessAtIndex(index); - recalcOnChange(); + taskManager.removeTasksOf(process); + simulator.removedAProcessAtIndex(index); + recalcOnChange(); ArrayList<VSMessageLine> removeThose = new ArrayList<VSMessageLine>(); @@ -1530,8 +1534,10 @@ public class VSSimulatorCanvas extends Canvas /** * Adds a new process to the simulator. + * + * @return The process which has been added */ - private void addProcess() { + private VSProcess addProcess() { synchronized (processes) { numProcesses = processes.size() + 1; VSProcess newProcess = createProcess(processes.size()); @@ -1543,6 +1549,8 @@ public class VSSimulatorCanvas extends Canvas recalcOnChange(); simulator.addProcessAtIndex(processes.size()-1); + + return newProcess; } } @@ -1573,16 +1581,25 @@ public class VSSimulatorCanvas extends Canvas if (VSSerialize.DEBUG) System.out.println("Deserializing: VSSimulatorCanvas"); + int num = ((Integer) objectInputStream.readObject()).intValue(); + logging.clear(); + + ArrayList<VSProcess> newProcesses = new ArrayList<VSProcess>(); + for (int i = 0; i < num; ++i) { + VSProcess process = createProcess(i); + process.deserialize(serialize, objectInputStream); + newProcesses.add(process); + } + synchronized (processes) { - numProcesses = ((Integer) - objectInputStream.readObject()).intValue(); - - processes.clear(); - for (int i = 0; i < numProcesses; ++i) { - VSProcess process = createProcess(i); - process.deserialize(serialize, objectInputStream); - processes.add(process); - } + int diff = numProcesses - num; + if (diff > 0) + for (int i = num; i < numProcesses; ++i) + removeProcess(processes.get(num)); + + for (int i = 0; i < num; ++i) { + + } } taskManager.deserialize(serialize, objectInputStream); |
