summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-21 01:03:21 +0000
committerPaul Buetow <paul@buetow.org>2008-05-21 01:03:21 +0000
commitf8bad55bd29234ab7982fea21a228654908f0867 (patch)
tree531e3d4fb7d1c9beabaacc2c17ed921bf76bf4e1
parentef5e2356312e8354e1fe0addef6e24636f95ad78 (diff)
Removed a JSplitPane which was useless.
Initial new JTabbedPane for Variables etc.
-rw-r--r--ROADMAP1
-rw-r--r--sources/prefs/VSDefaultPrefs.java17
-rw-r--r--sources/prefs/editors/VSEditor.java104
-rw-r--r--sources/prefs/editors/VSEditorFrame.java8
-rw-r--r--sources/simulator/VSLogging.java4
-rw-r--r--sources/simulator/VSSimulation.java51
6 files changed, 122 insertions, 63 deletions
diff --git a/ROADMAP b/ROADMAP
index 59a1424..f9b633c 100644
--- a/ROADMAP
+++ b/ROADMAP
@@ -1,5 +1,6 @@
TODO:
+Bug: Ausfallwkeit geht nicht?!?!?! (Nur beim 1. mal tut das)
Prozess Quick Panel: Uhrabweichung / Geschwindigkeit direkt einstellen koennen
"Himmelobjekt"
KeyEvent Manager
diff --git a/sources/prefs/VSDefaultPrefs.java b/sources/prefs/VSDefaultPrefs.java
index 9ce11d5..c89d8ad 100644
--- a/sources/prefs/VSDefaultPrefs.java
+++ b/sources/prefs/VSDefaultPrefs.java
@@ -74,6 +74,8 @@ public class VSDefaultPrefs extends VSPrefs {
initString("lang.ok", "OK");
initString("lang.open", "Öffnen");
initString("lang.pause", "Pausieren");
+ initString("lang.variables", "Variablen");
+ initString("lang.variables.global", "Globale Variablen");
initString("lang.prefs", "Einstellungen");
initString("lang.prefs.ext", "Erweiterte Einstellungen");
initString("lang.prefs.info!", "Prozesseinstellungen können später für jeden Prozess einzelnd eingestellt werden.Die folgenden Werte sind lediglich die globalen Defaultwerte, die für neue Prozesse verwendet werden!");
@@ -116,7 +118,8 @@ public class VSDefaultPrefs extends VSPrefs {
initString("lang.stop", "Stoppen");
initString("lang.takeover", "Übernehmen");
initString("lang.task", "Aufgabe");
- initString("lang.task.manager", "Aufgabenmanager");
+ initString("lang.events", "Ereignisse");
+ initString("lang.task.manager", "Ereigniseditor");
initString("lang.tasks.fullfilled", "Abgelaufene Aufgaben");
initString("lang.tasks.global", "Globale Aufgaben");
initString("lang.tasks.local", "Lokale Aufgaben");
@@ -132,8 +135,8 @@ public class VSDefaultPrefs extends VSPrefs {
public void fillDefaultIntegers() {
/* Simulation prefs */
initInteger("sim.process.num", 3, "Anzahl der Prozesse", 1, 6);
- initIntegerUnit("sim.message.prob.outage", 0, "W'keit, dass eine Nachricht verloren geht", 0, 100, "%");
- initIntegerUnit("sim.process.prob.crash", 0, "W'keit, dass der Prozess ausfällt", 0, 100, "%");
+ initIntegerUnit("sim.message.prob.outage", 0, "Nachrichtenverlustw'keit", 0, 100, "%");
+ initIntegerUnit("sim.process.prob.crash", 0, "Prozessausfallw'keit", 0, 100, "%");
initIntegerUnit("sim.seconds", 30, "Simulationsdauer", 5, 120, "s");
/* Internal prefs */
@@ -163,7 +166,7 @@ public class VSDefaultPrefs extends VSPrefs {
initIntegerUnit("window.prefs.xsize", 350, "X-Grösse des Einstellungsfensters", 550, 3200, "px");
initIntegerUnit("window.prefs.ysize", 600, "Y-Grösse des Einstellungsfensters", 640, 2400, "px");
initIntegerUnit("window.loggsize", 300, "Y-Grösse des Loggingfensters", 100, 1000, "px");
- initIntegerUnit("window.splitsize", 300, null, 100, 1000, "px");
+ initIntegerUnit("window.splitsize", 320, null, 100, 1000, "px");
initIntegerUnit("window.xsize", 1024, "X-Grösse des Hauptfensters", 800, 3200, "px");
initIntegerUnit("window.ysize", 768, "Y-Grösse des Hauptfensters", 600, 2400, "px");
}
@@ -175,8 +178,8 @@ public class VSDefaultPrefs extends VSPrefs {
public void fillDefaultLongs() {
/* Simulation prefs */
- initLongUnit("sim.message.sendingtime.min", 1000, "Minimale Nachrichtenübertragungszeit", "ms");
- initLongUnit("sim.message.sendingtime.max", 5000, "Maximale Nachrichtenübertragungszeit", "ms");
+ initLongUnit("sim.message.sendingtime.min", 1000, "Min. Übertragung", "ms");
+ initLongUnit("sim.message.sendingtime.max", 5000, "Max. Übertragung", "ms");
}
public void fillDefaultColors() {
@@ -197,6 +200,6 @@ public class VSDefaultPrefs extends VSPrefs {
public void fillDefaultBooleans() {
//initBoolean("sim.message.broadcast", false, "Nachrichten sind immer Broadcasts");
- initBoolean("sim.message.own.recv", false, "Prozesse empfangen ihre eigenen Nachrichten");
+ initBoolean("sim.message.own.recv", false, "Proz. empfangen eigene Nachrichten");
}
}
diff --git a/sources/prefs/editors/VSEditor.java b/sources/prefs/editors/VSEditor.java
index 1a5d664..dc87a34 100644
--- a/sources/prefs/editors/VSEditor.java
+++ b/sources/prefs/editors/VSEditor.java
@@ -13,6 +13,8 @@ import utils.*;
import prefs.VSPrefs;
abstract class VSEditor implements ActionListener {
+ protected static final int LABEL_FIELD_COLS = 18;
+ protected static final int VALUE_FIELD_COLS = 7;
protected int prefsCategory;
private HashMap<String,JComboBox> integerFields;
private HashMap<String,JTextField> colorFields;
@@ -34,7 +36,8 @@ abstract class VSEditor implements ActionListener {
public static final int SIMULATION_PREFERENCES = 1;
protected GridBagConstraints editPanelConstraints;
protected int editPanelRow;
- protected Insets insetsTopSpaceing = new Insets(15, 0, 0, 0);
+ //protected Insets insetsTopSpaceing = new Insets(15, 0, 0, 0);
+ protected Insets insetsTopSpaceing = new Insets(0, 0, 0, 0);
protected Insets insets = new Insets(0, 0, 0, 0);
public VSEditor(VSPrefs prefs, VSPrefs prefsToEdit) {
@@ -75,10 +78,8 @@ abstract class VSEditor implements ActionListener {
booleanFields = new HashMap<String,JCheckBox>();
stringFields = new HashMap<String,JTextField>();
- //this.editPanel = createEditPanel();
- //this.buttonPanel = createButtonPanel();
- this.editPanel = createEditPanel();
- this.buttonPanel = createButtonPanel();
+ editPanel = createEditPanel();
+ buttonPanel = createButtonPanel();
}
private Vector<String> setToSortedVector(Set<String> set, String startsWith, boolean reversed) {
@@ -145,8 +146,8 @@ abstract class VSEditor implements ActionListener {
editPanelConstraints = new GridBagConstraints();
editPanelConstraints.fill = GridBagConstraints.HORIZONTAL;
- editPanelConstraints.ipady = 15;
- editPanelConstraints.ipadx = 15;
+ editPanelConstraints.ipady = 10;//15;
+ editPanelConstraints.ipadx = 10;//15;
editPanelRow = 0;
addToEditPanelFront(editPanel);
@@ -155,11 +156,14 @@ abstract class VSEditor implements ActionListener {
String fullKey = VSPrefs.INTEGER_PREFIX + key;
String descr = prefsToEdit.getDescription(fullKey);
- JLabel keyLabel = null;
+ JTextField keyLabel = new JTextField(LABEL_FIELD_COLS);;
+ keyLabel.setEditable(false);
+ keyLabel.setBackground(Color.WHITE);
+
if (descr == null)
- keyLabel = new JLabel(fullKey);
+ keyLabel.setText(fullKey);
else
- keyLabel = new JLabel(descr);
+ keyLabel.setText(descr);
editPanelConstraints.insets = insetsTopSpaceing;
editPanelConstraints.gridy = editPanelRow++;
@@ -190,14 +194,16 @@ abstract class VSEditor implements ActionListener {
valComboBox.repaint();
- JPanel pane = new JPanel(new BorderLayout());
- pane.setBackground(Color.WHITE);
- pane.add(createUnitPanel(valComboBox, fullKey), BorderLayout.WEST);
+ //JPanel pane = new JPanel(new BorderLayout());
+ //pane.setBackground(Color.WHITE);
+ //pane.add(createUnitPanel(valComboBox, fullKey), BorderLayout.WEST);
editPanelConstraints.insets = insets;
- editPanelConstraints.gridy = editPanelRow++;
- editPanel.add(pane, editPanelConstraints);
+ editPanelConstraints.gridx = 1;
+ editPanel.add(createUnitPanel(valComboBox, fullKey), editPanelConstraints);
integerFields.put(key, valComboBox);
+ editPanelConstraints.gridy = editPanelRow++;
+ editPanelConstraints.gridx = 0;
}
final String activated = prefs.getString("lang.activated");
@@ -205,11 +211,13 @@ abstract class VSEditor implements ActionListener {
String fullKey = VSPrefs.BOOLEAN_PREFIX + key;
String descr = prefsToEdit.getDescription(fullKey);
- JLabel keyLabel = null;
+ JTextField keyLabel = new JTextField(LABEL_FIELD_COLS);
+ keyLabel.setEditable(false);
+ keyLabel.setBackground(Color.WHITE);
if (descr == null)
- keyLabel = new JLabel(fullKey);
+ keyLabel.setText(fullKey);
else
- keyLabel = new JLabel(descr);
+ keyLabel.setText(descr);
editPanelConstraints.insets = insetsTopSpaceing;
editPanelConstraints.gridy = editPanelRow++;
@@ -223,8 +231,10 @@ abstract class VSEditor implements ActionListener {
pane.add(createUnitPanel(valField, fullKey), BorderLayout.WEST);
editPanelConstraints.insets = insets;
- editPanelConstraints.gridy = editPanelRow++;
+ editPanelConstraints.gridx = 1;
editPanel.add(pane, editPanelConstraints);
+ editPanelConstraints.gridx = 0;
+ editPanelConstraints.gridy = editPanelRow++;
booleanFields.put(key, valField);
}
@@ -232,17 +242,19 @@ abstract class VSEditor implements ActionListener {
String fullKey = VSPrefs.LONG_PREFIX + key;
String descr = prefsToEdit.getDescription(fullKey);
- JLabel keyLabel = null;
+ JTextField keyLabel = new JTextField(LABEL_FIELD_COLS);
+ keyLabel.setEditable(false);
+ keyLabel.setBackground(Color.WHITE);
if (descr == null)
- keyLabel = new JLabel(fullKey);
+ keyLabel.setText(fullKey);
else
- keyLabel = new JLabel(descr);
+ keyLabel.setText(descr);
editPanelConstraints.insets = insetsTopSpaceing;
editPanelConstraints.gridy = editPanelRow++;
editPanel.add(keyLabel, editPanelConstraints);
- JTextField valField = new JTextField(15);
+ JTextField valField = new JTextField(VALUE_FIELD_COLS);
valField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
JTextField valField = (JTextField)e.getSource();
@@ -257,8 +269,10 @@ abstract class VSEditor implements ActionListener {
pane.add(createUnitPanel(valField, fullKey), BorderLayout.WEST);
editPanelConstraints.insets = insets;
- editPanelConstraints.gridy = editPanelRow++;
+ editPanelConstraints.gridx = 1;
editPanel.add(pane, editPanelConstraints);
+ editPanelConstraints.gridx = 0;
+ editPanelConstraints.gridy = editPanelRow++;
longFields.put(key, valField);
}
@@ -267,17 +281,19 @@ abstract class VSEditor implements ActionListener {
String fullKey = VSPrefs.FLOAT_PREFIX + key;
String descr = prefsToEdit.getDescription(fullKey);
- JLabel keyLabel = null;
+ JTextField keyLabel = new JTextField(LABEL_FIELD_COLS);
+ keyLabel.setEditable(false);
+ keyLabel.setBackground(Color.WHITE);
if (descr == null)
- keyLabel = new JLabel(fullKey);
+ keyLabel.setText(fullKey);
else
- keyLabel = new JLabel(descr);
+ keyLabel.setText(descr);
editPanelConstraints.insets = insetsTopSpaceing;
editPanelConstraints.gridy = editPanelRow++;
editPanel.add(keyLabel, editPanelConstraints);
- JTextField valField = new JTextField(15);
+ JTextField valField = new JTextField(VALUE_FIELD_COLS);
valField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
JTextField valField = (JTextField)e.getSource();
@@ -292,8 +308,10 @@ abstract class VSEditor implements ActionListener {
pane.add(createUnitPanel(valField, fullKey), BorderLayout.WEST);
editPanelConstraints.insets = insets;
- editPanelConstraints.gridy = editPanelRow++;
+ editPanelConstraints.gridx = 1;
editPanel.add(pane, editPanelConstraints);
+ editPanelConstraints.gridx = 0;
+ editPanelConstraints.gridy = editPanelRow++;
floatFields.put(key, valField);
}
@@ -302,17 +320,19 @@ abstract class VSEditor implements ActionListener {
String fullKey = VSPrefs.COLOR_PREFIX + key;
String descr = prefsToEdit.getDescription(fullKey);
- JLabel keyLabel = null;
+ JTextField keyLabel = new JTextField(LABEL_FIELD_COLS);
+ keyLabel.setEditable(false);
+ keyLabel.setBackground(Color.WHITE);
if (descr == null)
- keyLabel = new JLabel(fullKey);
+ keyLabel.setText(fullKey);
else
- keyLabel = new JLabel(descr);
+ keyLabel.setText(descr);
editPanelConstraints.insets = insetsTopSpaceing;
editPanelConstraints.gridy = editPanelRow++;
editPanel.add(keyLabel, editPanelConstraints);
- final JTextField valField = new JTextField(15);
+ final JTextField valField = new JTextField(VALUE_FIELD_COLS);
Color color = prefsToEdit.getColor(key);
valField.setBackground(color);
valField.setEditable(false);
@@ -339,8 +359,10 @@ abstract class VSEditor implements ActionListener {
});
editPanelConstraints.insets = insets;
- editPanelConstraints.gridy = editPanelRow++;
+ editPanelConstraints.gridx = 1;
editPanel.add(valField, editPanelConstraints);
+ editPanelConstraints.gridx = 0;
+ editPanelConstraints.gridy = editPanelRow++;
colorFields.put(key, valField);
}
@@ -348,17 +370,19 @@ abstract class VSEditor implements ActionListener {
String fullKey = VSPrefs.STRING_PREFIX + key;
String descr = prefsToEdit.getDescription(fullKey);
- JLabel keyLabel = null;
+ JTextField keyLabel = new JTextField(LABEL_FIELD_COLS);
+ keyLabel.setEditable(false);
+ keyLabel.setBackground(Color.WHITE);
if (descr == null)
- keyLabel = new JLabel(fullKey);
+ keyLabel.setText(fullKey);
else
- keyLabel = new JLabel(descr);
+ keyLabel.setText(descr);
editPanelConstraints.insets = insetsTopSpaceing;
editPanelConstraints.gridy = editPanelRow++;
editPanel.add(keyLabel, editPanelConstraints);
- JTextField valField = new JTextField(15);
+ JTextField valField = new JTextField(VALUE_FIELD_COLS);
valField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
JTextField valField = (JTextField)e.getSource();
@@ -369,8 +393,10 @@ abstract class VSEditor implements ActionListener {
valField.setText(prefsToEdit.getString(key));
editPanelConstraints.insets = insets;
- editPanelConstraints.gridy = editPanelRow++;
+ editPanelConstraints.gridx = 1;
editPanel.add(createUnitPanel(valField, fullKey), editPanelConstraints);
+ editPanelConstraints.gridx = 0;
+ editPanelConstraints.gridy = editPanelRow++;
stringFields.put(key, valField);
}
diff --git a/sources/prefs/editors/VSEditorFrame.java b/sources/prefs/editors/VSEditorFrame.java
index 5cae7a0..edaf6b0 100644
--- a/sources/prefs/editors/VSEditorFrame.java
+++ b/sources/prefs/editors/VSEditorFrame.java
@@ -36,14 +36,6 @@ public abstract class VSEditorFrame extends VSEditor {
prefs.getInteger("window.prefs.ysize"));
frame.setResizable(false);
frame.setVisible(true);
-
- /*
- frame.addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent we) {
- Window window = we.getWindow();
- }
- });
- */
}
private Container createContentPane() {
diff --git a/sources/simulator/VSLogging.java b/sources/simulator/VSLogging.java
index 5b5eb26..9ab9cec 100644
--- a/sources/simulator/VSLogging.java
+++ b/sources/simulator/VSLogging.java
@@ -19,8 +19,8 @@ public class VSLogging {
public VSLogging() {
loggingArea = new JTextArea(0, 0);
loggingArea.setEditable(false);
- loggingArea.setLineWrap(true);
- loggingArea.setWrapStyleWord(true);
+ loggingArea.setLineWrap(true);
+ loggingArea.setWrapStyleWord(true);
loggingLines = new ArrayList<StringBuffer>();
pauseLines = new ArrayList<StringBuffer>();
filterText = "";
diff --git a/sources/simulator/VSSimulation.java b/sources/simulator/VSSimulation.java
index 1866813..cf1e677 100644
--- a/sources/simulator/VSSimulation.java
+++ b/sources/simulator/VSSimulation.java
@@ -13,6 +13,7 @@ import events.*;
import events.implementations.*;
import events.internal.*;
import prefs.*;
+import prefs.editors.*;
import protocols.*;
import utils.*;
@@ -44,6 +45,9 @@ public class VSSimulation extends JPanel {
private VSTaskManagerTableModel taskManagerGlobalModel;
private VSTaskManager taskManager;
private VSMenuItemStates menuItemStates;
+ private JTabbedPane tabbedPane;
+ private JPanel variablesPanel;
+ private JPanel globalVariablesPanel;
public class VSMenuItemStates {
private volatile boolean pause;
@@ -141,7 +145,6 @@ public class VSSimulation extends JPanel {
canvasPanel.setMinimumSize(new Dimension(0, 0));
canvasPanel.setMaximumSize(new Dimension(0, 0));
- //JScrollPane paintScrollPane = new JScrollPane(simulationCanvas);
JScrollPane textScrollPane = new JScrollPane(loggingArea);
JPanel toolsPanel = createToolsPanel();
@@ -261,7 +264,7 @@ public class VSSimulation extends JPanel {
return toolsPanel;
}
- private JSplitPane createProcessPane() {
+ private JPanel createProcessPane() {
JPanel editPanel = new JPanel(new GridBagLayout());
editPanel.setLayout(new BoxLayout(editPanel, BoxLayout.Y_AXIS));
@@ -284,6 +287,15 @@ public class VSSimulation extends JPanel {
localPIDComboBox.addItem(prefs.getString("lang.all"));
globalPIDComboBox.addItem(prefs.getString("lang.all"));
+ tabbedPane = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.SCROLL_TAB_LAYOUT);
+ tabbedPane.addChangeListener(new ChangeListener() {
+ public void stateChanged(ChangeEvent ce) {
+ JTabbedPane pane = (JTabbedPane) ce.getSource();
+ //currentSimulation = (VSSimulation) pane.getSelectedComponent();
+ }
+ });
+ //editPanel.add(tabbedPane, BorderLayout.CENTER);
+
JPanel localPanel = createTaskLabel(VSTaskManagerTableModel.LOCAL);
JPanel globalPanel = createTaskLabel(VSTaskManagerTableModel.GLOBAL);
@@ -293,11 +305,14 @@ public class VSSimulation extends JPanel {
splitPane1.setBottomComponent(globalPanel);
splitPane1.setDividerLocation((int) (getPaintSize()/2) - 20);
splitPane1.setOneTouchExpandable(true);
+ tabbedPane.addTab(prefs.getString("lang.events"), splitPane1);
- JSplitPane splitPane2 = new JSplitPane();
- splitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);
- splitPane2.setTopComponent(processesComboBox);
- splitPane2.setBottomComponent(splitPane1);
+ //JSplitPane splitPane2 = new JSplitPane();
+ //splitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);
+ //splitPane2.setTopComponent(processesComboBox);
+ //splitPane2.setBottomComponent(tabbedPane);
+ editPanel.add(processesComboBox);
+ editPanel.add(tabbedPane);
processesComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
@@ -314,10 +329,32 @@ public class VSSimulation extends JPanel {
localPIDComboBox.setSelectedIndex(processNum);
globalPIDComboBox.setSelectedIndex(processNum);
+
+ if (processNum == simulationCanvas.getNumProcesses()) {
+ tabbedPane.setEnabledAt(1, false);
+ if (tabbedPane.getSelectedIndex() == 1)
+ tabbedPane.setSelectedIndex(0);
+
+ } else if (!tabbedPane.isEnabledAt(1)) {
+ tabbedPane.setEnabledAt(1, true);
+ }
+
+ if (processNum != simulationCanvas.getNumProcesses()) {
+ variablesPanel.removeAll();
+ VSProcess process = getSelectedProcess();
+ //VSEditor editor = new VSProcessEditor(prefs, process, VSEditor.ALL_PREFERENCES);
+ //variablesPanel.add(editor);
+ }
}
});
- return splitPane2;
+ variablesPanel = new JPanel();
+ globalVariablesPanel = new JPanel();
+ tabbedPane.add(prefs.getString("lang.variables"), variablesPanel);
+ tabbedPane.add(prefs.getString("lang.variables.global"), globalVariablesPanel);
+ //tabbedPane.add(prefs.getString("lang.variables.global"), new JTextArea(0, 0));
+
+ return editPanel;
}
private JPanel createLabelPanel(String text) {