summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-06-02 21:35:32 +0000
committerPaul Buetow <paul@buetow.org>2008-06-02 21:35:32 +0000
commitecdeab2258fc12a3b16337eff49a9b42536d3076 (patch)
tree4bd4413132d9a3d29bb22a80608de8a35a9a717d
parentadca28d981ef8c9d09c5ba0a6e56b2145a14c60f (diff)
save/open works!?
-rw-r--r--sources/core/VSProcess.java8
-rw-r--r--sources/simulator/VSSimulator.java6
-rw-r--r--sources/simulator/VSSimulatorCanvas.java60
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);
}