diff options
| author | Paul Buetow <paul@buetow.org> | 2008-06-03 18:13:44 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-06-03 18:13:44 +0000 |
| commit | adf861c3d53d32018c6bd5cc0c331a4d541ab4e9 (patch) | |
| tree | a723cb4c65ae2ad0d5bfc1b4bd3cc41f53e0fe20 | |
| parent | 11af1c9fa7fe66e10de0a92878311b4e22befb0f (diff) | |
All known bugs fixed.
| -rw-r--r-- | ROADMAP | 9 | ||||
| -rw-r--r-- | sources/serialize/VSSerialize.java | 1 | ||||
| -rw-r--r-- | sources/simulator/VSSimulator.java | 48 | ||||
| -rw-r--r-- | sources/simulator/VSSimulatorFrame.java | 7 |
4 files changed, 37 insertions, 28 deletions
@@ -1,14 +1,5 @@ -Bugs: - prozess combo box muss PIDs anzeigen nicht process nums - serialize/deserialize mehrerer prozesse?! Must do: Reliable Multicast - Ganze simulationseinstellungen abspeichern/laden koennen - Events serialisierbar machen - TaskManager + Tasks serialisierbar machen - VSPrefsRestriction serialisierbar machen - Tasks anhand der Tasknummern den richtigen Prozessen zuordnen - Jedes Eventobjekte den Tasks und der Prozesse anhand der IDs zuordnen Evtl.: Kapseln: Protokolle sollen nur fuer sie bestimtme methoden aufrufen koennen Periodische Tasks anlegen koennen diff --git a/sources/serialize/VSSerialize.java b/sources/serialize/VSSerialize.java index 0d44d31..dfdb05b 100644 --- a/sources/serialize/VSSerialize.java +++ b/sources/serialize/VSSerialize.java @@ -227,6 +227,7 @@ public final class VSSerialize { this.setObject("prefs", prefs); simulator = new VSSimulator(prefs, simulatorFrame); + simulatorFrame.addSimulator(simulator); simulator.deserialize(this, objectInputStream); } catch (Exception e) { diff --git a/sources/simulator/VSSimulator.java b/sources/simulator/VSSimulator.java index 0a7c6c2..1f8f986 100644 --- a/sources/simulator/VSSimulator.java +++ b/sources/simulator/VSSimulator.java @@ -1008,7 +1008,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @return the split size */ - public int getSplitSize() { + public synchronized int getSplitSize() { return splitPaneH.getDividerLocation(); } @@ -1017,7 +1017,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @return the paint size */ - public int getPaintSize() { + public synchronized int getPaintSize() { return splitPaneV.getDividerLocation(); } @@ -1065,7 +1065,7 @@ public class VSSimulator extends JPanel implements VSSerializable { /** * Update task manager table. */ - public void updateTaskManagerTable() { + public synchronized void updateTaskManagerTable() { VSProcess process = getSelectedProcess(); boolean allProcesses = process == null; @@ -1079,9 +1079,30 @@ public class VSSimulator extends JPanel implements VSSerializable { } /** + * Update the processes combo box + */ + private void updateProcessesComboBox() { + int numProcesses = simulatorCanvas.getNumProcesses(); + + String processString = prefs.getString("lang.process"); + + for (int i = 0; i < numProcesses; ++i) { + int processID = simulatorCanvas.getProcess(i).getProcessID(); + + processesComboBox.removeItemAt(i); + localPIDComboBox.removeItemAt(i); + globalPIDComboBox.removeItemAt(i); + + processesComboBox.insertItemAt(processString + " " + processID, i); + localPIDComboBox.insertItemAt("PID: " + processID, i); + globalPIDComboBox.insertItemAt("PID: " + processID, i); + } + } + + /** * The simulator has finished. */ - public void finish() { + public synchronized void finish() { menuItemStates.setStart(false); menuItemStates.setPause(false); menuItemStates.setReset(true); @@ -1094,7 +1115,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @return the simulator num */ - public int getSimulatorNum() { + public synchronized int getSimulatorNum() { return simulatorNum; } @@ -1103,7 +1124,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @return the menu item states */ - public VSMenuItemStates getMenuItemStates() { + public synchronized VSMenuItemStates getMenuItemStates() { return menuItemStates; } @@ -1112,7 +1133,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @return the simulator canvas */ - public VSSimulatorCanvas getSimulatorCanvas() { + public synchronized VSSimulatorCanvas getSimulatorCanvas() { return simulatorCanvas; } @@ -1121,14 +1142,14 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @return the simulator frame */ - public VSSimulatorFrame getSimulatorFrame() { + public synchronized VSSimulatorFrame getSimulatorFrame() { return simulatorFrame; } /** * Update from prefs. */ - public void updateFromPrefs() { + public synchronized void updateFromPrefs() { simulatorCanvas.setBackground(prefs.getColor("col.background")); simulatorCanvas.updateFromPrefs(); } @@ -1138,7 +1159,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @param index the index */ - public void removedAProcessAtIndex(int index) { + public synchronized void removedAProcessAtIndex(int index) { if (lastSelectedProcessNum > index) --lastSelectedProcessNum; @@ -1159,7 +1180,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @param index the index */ - public void addProcessAtIndex(int index) { + public synchronized void addProcessAtIndex(int index) { int processID = simulatorCanvas.getProcess(index).getProcessID(); String processString = prefs.getString("lang.process"); @@ -1176,7 +1197,7 @@ public class VSSimulator extends JPanel implements VSSerializable { /** * Fire expert mode changed. Tell, that the expert mode has changed. */ - public void fireExpertModeChanged() { + public synchronized void fireExpertModeChanged() { boolean expertMode = prefs.getBoolean("sim.mode.expert"); /* Update the Task Manager GUI */ @@ -1221,7 +1242,7 @@ public class VSSimulator extends JPanel implements VSSerializable { * * @return the prefs */ - public VSPrefs getPrefs() { + public synchronized VSPrefs getPrefs() { return prefs; } @@ -1266,5 +1287,6 @@ public class VSSimulator extends JPanel implements VSSerializable { updateFromPrefs(); updateTaskManagerTable(); + updateProcessesComboBox(); } } diff --git a/sources/simulator/VSSimulatorFrame.java b/sources/simulator/VSSimulatorFrame.java index ad095c4..1fb5cab 100644 --- a/sources/simulator/VSSimulatorFrame.java +++ b/sources/simulator/VSSimulatorFrame.java @@ -144,13 +144,8 @@ public class VSSimulatorFrame extends VSFrame { } else if (sourceText.equals( finalPrefs.getString("lang.open"))) { - //pauseCurrentSimulator(); - //resetCurrentSimulator(); VSSerialize serialize = new VSSerialize(); - VSSimulator simulator = serialize.openSimulator( - VSSimulatorFrame.this); - if (simulator != null) - addSimulator(simulator); + serialize.openSimulator(VSSimulatorFrame.this); } else if (sourceText.equals( finalPrefs.getString("lang.save"))) { |
