diff options
| author | Paul Buetow <paul@buetow.org> | 2008-06-02 21:35:32 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-06-02 21:35:32 +0000 |
| commit | ecdeab2258fc12a3b16337eff49a9b42536d3076 (patch) | |
| tree | 4bd4413132d9a3d29bb22a80608de8a35a9a717d | |
| parent | adca28d981ef8c9d09c5ba0a6e56b2145a14c60f (diff) | |
save/open works!?
| -rw-r--r-- | sources/core/VSProcess.java | 8 | ||||
| -rw-r--r-- | sources/simulator/VSSimulator.java | 6 | ||||
| -rw-r--r-- | sources/simulator/VSSimulatorCanvas.java | 60 |
3 files changed, 39 insertions, 35 deletions
diff --git a/sources/core/VSProcess.java b/sources/core/VSProcess.java index 7c4ac41..c6456de 100644 --- a/sources/core/VSProcess.java +++ b/sources/core/VSProcess.java @@ -1021,8 +1021,8 @@ public class VSProcess extends VSPrefs implements VSSerializable { super.serialize(serialize, objectOutputStream); if (VSSerialize.DEBUG) - System.out.println("Serializing: VSProcess (num: " + processNum - + "; id: " + processID + ")"); + System.out.println("Serializing: VSProcess (num: " + processNum + + "; id: " + processID + ")"); objectOutputStream.writeObject(new Integer(processID)); objectOutputStream.writeObject(new Integer(protocolsToReset.size())); @@ -1041,13 +1041,13 @@ public class VSProcess extends VSPrefs implements VSSerializable { ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException { super.deserialize(serialize, objectInputStream); - updateFromPrefs(); + updateFromPrefs(); if (VSSerialize.DEBUG) System.out.println("Deserializing: VSProcess"); this.processID = ((Integer) - objectInputStream.readObject()).intValue(); + objectInputStream.readObject()).intValue(); int numProtocols = ((Integer) objectInputStream.readObject()).intValue(); diff --git a/sources/simulator/VSSimulator.java b/sources/simulator/VSSimulator.java index b6cdb44..aec330e 100644 --- a/sources/simulator/VSSimulator.java +++ b/sources/simulator/VSSimulator.java @@ -335,7 +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"); + System.out.println("BAZ"); String command = ae.getActionCommand(); if (command.equals(prefs.getString("lang.remove"))) { removeTaskAtRow(row); @@ -597,7 +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"); + System.out.println("BAY"); String command = ae.getActionCommand(); if (command.equals( prefs.getString("lang.logging.clear"))) { @@ -820,7 +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"); + System.out.println("BAR"); String textValue = textField.getText(); Long longValue = null; diff --git a/sources/simulator/VSSimulatorCanvas.java b/sources/simulator/VSSimulatorCanvas.java index 752f726..1b30a51 100644 --- a/sources/simulator/VSSimulatorCanvas.java +++ b/sources/simulator/VSSimulatorCanvas.java @@ -673,10 +673,10 @@ public class VSSimulatorCanvas extends Canvas * order to gain performance! */ private void recalcOnChange() { - synchronized (processes) { - if (processes.size() == 0) - return; - } + synchronized (processes) { + if (processes.size() == 0) + return; + } processlineColor = prefs.getColor("col.process.line"); processSecondlineColor = prefs.getColor("col.process.secondline"); @@ -1489,15 +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>(); @@ -1534,13 +1534,25 @@ public class VSSimulatorCanvas extends Canvas /** * Adds a new process to the simulator. - * - * @return The process which has been added + * + * @return The process which has been added */ private VSProcess addProcess() { synchronized (processes) { numProcesses = processes.size() + 1; VSProcess newProcess = createProcess(processes.size()); + addProcess(newProcess); + return newProcess; + } + } + + /** + * Adds a the given process to the simulator. + * + * @newProcess The process to add + */ + private void addProcess(VSProcess newProcess) { + synchronized (processes) { processes.add(newProcess); for (VSProcess process : processes) @@ -1549,8 +1561,6 @@ public class VSSimulatorCanvas extends Canvas recalcOnChange(); simulator.addProcessAtIndex(processes.size()-1); - - return newProcess; } } @@ -1582,25 +1592,19 @@ public class VSSimulatorCanvas extends Canvas System.out.println("Deserializing: VSSimulatorCanvas"); int num = ((Integer) objectInputStream.readObject()).intValue(); - logging.clear(); + 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); + if (num > numProcesses) { + for (int i = numProcesses; i < num; ++i) + addProcess(); + } else { + int oldNum = numProcesses; + for (int i = num; i < oldNum; ++i) + removeProcess(getProcess(0)); } - synchronized (processes) { - 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) { - - } - } + for (int i = 0; i < num; ++i) + processes.get(0).deserialize(serialize, objectInputStream); taskManager.deserialize(serialize, objectInputStream); } |
