diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-21 01:03:21 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-21 01:03:21 +0000 |
| commit | f8bad55bd29234ab7982fea21a228654908f0867 (patch) | |
| tree | 531e3d4fb7d1c9beabaacc2c17ed921bf76bf4e1 | |
| parent | ef5e2356312e8354e1fe0addef6e24636f95ad78 (diff) | |
Removed a JSplitPane which was useless.
Initial new JTabbedPane for Variables etc.
| -rw-r--r-- | ROADMAP | 1 | ||||
| -rw-r--r-- | sources/prefs/VSDefaultPrefs.java | 17 | ||||
| -rw-r--r-- | sources/prefs/editors/VSEditor.java | 104 | ||||
| -rw-r--r-- | sources/prefs/editors/VSEditorFrame.java | 8 | ||||
| -rw-r--r-- | sources/simulator/VSLogging.java | 4 | ||||
| -rw-r--r-- | sources/simulator/VSSimulation.java | 51 |
6 files changed, 122 insertions, 63 deletions
@@ -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) { |
