diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-18 01:22:57 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-18 01:22:57 +0000 |
| commit | efe41ac4240c4e12a0cada829575b43378d22823 (patch) | |
| tree | 7c274650daecd75847f7aca78b3d5efa8b10474b | |
| parent | 15450c42d04e15322a6328037011e3726427e9a4 (diff) | |
Layout for the Process Quick Panel done.
| -rw-r--r-- | sources/prefs/VSDefaultPrefs.java | 6 | ||||
| -rw-r--r-- | sources/simulator/VSSimulation.java | 102 | ||||
| -rw-r--r-- | sources/utils/VSFrame.java | 2 |
3 files changed, 81 insertions, 29 deletions
diff --git a/sources/prefs/VSDefaultPrefs.java b/sources/prefs/VSDefaultPrefs.java index a41c659..325efef 100644 --- a/sources/prefs/VSDefaultPrefs.java +++ b/sources/prefs/VSDefaultPrefs.java @@ -45,6 +45,8 @@ public class VSDefaultPrefs extends VSPrefs { initString("lang.activated", "Aktiviert"); initString("lang.actualize", "Aktualisieren"); initString("lang.cancel", "Abbrechen"); + initString("lang.global", "Global"); + initString("lang.local", "Lokal"); initString("lang.client", "Client"); initString("lang.close", "Schliessen"); initString("lang.colorchooser", "Farbauswahl"); @@ -105,9 +107,11 @@ public class VSDefaultPrefs extends VSPrefs { initString("lang.start", "Starten"); initString("lang.stop", "Stoppen"); initString("lang.takeover", "Übernehmen"); + initString("lang.task", "Task"); initString("lang.taskmanager", "Taskmanager"); initString("lang.time.lamport", "Lamportzeit"); initString("lang.time.vector", "Vektorzeit"); + initString("lang.time", "Zeit"); initString("lang.type", "Typ"); initString("name", "Verteilte Systeme v0.2-devel"); } @@ -146,7 +150,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", 180, null, 100, 1000, "px"); + initIntegerUnit("window.splitsize", 225, 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"); } diff --git a/sources/simulator/VSSimulation.java b/sources/simulator/VSSimulation.java index ab12773..56cfb25 100644 --- a/sources/simulator/VSSimulation.java +++ b/sources/simulator/VSSimulation.java @@ -5,6 +5,7 @@ import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; +import javax.swing.border.*; import prefs.*; import core.*; @@ -19,7 +20,7 @@ public class VSSimulation extends VSFrame implements ActionListener { private JMenuItem replayItem; private JMenuItem resetItem; private JMenuItem startItem; - private JPanel processEditPanel; + private JPanel processPanel; private JSplitPane splitPaneH; private JSplitPane splitPaneV; private Thread thread; @@ -153,12 +154,10 @@ public class VSSimulation extends VSFrame implements ActionListener { private Container createContentPane() { JTextArea loggingArea = logging.getLoggingArea(); - /* splitPaneH = new JSplitPane(); splitPaneH.setDividerLocation( prefs.getInteger("window.splitsize")); - */ splitPaneV = new JSplitPane(); splitPaneV.setDividerLocation( prefs.getInteger("window.ysize") @@ -167,7 +166,7 @@ public class VSSimulation extends VSFrame implements ActionListener { simulationPanel = new VSSimulationPanel(prefs, this, logging); logging.setSimulationPanel(simulationPanel); simulationPanel.setBackground(prefs.getColor("paintarea.background"));//new Color(0xFD, 0xFC, 0xF7)); - //processEditPanel = createProcessEditPanel(); + processPanel = createProcessPanel(); JScrollPane paintScrollPane = new JScrollPane(simulationPanel); JScrollPane textScrollPane = new JScrollPane(loggingArea); @@ -178,19 +177,15 @@ public class VSSimulation extends VSFrame implements ActionListener { loggingPane.add(toolsPanel, BorderLayout.SOUTH); loggingPane.setPreferredSize(new Dimension(200, 1)); - //JScrollPane processEditScrollPane = new JScrollPane(processEditPanel); - - /* splitPaneH.setOrientation(JSplitPane.HORIZONTAL_SPLIT); - splitPaneH.setLeftComponent(processEditScrollPane); + splitPaneH.setLeftComponent(processPanel); splitPaneH.setRightComponent(paintScrollPane); splitPaneH.setContinuousLayout(true); splitPaneH.setOneTouchExpandable(true); - */ splitPaneV.setOrientation(JSplitPane.VERTICAL_SPLIT); - //splitPaneV.setTopComponent(splitPaneH); - splitPaneV.setTopComponent(paintScrollPane); + splitPaneV.setTopComponent(splitPaneH); + //splitPaneV.setTopComponent(paintScrollPane); splitPaneV.setBottomComponent(loggingPane); splitPaneV.setOneTouchExpandable(true); splitPaneV.setContinuousLayout(true); @@ -287,33 +282,86 @@ public class VSSimulation extends VSFrame implements ActionListener { return toolsPanel; } - /* - private JPanel createProcessEditPanel() { + private JPanel createProcessPanel() { JPanel editPanel = new JPanel(new GridBagLayout()); editPanel.setBackground(Color.WHITE); + editPanel.setLayout(new BoxLayout(editPanel, BoxLayout.Y_AXIS)); - GridBagConstraints constraints = new GridBagConstraints(); - constraints.fill = GridBagConstraints.HORIZONTAL; + JComboBox comboBox = new JComboBox(); + int numProcesses = simulationPanel.getNumProcesses(); + String processString = prefs.getString("lang.process"); + for (int i = 1; i <= numProcesses; ++i) + comboBox.addItem(processString + " " + i); - Insets insets = new Insets(5, 5, 5, 5); - constraints.insets = insets; - constraints.ipady = 5; - constraints.ipadx = 5; - int row = 0; + JPanel localPanel = createTaskLabel(true); + JPanel globalPanel = createTaskLabel(false); - Vector<VSProcess> processes = simulationPanel.getProcesses(); + JSplitPane splitPane1 = new JSplitPane(); + splitPane1.setOrientation(JSplitPane.VERTICAL_SPLIT); + splitPane1.setTopComponent(localPanel); + splitPane1.setBottomComponent(globalPanel); + splitPane1.setDividerLocation((int) (getPaintSize()/2) - 20); - for (VSProcess p : processes) { - constraints.gridy = row++; - //editPanel.add(new VSProcessEditor(prefs, p), constraints); - } + JSplitPane splitPane2 = new JSplitPane(); + splitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT); + splitPane2.setTopComponent(comboBox); + splitPane2.setBottomComponent(splitPane1); + editPanel.add(splitPane2); return editPanel; } - */ + + private JPanel createLabelPanel(String text) { + JPanel panel = new JPanel(); + panel.setBorder(new CompoundBorder( + new LineBorder(Color.BLACK), + new EmptyBorder(0, 0, 0, 0))); + + JLabel label = new JLabel(text); + panel.add(label); + + return panel; + } + + private JPanel createTaskLabel(boolean localTasks) { + JPanel panel = new JPanel(new GridBagLayout()); + panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); + + if (localTasks) + panel.add(createLabelPanel(prefs.getString("lang.local"))); + else + panel.add(createLabelPanel(prefs.getString("lang.global"))); + + JScrollPane scrollPane = new JScrollPane(createTaskTable(localTasks)); + panel.add(scrollPane); + /* + JTextArea emptyArea = new JTextArea(0, 0); + emptyArea.setEditable(false); + panel.add(emptyArea); + */ + + return panel; + } + + private JTable createTaskTable(boolean localTasks) { + String[] columnNames = { prefs.getString("lang.time"), prefs.getString("lang.task") }; + Object[][] data = { + {"foo", "bar" }, + {"foo", "bar" }, + {"foo", "bar" }, + {"foo", "bar" }, + {"foo", "bar" }, + { "baz", "bay" } + }; + + JTable table = new JTable(data, columnNames); + table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); + + return table; + } public int getSplitSize() { - return 0;//splitPaneH.getDividerLocation(); + return splitPaneH.getDividerLocation(); } public int getPaintSize() { diff --git a/sources/utils/VSFrame.java b/sources/utils/VSFrame.java index 9bd70a9..e5ff6a0 100644 --- a/sources/utils/VSFrame.java +++ b/sources/utils/VSFrame.java @@ -45,7 +45,7 @@ public class VSFrame extends JFrame { if (parent == null) { final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); x = (int) (screenSize.width - getWidth()) / 2; - y = (int) (screenSize.height - getHeight()) / 2; + y = 50;//(int) (screenSize.height - getHeight()) / 2; } else { final Point location = parent.getLocation(); |
