From 9e87974ab16ba14b6e277a36cca84fd454c4b883 Mon Sep 17 00:00:00 2001 From: Mark Kattenbelt Date: Tue, 14 Nov 2006 16:47:43 +0000 Subject: [PATCH] A general clean up of GUISimulator.java. This includes: more sensible layouts, more meaningfull names, fewer components. More consistent bordering. And some minor features such as disabling the time field when the auto checkbox is ticked, and setting the textfields of the remove preceding and backtrack to buttons. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@148 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- .../userinterface/simulator/GUISimulator.form | 758 +++++---------- .../userinterface/simulator/GUISimulator.java | 913 +++++++----------- 2 files changed, 585 insertions(+), 1086 deletions(-) diff --git a/prism/src/userinterface/simulator/GUISimulator.form b/prism/src/userinterface/simulator/GUISimulator.form index ba819b51..720aa432 100644 --- a/prism/src/userinterface/simulator/GUISimulator.form +++ b/prism/src/userinterface/simulator/GUISimulator.form @@ -15,7 +15,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -44,7 +44,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -111,7 +111,10 @@ - + + + + @@ -156,6 +159,7 @@ + @@ -212,6 +216,9 @@ + + + @@ -240,7 +247,7 @@ - + @@ -273,21 +280,6 @@ - - - - - - - - - - - - - - - @@ -313,6 +305,9 @@ + + + @@ -402,7 +397,7 @@ - + @@ -447,6 +442,9 @@ + + + @@ -509,6 +507,9 @@ + + + @@ -744,7 +745,7 @@ - + @@ -760,584 +761,333 @@ - + + + + + + + + - + + + - - - - - - - - -
-
-
- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + + + - - - - + - + + + + + + + + + + + + + - + + + + + + - - - - - - - - - - + - + - - - - - - + - - - + - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + - - + + + + + - - - - - - - - - + + + + + + + - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - + - - - + - - - - - - - - - - - - - - - - - - + + + + + - + - + - - - - - - + - + + + + + + - - - - - - + - - + + + + + - - - - - - - - - + + - + + + + + + + + + + + - + - - - - - - + + + + + - + + + + + + - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - + + + - + + - - - - - - + - + + + + + + + + + + + + - + + - - - - - - + - + + + + + + + + + - - - - - + + + + + + + - + + + + + + + + - - - - - - - - + + + + + + + + - - - + + + - + + + + + + +
+
- + - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/prism/src/userinterface/simulator/GUISimulator.java b/prism/src/userinterface/simulator/GUISimulator.java index 199d83ff..07b46c4c 100644 --- a/prism/src/userinterface/simulator/GUISimulator.java +++ b/prism/src/userinterface/simulator/GUISimulator.java @@ -81,6 +81,16 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect initComponents(); initPopups(); + newPathButton.setIcon(new ImageIcon(this.getClass().getResource("/images/smallNewPath.gif"))); + resetPathButton.setIcon(new ImageIcon(this.getClass().getResource("/images/smallResetPath.gif"))); + exportPathButton.setIcon(new ImageIcon(this.getClass().getResource("/images/smallExport.gif"))); + + autoUpdateButton.setIcon(new ImageIcon(this.getClass().getResource("/images/smallAutomaticUpdate.gif"))); + manualUpdateField.setIcon(new ImageIcon(this.getClass().getResource("/images/smallManualUpdate.gif"))); + + backtrackButton.setIcon(new ImageIcon(this.getClass().getResource("/images/smallBacktrack.gif"))); + removePrecedingButton.setIcon(new ImageIcon(this.getClass().getResource("/images/smallRemovePreceding.gif"))); + pathTable.getSelectionModel().addListSelectionListener(this); pathTable.addMouseListener(this); @@ -124,10 +134,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect lastInitialState = null; - jScrollPane1.setRowHeaderView(((GUISimulatorPathTable)pathTable).getPathRowHeader()); - jScrollPane2.setRowHeaderView(((GUISimulatorUpdatesTable)currentUpdatesTable).getUpdateRowHeader()); + tableScroll.setRowHeaderView(((GUISimulatorPathTable)pathTable).getPathRowHeader()); + updatesScroll.setRowHeaderView(((GUISimulatorUpdatesTable)currentUpdatesTable).getUpdateRowHeader()); - jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + tableScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); stateLabelList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -142,7 +152,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect modelTypeLabel.setText("Unknown"); totalTimeLabel.setText("0.0"); - pathLengthParameterLabel.setText("0"); + pathLengthLabel.setText("0"); totalRewardLabel.setText(""); txtFilter = new GUIPrismFileFilter[1]; @@ -374,10 +384,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect pathActive = true; totalTimeLabel.setText(""+engine.getTotalPathTime()); - pathLengthParameterLabel.setText(""+(engine.getPathSize()-1)); + pathLengthLabel.setText(""+(engine.getPathSize()-1)); totalRewardLabel.setText(getTotalRewardLabelString()); - stateTotalRewardsLabel.setText(getTotalStateRewardLabelString()); - transitionTotalRewardsLabel.setText(getTotalTransitionRewardLabelString()); + stateRewardsLabel.setText(getTotalStateRewardLabelString()); + transitionRewardsLabel.setText(getTotalTransitionRewardLabelString()); definedConstantsLabel.setText(uCon.getDefinedConstantsString()); doEnables(); @@ -437,10 +447,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect pathTable.scrollRectToVisible(new Rectangle(0, (int)pathTable.getPreferredSize().getHeight() - 10, (int)pathTable.getPreferredSize().getWidth(), (int)pathTable.getPreferredSize().getHeight()) ); totalTimeLabel.setText(""+engine.getTotalPathTime()); - pathLengthParameterLabel.setText(""+(engine.getPathSize()-1)); + pathLengthLabel.setText(""+(engine.getPathSize()-1)); totalRewardLabel.setText(getTotalRewardLabelString()); - stateTotalRewardsLabel.setText(getTotalStateRewardLabelString()); - transitionTotalRewardsLabel.setText(getTotalTransitionRewardLabelString()); + stateRewardsLabel.setText(getTotalStateRewardLabelString()); + transitionRewardsLabel.setText(getTotalTransitionRewardLabelString()); stateLabelList.repaint(); pathFormulaeList.repaint(); @@ -486,10 +496,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect updateTableModel.updateUpdatesTable(); totalTimeLabel.setText(""+engine.getTotalPathTime()); - pathLengthParameterLabel.setText(""+(engine.getPathSize()-1)); + pathLengthLabel.setText(""+(engine.getPathSize()-1)); totalRewardLabel.setText(getTotalRewardLabelString()); - stateTotalRewardsLabel.setText(getTotalStateRewardLabelString()); - transitionTotalRewardsLabel.setText(getTotalTransitionRewardLabelString()); + stateRewardsLabel.setText(getTotalStateRewardLabelString()); + transitionRewardsLabel.setText(getTotalTransitionRewardLabelString()); stateLabelList.repaint(); pathFormulaeList.repaint(); setComputing(false); @@ -507,10 +517,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect updateTableModel.updateUpdatesTable(); totalTimeLabel.setText(""+engine.getTotalPathTime()); - pathLengthParameterLabel.setText(""+(engine.getPathSize()-1)); + pathLengthLabel.setText(""+(engine.getPathSize()-1)); totalRewardLabel.setText(getTotalRewardLabelString()); - stateTotalRewardsLabel.setText(getTotalStateRewardLabelString()); - transitionTotalRewardsLabel.setText(getTotalTransitionRewardLabelString()); + stateRewardsLabel.setText(getTotalStateRewardLabelString()); + transitionRewardsLabel.setText(getTotalTransitionRewardLabelString()); stateLabelList.repaint(); pathFormulaeList.repaint(); setComputing(false); @@ -568,10 +578,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect updateTableModel.updateUpdatesTable(); totalTimeLabel.setText(""+engine.getTotalPathTime()); - pathLengthParameterLabel.setText(""+(engine.getPathSize()-1)); + pathLengthLabel.setText(""+(engine.getPathSize()-1)); totalRewardLabel.setText(getTotalRewardLabelString()); - stateTotalRewardsLabel.setText(getTotalStateRewardLabelString()); - transitionTotalRewardsLabel.setText(getTotalTransitionRewardLabelString()); + stateRewardsLabel.setText(getTotalStateRewardLabelString()); + transitionRewardsLabel.setText(getTotalTransitionRewardLabelString()); stateLabelList.repaint(); pathFormulaeList.repaint(); setComputing(false); @@ -613,10 +623,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect pathTable.scrollRectToVisible(new Rectangle(0, pathTable.getHeight() - 10, pathTable.getWidth(), pathTable.getHeight()) ); totalTimeLabel.setText(""+engine.getTotalPathTime()); - pathLengthParameterLabel.setText(""+(engine.getPathSize()-1)); + pathLengthLabel.setText(""+(engine.getPathSize()-1)); totalRewardLabel.setText(getTotalRewardLabelString()); - stateTotalRewardsLabel.setText(getTotalStateRewardLabelString()); - transitionTotalRewardsLabel.setText(getTotalTransitionRewardLabelString()); + stateRewardsLabel.setText(getTotalStateRewardLabelString()); + transitionRewardsLabel.setText(getTotalTransitionRewardLabelString()); setComputing(false); @@ -633,10 +643,10 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect updateTableModel.updateUpdatesTable(); totalTimeLabel.setText(""+engine.getTotalPathTime()); - pathLengthParameterLabel.setText(""+(engine.getPathSize()-1)); + pathLengthLabel.setText(""+(engine.getPathSize()-1)); totalRewardLabel.setText(getTotalRewardLabelString()); - stateTotalRewardsLabel.setText(getTotalStateRewardLabelString()); - transitionTotalRewardsLabel.setText(getTotalTransitionRewardLabelString()); + stateRewardsLabel.setText(getTotalStateRewardLabelString()); + transitionRewardsLabel.setText(getTotalTransitionRewardLabelString()); pathTable.scrollRectToVisible(new Rectangle(0, (int)pathTable.getPreferredSize().getHeight() - 10, (int)pathTable.getPreferredSize().getWidth(), (int)pathTable.getPreferredSize().getHeight()) ); @@ -873,13 +883,12 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect removePrecedingButton.setEnabled(pathActive && !computing); removePrecedingField.setEnabled(pathActive); manualUpdateField.setEnabled(pathActive && !computing && !updateTableModel.oldUpdate); - stateTimeField.setEnabled(pathActive && mf != null && mf.getType() == ModulesFile.STOCHASTIC); + stateTimeField.setEnabled(pathActive && mf != null && mf.getType() == ModulesFile.STOCHASTIC && !autoTimeCheck.isSelected()); autoTimeCheck.setEnabled(pathActive && mf != null && mf.getType() == ModulesFile.STOCHASTIC); jLabel2.setEnabled(pathActive); jLabel1.setEnabled(pathActive); jLabel3.setEnabled(pathActive); jLabel4.setEnabled(pathActive); - jLabel5.setEnabled(pathActive); resetPathButton.setEnabled(pathActive && !computing); exportPathButton.setEnabled(pathActive && !computing); @@ -888,25 +897,25 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect currentUpdatesTable.setEnabled(pathActive); - jLabel6.setEnabled(mf != null); + modelType.setEnabled(mf != null); modelTypeLabel.setEnabled(mf != null); + totalTime.setEnabled(pathActive && mf != null && mf.getType() == ModulesFile.STOCHASTIC); totalTimeLabel.setEnabled(pathActive && mf != null && mf.getType() == ModulesFile.STOCHASTIC); - pathTimeLabel.setEnabled(pathActive && mf != null && mf.getType() == ModulesFile.STOCHASTIC); + pathLength.setEnabled(pathActive); pathLengthLabel.setEnabled(pathActive); - pathLengthParameterLabel.setEnabled(pathActive); - - jLabel9.setEnabled(pathActive); + + totalRewards.setEnabled(pathActive); totalRewardLabel.setEnabled(pathActive); - jLabel13.setEnabled(pathActive); - stateTotalRewardsLabel.setEnabled(pathActive); + stateRewards.setEnabled(pathActive); + stateRewardsLabel.setEnabled(pathActive); - spareLabel.setEnabled(pathActive); - transitionTotalRewardsLabel.setEnabled(pathActive); + transitionRewards.setEnabled(pathActive); + transitionRewardsLabel.setEnabled(pathActive); - jLabel10.setEnabled(pathActive); + definedConstants.setEnabled(pathActive); definedConstantsLabel.setEnabled(pathActive); } @@ -916,17 +925,17 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ - private void initComponents()//GEN-BEGIN:initComponents - { + // //GEN-BEGIN:initComponents + private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; buttonGroup1 = new javax.swing.ButtonGroup(); - jSplitPane1 = new javax.swing.JSplitPane(); - jPanel1 = new javax.swing.JPanel(); - jSplitPane2 = new javax.swing.JSplitPane(); - jPanel3 = new javax.swing.JPanel(); - jPanel11 = new javax.swing.JPanel(); - jPanel6 = new javax.swing.JPanel(); + horizontalSplit = new javax.swing.JSplitPane(); + leftPanel = new javax.swing.JPanel(); + verticalSplit = new javax.swing.JSplitPane(); + topSplit = new javax.swing.JPanel(); + topLeftPanel = new javax.swing.JPanel(); + pathExplorationPanel = new javax.swing.JPanel(); jPanel7 = new javax.swing.JPanel(); manualUpdateField = new javax.swing.JButton(); jPanel8 = new javax.swing.JPanel(); @@ -937,13 +946,9 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect autoTimeCheck = new javax.swing.JCheckBox(); jPanel13 = new javax.swing.JPanel(); jPanel15 = new javax.swing.JPanel(); - jScrollPane2 = new javax.swing.JScrollPane(); + updatesScroll = new javax.swing.JScrollPane(); currentUpdatesTable = new javax.swing.JTable(); currentUpdatesTable = new GUISimulatorUpdatesTable(updateTableModel, this); - jLabel5 = new javax.swing.JLabel(); - Font f = jLabel5.getFont(); - - jLabel5.setFont(new Font(f.getName(), Font.BOLD, f.getSize())); jPanel5 = new javax.swing.JPanel(); jPanel23 = new javax.swing.JPanel(); autoUpdateButton = new javax.swing.JButton(); @@ -952,7 +957,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect jPanel19 = new javax.swing.JPanel(); autoUpdateField = new javax.swing.JTextField(); jPanel52 = new javax.swing.JPanel(); - jPanel12 = new javax.swing.JPanel(); + pathModificationPanel = new javax.swing.JPanel(); jPanel14 = new javax.swing.JPanel(); jPanel16 = new javax.swing.JPanel(); jPanel18 = new javax.swing.JPanel(); @@ -980,93 +985,69 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect stateLabelList = new javax.swing.JList(); stateLabelList = new GUISimLabelFormulaeList(this); jLabel7 = new javax.swing.JLabel(); - jPanel2 = new javax.swing.JPanel(); - jScrollPane1 = new javax.swing.JScrollPane(); - pathTable = new javax.swing.JTable(); - pathTable = new GUISimulatorPathTable(pathTableModel, engine); - jPanel24 = new javax.swing.JPanel(); - newPathButton = new javax.swing.JButton(); - resetPathButton = new javax.swing.JButton(); - exportPathButton = new javax.swing.JButton(); - jPanel29 = new javax.swing.JPanel(); - jPanel31 = new javax.swing.JPanel(); - jPanel32 = new javax.swing.JPanel(); - jPanel33 = new javax.swing.JPanel(); - jPanel34 = new javax.swing.JPanel(); - jPanel35 = new javax.swing.JPanel(); - jPanel36 = new javax.swing.JPanel(); - jPanel54 = new javax.swing.JPanel(); - jPanel30 = new javax.swing.JPanel(); - jPanel39 = new javax.swing.JPanel(); - jLabel6 = new javax.swing.JLabel(); - jPanel40 = new javax.swing.JPanel(); + rightPanel = new javax.swing.JPanel(); + innerRightPanel = new javax.swing.JPanel(); + topRightPanel = new javax.swing.JPanel(); + informationPanel = new javax.swing.JPanel(); + innerInformationPanel = new javax.swing.JPanel(); + modelType = new javax.swing.JLabel(); + pathLength = new javax.swing.JLabel(); + totalTime = new javax.swing.JLabel(); modelTypeLabel = new javax.swing.JLabel(); - jPanel41 = new javax.swing.JPanel(); - jPanel42 = new javax.swing.JPanel(); - stateTotalRewardsLabel = new javax.swing.JLabel(); - jLabel13 = new javax.swing.JLabel(); - jPanel38 = new javax.swing.JPanel(); - jPanel43 = new javax.swing.JPanel(); - jPanel44 = new javax.swing.JPanel(); - jPanel45 = new javax.swing.JPanel(); pathLengthLabel = new javax.swing.JLabel(); - pathLengthParameterLabel = new javax.swing.JLabel(); - jPanel46 = new javax.swing.JPanel(); - spareLabel = new javax.swing.JLabel(); - transitionTotalRewardsLabel = new javax.swing.JLabel(); - jPanel47 = new javax.swing.JPanel(); - jPanel48 = new javax.swing.JPanel(); - jPanel49 = new javax.swing.JPanel(); - jPanel50 = new javax.swing.JPanel(); - jPanel51 = new javax.swing.JPanel(); totalTimeLabel = new javax.swing.JLabel(); - pathTimeLabel = new javax.swing.JLabel(); - jLabel9 = new javax.swing.JLabel(); + stateRewards = new javax.swing.JLabel(); + transitionRewards = new javax.swing.JLabel(); + totalRewards = new javax.swing.JLabel(); + stateRewardsLabel = new javax.swing.JLabel(); + transitionRewardsLabel = new javax.swing.JLabel(); totalRewardLabel = new javax.swing.JLabel(); - jPanel55 = new javax.swing.JPanel(); - jPanel56 = new javax.swing.JPanel(); - jLabel10 = new javax.swing.JLabel(); - jPanel57 = new javax.swing.JPanel(); + definedConstants = new javax.swing.JLabel(); + dummy1 = new javax.swing.JLabel(); + dummy2 = new javax.swing.JLabel(); definedConstantsLabel = new javax.swing.JLabel(); - jPanel58 = new javax.swing.JPanel(); - jPanel37 = new javax.swing.JPanel(); - jPanel59 = new javax.swing.JPanel(); - jPanel60 = new javax.swing.JPanel(); + buttonPanel = new javax.swing.JPanel(); + innerButtonPanel = new javax.swing.JPanel(); + newPathButton = new javax.swing.JButton(); + resetPathButton = new javax.swing.JButton(); + exportPathButton = new javax.swing.JButton(); + tablePanel = new javax.swing.JPanel(); + tableScroll = new javax.swing.JScrollPane(); + pathTable = new javax.swing.JTable(); + pathTable = new GUISimulatorPathTable(pathTableModel, engine); setLayout(new java.awt.BorderLayout()); - jSplitPane1.setDividerLocation(302); - jPanel1.setLayout(new java.awt.BorderLayout()); + horizontalSplit.setDividerLocation(302); + leftPanel.setLayout(new java.awt.BorderLayout()); - jPanel1.setMinimumSize(new java.awt.Dimension(300, 210)); - jPanel1.setPreferredSize(new java.awt.Dimension(302, 591)); - jSplitPane2.setDividerLocation(400); - jSplitPane2.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); - jSplitPane2.setResizeWeight(0.5); - jPanel3.setLayout(new java.awt.BorderLayout()); + leftPanel.setMinimumSize(new java.awt.Dimension(300, 210)); + leftPanel.setPreferredSize(new java.awt.Dimension(302, 591)); + verticalSplit.setDividerLocation(400); + verticalSplit.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); + verticalSplit.setResizeWeight(0.5); + topSplit.setLayout(new java.awt.BorderLayout()); - jPanel3.setMinimumSize(new java.awt.Dimension(302, 227)); - jPanel3.setPreferredSize(new java.awt.Dimension(302, 554)); - jPanel11.setLayout(new java.awt.BorderLayout()); + topSplit.setMinimumSize(new java.awt.Dimension(302, 227)); + topSplit.setPreferredSize(new java.awt.Dimension(302, 554)); + topLeftPanel.setLayout(new java.awt.BorderLayout()); - jPanel6.setLayout(new java.awt.GridBagLayout()); + pathExplorationPanel.setLayout(new java.awt.GridBagLayout()); - jPanel6.setBorder(new javax.swing.border.TitledBorder("Exploration")); + pathExplorationPanel.setBorder(new javax.swing.border.TitledBorder("Exploration")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - jPanel6.add(jPanel7, gridBagConstraints); + pathExplorationPanel.add(jPanel7, gridBagConstraints); - manualUpdateField.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smallManualUpdate.gif"))); - manualUpdateField.setText("Do Update"); + manualUpdateField.setIcon(new javax.swing.ImageIcon("")); + manualUpdateField.setText("Manual Update"); manualUpdateField.setToolTipText("Perform the selected update"); manualUpdateField.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); manualUpdateField.setMaximumSize(new java.awt.Dimension(112, 25)); manualUpdateField.setPreferredSize(new java.awt.Dimension(112, 25)); - manualUpdateField.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { + manualUpdateField.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { manualUpdateFieldActionPerformed(evt); } }); @@ -1076,27 +1057,28 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - jPanel6.add(manualUpdateField, gridBagConstraints); + pathExplorationPanel.add(manualUpdateField, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; - jPanel6.add(jPanel8, gridBagConstraints); + pathExplorationPanel.add(jPanel8, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 0; - jPanel6.add(jPanel9, gridBagConstraints); + pathExplorationPanel.add(jPanel9, gridBagConstraints); stateTimeField.setText("1.0"); stateTimeField.setToolTipText("Enter the time spent in the current state"); + stateTimeField.setEnabled(false); stateTimeField.setPreferredSize(new java.awt.Dimension(60, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 7; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel6.add(stateTimeField, gridBagConstraints); + pathExplorationPanel.add(stateTimeField, gridBagConstraints); jLabel1.setText("State time:"); jLabel1.setMinimumSize(new java.awt.Dimension(57, 15)); @@ -1105,37 +1087,54 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel6.add(jLabel1, gridBagConstraints); + pathExplorationPanel.add(jLabel1, gridBagConstraints); jPanel10.setMinimumSize(new java.awt.Dimension(10, 5)); jPanel10.setPreferredSize(new java.awt.Dimension(10, 5)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - jPanel6.add(jPanel10, gridBagConstraints); + pathExplorationPanel.add(jPanel10, gridBagConstraints); autoTimeCheck.setText("Auto"); autoTimeCheck.setToolTipText("Automatically sample time from a negative exponential distribution"); + autoTimeCheck.addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + autoTimeCheckStateChanged(evt); + } + }); + gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 7; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel6.add(autoTimeCheck, gridBagConstraints); + pathExplorationPanel.add(autoTimeCheck, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; - jPanel6.add(jPanel13, gridBagConstraints); + pathExplorationPanel.add(jPanel13, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; - jPanel6.add(jPanel15, gridBagConstraints); - - jScrollPane2.setPreferredSize(new java.awt.Dimension(100, 100)); - jScrollPane2.setViewportView(currentUpdatesTable); + pathExplorationPanel.add(jPanel15, gridBagConstraints); + + updatesScroll.setPreferredSize(new java.awt.Dimension(100, 100)); + currentUpdatesTable.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null} + }, + new String [] { + "Title 1", "Title 2", "Title 3", "Title 4" + } + )); + updatesScroll.setViewportView(currentUpdatesTable); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; @@ -1144,34 +1143,24 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; - jPanel6.add(jScrollPane2, gridBagConstraints); - - jLabel5.setText("Current Updates:"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 5; - gridBagConstraints.gridwidth = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel6.add(jLabel5, gridBagConstraints); + pathExplorationPanel.add(updatesScroll, gridBagConstraints); jPanel5.setPreferredSize(new java.awt.Dimension(10, 5)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - jPanel6.add(jPanel5, gridBagConstraints); + pathExplorationPanel.add(jPanel5, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 16; - jPanel6.add(jPanel23, gridBagConstraints); + pathExplorationPanel.add(jPanel23, gridBagConstraints); - autoUpdateButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smallAutomaticUpdate.gif"))); + autoUpdateButton.setIcon(new javax.swing.ImageIcon("")); autoUpdateButton.setText("Auto Update"); autoUpdateButton.setToolTipText("Make a number of automatic updates"); autoUpdateButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); - autoUpdateButton.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { + autoUpdateButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { autoUpdateButtonActionPerformed(evt); } }); @@ -1181,13 +1170,13 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - jPanel6.add(autoUpdateButton, gridBagConstraints); + pathExplorationPanel.add(autoUpdateButton, gridBagConstraints); jPanel17.setPreferredSize(new java.awt.Dimension(10, 5)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - jPanel6.add(jPanel17, gridBagConstraints); + pathExplorationPanel.add(jPanel17, gridBagConstraints); jLabel2.setText("No. Steps:"); jLabel2.setPreferredSize(new java.awt.Dimension(57, 15)); @@ -1195,20 +1184,18 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel6.add(jLabel2, gridBagConstraints); + pathExplorationPanel.add(jLabel2, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - jPanel6.add(jPanel19, gridBagConstraints); + pathExplorationPanel.add(jPanel19, gridBagConstraints); autoUpdateField.setText("1"); autoUpdateField.setToolTipText("Enter the number of automatic steps"); autoUpdateField.setPreferredSize(new java.awt.Dimension(60, 19)); - autoUpdateField.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { + autoUpdateField.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { autoUpdateFieldActionPerformed(evt); } }); @@ -1217,42 +1204,40 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - jPanel6.add(autoUpdateField, gridBagConstraints); + pathExplorationPanel.add(autoUpdateField, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 9; gridBagConstraints.gridy = 0; - jPanel6.add(jPanel52, gridBagConstraints); + pathExplorationPanel.add(jPanel52, gridBagConstraints); - jPanel11.add(jPanel6, java.awt.BorderLayout.CENTER); + topLeftPanel.add(pathExplorationPanel, java.awt.BorderLayout.CENTER); - jPanel12.setLayout(new java.awt.GridBagLayout()); + pathModificationPanel.setLayout(new java.awt.GridBagLayout()); - jPanel12.setBorder(new javax.swing.border.TitledBorder("Path Modification")); + pathModificationPanel.setBorder(new javax.swing.border.TitledBorder("Path Modification")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; - jPanel12.add(jPanel14, gridBagConstraints); + pathModificationPanel.add(jPanel14, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 10; gridBagConstraints.gridy = 0; gridBagConstraints.weightx = 1.0; - jPanel12.add(jPanel16, gridBagConstraints); + pathModificationPanel.add(jPanel16, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; - jPanel12.add(jPanel18, gridBagConstraints); + pathModificationPanel.add(jPanel18, gridBagConstraints); - backtrackButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smallBacktrack.gif"))); + backtrackButton.setIcon(new javax.swing.ImageIcon("")); backtrackButton.setText("Backtrack"); backtrackButton.setToolTipText("Backtrack to the given step."); backtrackButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); - backtrackButton.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { + backtrackButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { backtrackButtonActionPerformed(evt); } }); @@ -1262,7 +1247,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - jPanel12.add(backtrackButton, gridBagConstraints); + pathModificationPanel.add(backtrackButton, gridBagConstraints); jLabel3.setText("To Step:"); jLabel3.setPreferredSize(new java.awt.Dimension(57, 15)); @@ -1270,29 +1255,27 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel12.add(jLabel3, gridBagConstraints); + pathModificationPanel.add(jLabel3, gridBagConstraints); jPanel20.setNextFocusableComponent(jPanel9); jPanel20.setPreferredSize(new java.awt.Dimension(10, 5)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - jPanel12.add(jPanel20, gridBagConstraints); + pathModificationPanel.add(jPanel20, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel12.add(jPanel21, gridBagConstraints); + pathModificationPanel.add(jPanel21, gridBagConstraints); - removePrecedingButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smallRemovePreceding.gif"))); + removePrecedingButton.setIcon(new javax.swing.ImageIcon("")); removePrecedingButton.setText("Remove"); removePrecedingButton.setToolTipText("Remove all before the given step"); removePrecedingButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); - removePrecedingButton.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { + removePrecedingButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { removePrecedingButtonActionPerformed(evt); } }); @@ -1303,7 +1286,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel12.add(removePrecedingButton, gridBagConstraints); + pathModificationPanel.add(removePrecedingButton, gridBagConstraints); jLabel4.setText("Before:"); jLabel4.setPreferredSize(new java.awt.Dimension(57, 15)); @@ -1311,7 +1294,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel12.add(jLabel4, gridBagConstraints); + pathModificationPanel.add(jLabel4, gridBagConstraints); backTrackStepField.setText("0"); backTrackStepField.setToolTipText("Enter the step to backtrack to"); @@ -1320,7 +1303,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 7; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - jPanel12.add(backTrackStepField, gridBagConstraints); + pathModificationPanel.add(backTrackStepField, gridBagConstraints); removePrecedingField.setText("0"); removePrecedingField.setToolTipText("Enter the step to become the first step"); @@ -1329,23 +1312,23 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.gridx = 9; gridBagConstraints.gridy = 7; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - jPanel12.add(removePrecedingField, gridBagConstraints); + pathModificationPanel.add(removePrecedingField, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 8; gridBagConstraints.gridy = 0; - jPanel12.add(jPanel22, gridBagConstraints); + pathModificationPanel.add(jPanel22, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; - jPanel12.add(jPanel25, gridBagConstraints); + pathModificationPanel.add(jPanel25, gridBagConstraints); - jPanel11.add(jPanel12, java.awt.BorderLayout.SOUTH); + topLeftPanel.add(pathModificationPanel, java.awt.BorderLayout.SOUTH); - jPanel3.add(jPanel11, java.awt.BorderLayout.CENTER); + topSplit.add(topLeftPanel, java.awt.BorderLayout.CENTER); - jSplitPane2.setLeftComponent(jPanel3); + verticalSplit.setLeftComponent(topSplit); jPanel4.setLayout(new java.awt.GridBagLayout()); @@ -1418,387 +1401,169 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect gridBagConstraints.weighty = 1.0; jPanel4.add(jSplitPane3, gridBagConstraints); - jSplitPane2.setRightComponent(jPanel4); - - jPanel1.add(jSplitPane2, java.awt.BorderLayout.CENTER); - - jSplitPane1.setLeftComponent(jPanel1); - - jPanel2.setLayout(new java.awt.BorderLayout()); - - jPanel2.setBorder(new javax.swing.border.TitledBorder("Simulation Path")); - - jScrollPane1.setViewportView(pathTable); - - jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER); - - jPanel24.setLayout(new java.awt.GridBagLayout()); - - newPathButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smallNewPath.gif"))); - newPathButton.setText("New Path"); - newPathButton.setToolTipText("New Path"); - newPathButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); - newPathButton.setPreferredSize(new java.awt.Dimension(119, 28)); - newPathButton.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - newPathButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; - jPanel24.add(newPathButton, gridBagConstraints); - - resetPathButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smallResetPath.gif"))); - resetPathButton.setText("Reset Path"); - resetPathButton.setToolTipText("Reset Path"); - resetPathButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); - resetPathButton.setPreferredSize(new java.awt.Dimension(119, 28)); - resetPathButton.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - resetPathButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 5; - gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; - gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; - jPanel24.add(resetPathButton, gridBagConstraints); - - exportPathButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/smallExport.gif"))); - exportPathButton.setText("Export Path"); - exportPathButton.setToolTipText("Export Path"); - exportPathButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); - exportPathButton.setPreferredSize(new java.awt.Dimension(119, 28)); - exportPathButton.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(java.awt.event.ActionEvent evt) - { - exportPathButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; - jPanel24.add(exportPathButton, gridBagConstraints); + verticalSplit.setRightComponent(jPanel4); - jPanel29.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - jPanel24.add(jPanel29, gridBagConstraints); + leftPanel.add(verticalSplit, java.awt.BorderLayout.CENTER); - jPanel31.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 4; - jPanel24.add(jPanel31, gridBagConstraints); + horizontalSplit.setLeftComponent(leftPanel); - jPanel32.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; - jPanel24.add(jPanel32, gridBagConstraints); + rightPanel.setLayout(new java.awt.BorderLayout()); - jPanel33.setPreferredSize(new java.awt.Dimension(10, 1)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 6; - jPanel24.add(jPanel33, gridBagConstraints); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 4; - gridBagConstraints.gridy = 0; - jPanel24.add(jPanel34, gridBagConstraints); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 6; - gridBagConstraints.gridy = 0; - jPanel24.add(jPanel35, gridBagConstraints); + rightPanel.setBorder(new javax.swing.border.TitledBorder("Simulation Path")); + innerRightPanel.setLayout(new java.awt.BorderLayout(0, 10)); - jPanel36.setLayout(new javax.swing.BoxLayout(jPanel36, javax.swing.BoxLayout.Y_AXIS)); + innerRightPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(10, 10, 10, 10))); + topRightPanel.setLayout(new java.awt.BorderLayout(10, 10)); - jPanel36.setBorder(new javax.swing.border.EtchedBorder()); - jPanel54.setLayout(new java.awt.GridLayout(1, 3)); + informationPanel.setLayout(new java.awt.BorderLayout()); - jPanel30.setLayout(new java.awt.GridBagLayout()); + informationPanel.setBorder(new javax.swing.border.EtchedBorder()); + innerInformationPanel.setLayout(new java.awt.GridLayout(6, 3, 5, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - jPanel30.add(jPanel39, gridBagConstraints); + innerInformationPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(5, 5, 5, 5))); + modelType.setText("Model Type:"); + modelType.setFont(this.getFont().deriveFont(Font.BOLD)); + innerInformationPanel.add(modelType); - jLabel6.setText("Model Type:"); - f = jLabel6.getFont(); - jLabel6.setFont(new java.awt.Font(f.getName(), Font.BOLD, f.getSize())); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel30.add(jLabel6, gridBagConstraints); + pathLength.setText("Path Length:"); + pathLength.setFont(this.getFont().deriveFont(Font.BOLD)); + innerInformationPanel.add(pathLength); - jPanel40.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 5; - jPanel30.add(jPanel40, gridBagConstraints); + totalTime.setText("Total Time:"); + totalTime.setFont(this.getFont().deriveFont(Font.BOLD)); + innerInformationPanel.add(totalTime); modelTypeLabel.setText("Unknown"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.weightx = 1.0; - jPanel30.add(modelTypeLabel, gridBagConstraints); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 0; - jPanel30.add(jPanel41, gridBagConstraints); - - jPanel42.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 8; - jPanel30.add(jPanel42, gridBagConstraints); - - stateTotalRewardsLabel.setText("0.0"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.weightx = 1.0; - jPanel30.add(stateTotalRewardsLabel, gridBagConstraints); - - jLabel13.setText("State Rewards:"); - f = jLabel13.getFont(); - jLabel13.setFont(new java.awt.Font(f.getName(), Font.BOLD, f.getSize())); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 6; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel30.add(jLabel13, gridBagConstraints); - - jPanel54.add(jPanel30); - - jPanel38.setLayout(new java.awt.GridBagLayout()); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - jPanel38.add(jPanel43, gridBagConstraints); + modelTypeLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0))); + innerInformationPanel.add(modelTypeLabel); - jPanel44.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 5; - jPanel38.add(jPanel44, gridBagConstraints); + pathLengthLabel.setText("0"); + pathLengthLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0))); + innerInformationPanel.add(pathLengthLabel); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 0; - jPanel38.add(jPanel45, gridBagConstraints); + totalTimeLabel.setText("0.0"); + totalTimeLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0))); + innerInformationPanel.add(totalTimeLabel); - pathLengthLabel.setText("Path Length:"); - f = pathLengthLabel.getFont(); - pathLengthLabel.setFont(new java.awt.Font(f.getName(), Font.BOLD, f.getSize())); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel38.add(pathLengthLabel, gridBagConstraints); + stateRewards.setText("State Rewards:"); + stateRewards.setFont(this.getFont().deriveFont(Font.BOLD)); + innerInformationPanel.add(stateRewards); - pathLengthParameterLabel.setText("0"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.weightx = 1.0; - jPanel38.add(pathLengthParameterLabel, gridBagConstraints); + transitionRewards.setText("Transition Rewards:"); + transitionRewards.setFont(this.getFont().deriveFont(Font.BOLD)); + innerInformationPanel.add(transitionRewards); - jPanel46.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 8; - jPanel38.add(jPanel46, gridBagConstraints); + totalRewards.setText("Total Reward:"); + totalRewards.setFont(this.getFont().deriveFont(Font.BOLD)); + innerInformationPanel.add(totalRewards); - spareLabel.setText("Transition Rewards:"); - f = spareLabel.getFont(); - spareLabel.setFont(new java.awt.Font(f.getName(), Font.BOLD, f.getSize())); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 6; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel38.add(spareLabel, gridBagConstraints); + stateRewardsLabel.setText("0.0"); + stateRewardsLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0))); + innerInformationPanel.add(stateRewardsLabel); - transitionTotalRewardsLabel.setText("0.0"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.weightx = 1.0; - jPanel38.add(transitionTotalRewardsLabel, gridBagConstraints); + transitionRewardsLabel.setText("0.0"); + transitionRewardsLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0))); + innerInformationPanel.add(transitionRewardsLabel); - jPanel54.add(jPanel38); + totalRewardLabel.setText("0.0"); + totalRewardLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0))); + innerInformationPanel.add(totalRewardLabel); - jPanel47.setLayout(new java.awt.GridBagLayout()); + definedConstants.setText("Defined Constants:"); + definedConstants.setFont(this.getFont().deriveFont(Font.BOLD)); + innerInformationPanel.add(definedConstants); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - jPanel47.add(jPanel48, gridBagConstraints); + innerInformationPanel.add(dummy1); - jPanel49.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 5; - jPanel47.add(jPanel49, gridBagConstraints); + innerInformationPanel.add(dummy2); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 0; - jPanel47.add(jPanel50, gridBagConstraints); + definedConstantsLabel.setText("Unknown"); + definedConstantsLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(0, 10, 0, 0))); + innerInformationPanel.add(definedConstantsLabel); - jPanel51.setPreferredSize(new java.awt.Dimension(10, 5)); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 8; - jPanel47.add(jPanel51, gridBagConstraints); + informationPanel.add(innerInformationPanel, java.awt.BorderLayout.CENTER); - totalTimeLabel.setText("0.0"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.weightx = 1.0; - jPanel47.add(totalTimeLabel, gridBagConstraints); + topRightPanel.add(informationPanel, java.awt.BorderLayout.CENTER); - pathTimeLabel.setText("Total Time:"); - f = jLabel6.getFont(); - pathTimeLabel.setFont(new java.awt.Font(f.getName(), Font.BOLD, f.getSize())); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel47.add(pathTimeLabel, gridBagConstraints); + buttonPanel.setLayout(new java.awt.BorderLayout()); - jLabel9.setText("Total Reward:"); - f = jLabel9.getFont(); - jLabel9.setFont(new java.awt.Font(f.getName(), Font.BOLD, f.getSize())); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 6; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - jPanel47.add(jLabel9, gridBagConstraints); + innerButtonPanel.setLayout(new java.awt.GridLayout(3, 1, 5, 10)); - totalRewardLabel.setText("0.0"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.weightx = 1.0; - jPanel47.add(totalRewardLabel, gridBagConstraints); + newPathButton.setIcon(new javax.swing.ImageIcon("")); + newPathButton.setText("New Path"); + newPathButton.setToolTipText("New Path"); + newPathButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); + newPathButton.setPreferredSize(new java.awt.Dimension(119, 28)); + newPathButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + newPathButtonActionPerformed(evt); + } + }); - jPanel54.add(jPanel47); + innerButtonPanel.add(newPathButton); - jPanel36.add(jPanel54); + resetPathButton.setIcon(new javax.swing.ImageIcon("")); + resetPathButton.setText("Reset Path"); + resetPathButton.setToolTipText("Reset Path"); + resetPathButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); + resetPathButton.setPreferredSize(new java.awt.Dimension(119, 28)); + resetPathButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + resetPathButtonActionPerformed(evt); + } + }); - jPanel55.setLayout(new java.awt.GridBagLayout()); + innerButtonPanel.add(resetPathButton); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - jPanel55.add(jPanel56, gridBagConstraints); + exportPathButton.setIcon(new javax.swing.ImageIcon("")); + exportPathButton.setText("Export Path"); + exportPathButton.setToolTipText("Export Path"); + exportPathButton.setHorizontalAlignment(javax.swing.SwingConstants.LEADING); + exportPathButton.setPreferredSize(new java.awt.Dimension(119, 28)); + exportPathButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + exportPathButtonActionPerformed(evt); + } + }); - jLabel10.setText("Defined Constants:"); - f = jLabel10.getFont(); - jLabel10.setFont(new java.awt.Font(f.getName(), Font.BOLD, f.getSize())); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 0; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; - jPanel55.add(jLabel10, gridBagConstraints); + innerButtonPanel.add(exportPathButton); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - jPanel55.add(jPanel57, gridBagConstraints); + buttonPanel.add(innerButtonPanel, java.awt.BorderLayout.NORTH); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.weightx = 1.0; - jPanel55.add(definedConstantsLabel, gridBagConstraints); + topRightPanel.add(buttonPanel, java.awt.BorderLayout.WEST); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - jPanel55.add(jPanel58, gridBagConstraints); + innerRightPanel.add(topRightPanel, java.awt.BorderLayout.NORTH); - jPanel36.add(jPanel55); + tablePanel.setLayout(new java.awt.BorderLayout()); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 5; - gridBagConstraints.gridy = 2; - gridBagConstraints.gridwidth = 3; - gridBagConstraints.gridheight = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; - gridBagConstraints.weightx = 1.0; - gridBagConstraints.weighty = 1.0; - jPanel24.add(jPanel36, gridBagConstraints); + pathTable.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + {null, null, null, null} + }, + new String [] { + "Title 1", "Title 2", "Title 3", "Title 4" + } + )); + tableScroll.setViewportView(pathTable); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 8; - gridBagConstraints.gridy = 9; - jPanel24.add(jPanel37, gridBagConstraints); + tablePanel.add(tableScroll, java.awt.BorderLayout.CENTER); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL; - gridBagConstraints.weighty = 0.5; - jPanel24.add(jPanel59, gridBagConstraints); + innerRightPanel.add(tablePanel, java.awt.BorderLayout.CENTER); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 8; - gridBagConstraints.weighty = 0.5; - jPanel24.add(jPanel60, gridBagConstraints); + rightPanel.add(innerRightPanel, java.awt.BorderLayout.CENTER); - jPanel2.add(jPanel24, java.awt.BorderLayout.NORTH); + horizontalSplit.setRightComponent(rightPanel); - jSplitPane1.setRightComponent(jPanel2); + add(horizontalSplit, java.awt.BorderLayout.CENTER); - add(jSplitPane1, java.awt.BorderLayout.CENTER); + } + // //GEN-END:initComponents - }//GEN-END:initComponents + private void autoTimeCheckStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_autoTimeCheckStateChanged + + this.stateTimeField.setEnabled(!autoTimeCheck.isSelected()); + + }//GEN-LAST:event_autoTimeCheckStateChanged private void initPopups() { @@ -1998,6 +1763,13 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect public void mousePressed(MouseEvent e) { doPopupDetection(e); + + if (e.getSource() == pathTable) + { + int row = pathTable.getSelectedRow(); + backTrackStepField.setText("" + row); + removePrecedingField.setText("" + row); + } } public void mouseReleased(MouseEvent e) @@ -2253,24 +2025,25 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect javax.swing.JTextField backTrackStepField; javax.swing.JButton backtrackButton; private javax.swing.ButtonGroup buttonGroup1; + private javax.swing.JPanel buttonPanel; javax.swing.JTable currentUpdatesTable; + private javax.swing.JLabel definedConstants; private javax.swing.JLabel definedConstantsLabel; + private javax.swing.JLabel dummy1; + private javax.swing.JLabel dummy2; javax.swing.JButton exportPathButton; + private javax.swing.JSplitPane horizontalSplit; + private javax.swing.JPanel informationPanel; + private javax.swing.JPanel innerButtonPanel; + private javax.swing.JPanel innerInformationPanel; + private javax.swing.JPanel innerRightPanel; javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel10; - private javax.swing.JLabel jLabel13; javax.swing.JLabel jLabel2; javax.swing.JLabel jLabel3; javax.swing.JLabel jLabel4; - javax.swing.JLabel jLabel5; - private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; - private javax.swing.JLabel jLabel9; - private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel10; - private javax.swing.JPanel jPanel11; - private javax.swing.JPanel jPanel12; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14; private javax.swing.JPanel jPanel15; @@ -2278,80 +2051,56 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect private javax.swing.JPanel jPanel17; private javax.swing.JPanel jPanel18; private javax.swing.JPanel jPanel19; - private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel20; private javax.swing.JPanel jPanel21; private javax.swing.JPanel jPanel22; private javax.swing.JPanel jPanel23; - private javax.swing.JPanel jPanel24; private javax.swing.JPanel jPanel25; private javax.swing.JPanel jPanel26; private javax.swing.JPanel jPanel27; private javax.swing.JPanel jPanel28; - private javax.swing.JPanel jPanel29; - private javax.swing.JPanel jPanel3; - private javax.swing.JPanel jPanel30; - private javax.swing.JPanel jPanel31; - private javax.swing.JPanel jPanel32; - private javax.swing.JPanel jPanel33; - private javax.swing.JPanel jPanel34; - private javax.swing.JPanel jPanel35; - private javax.swing.JPanel jPanel36; - private javax.swing.JPanel jPanel37; - private javax.swing.JPanel jPanel38; - private javax.swing.JPanel jPanel39; private javax.swing.JPanel jPanel4; - private javax.swing.JPanel jPanel40; - private javax.swing.JPanel jPanel41; - private javax.swing.JPanel jPanel42; - private javax.swing.JPanel jPanel43; - private javax.swing.JPanel jPanel44; - private javax.swing.JPanel jPanel45; - private javax.swing.JPanel jPanel46; - private javax.swing.JPanel jPanel47; - private javax.swing.JPanel jPanel48; - private javax.swing.JPanel jPanel49; private javax.swing.JPanel jPanel5; - private javax.swing.JPanel jPanel50; - private javax.swing.JPanel jPanel51; private javax.swing.JPanel jPanel52; private javax.swing.JPanel jPanel53; - private javax.swing.JPanel jPanel54; - private javax.swing.JPanel jPanel55; - private javax.swing.JPanel jPanel56; - private javax.swing.JPanel jPanel57; - private javax.swing.JPanel jPanel58; - private javax.swing.JPanel jPanel59; - private javax.swing.JPanel jPanel6; - private javax.swing.JPanel jPanel60; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JPanel jPanel9; - private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane4; - private javax.swing.JSplitPane jSplitPane1; - private javax.swing.JSplitPane jSplitPane2; private javax.swing.JSplitPane jSplitPane3; + private javax.swing.JPanel leftPanel; javax.swing.JButton manualUpdateField; + private javax.swing.JLabel modelType; private javax.swing.JLabel modelTypeLabel; javax.swing.JButton newPathButton; + private javax.swing.JPanel pathExplorationPanel; javax.swing.JList pathFormulaeList; + private javax.swing.JLabel pathLength; private javax.swing.JLabel pathLengthLabel; - private javax.swing.JLabel pathLengthParameterLabel; + private javax.swing.JPanel pathModificationPanel; private javax.swing.JTable pathTable; - private javax.swing.JLabel pathTimeLabel; javax.swing.JButton removePrecedingButton; javax.swing.JTextField removePrecedingField; javax.swing.JButton resetPathButton; - private javax.swing.JLabel spareLabel; + private javax.swing.JPanel rightPanel; private javax.swing.JList stateLabelList; + private javax.swing.JLabel stateRewards; + private javax.swing.JLabel stateRewardsLabel; javax.swing.JTextField stateTimeField; - private javax.swing.JLabel stateTotalRewardsLabel; + private javax.swing.JPanel tablePanel; + private javax.swing.JScrollPane tableScroll; + private javax.swing.JPanel topLeftPanel; + private javax.swing.JPanel topRightPanel; + private javax.swing.JPanel topSplit; private javax.swing.JLabel totalRewardLabel; + private javax.swing.JLabel totalRewards; + private javax.swing.JLabel totalTime; private javax.swing.JLabel totalTimeLabel; - private javax.swing.JLabel transitionTotalRewardsLabel; + private javax.swing.JLabel transitionRewards; + private javax.swing.JLabel transitionRewardsLabel; + private javax.swing.JScrollPane updatesScroll; + private javax.swing.JSplitPane verticalSplit; // End of variables declaration//GEN-END:variables @@ -2558,7 +2307,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect } } - public String getColumnName(int column) + public String getColumnName(int columnIndex) { try { @@ -2569,14 +2318,14 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect int timeStart = varStart + visibleVariables.size(); // The step column - if (column == stepStart && SHOW_STEP) + if (stepStart <= columnIndex && columnIndex < varStart) { return "#"; } // A variable column - else if (varStart <= column && column < timeStart) + else if (varStart <= columnIndex && columnIndex < timeStart) { - return ((Variable)visibleVariables.get(column - varStart)).getName(); + return ((Variable)visibleVariables.get(columnIndex - varStart)).getName(); } @@ -2584,26 +2333,26 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect if (mf.getType() == ModulesFile.STOCHASTIC) { int n = visibleVariables.size(); - if(column == n+1) //where time should be + if(columnIndex == n+1) //where time should be { return "Time"; } - else if(column > n+1) //rewards + else if(columnIndex > n+1) //rewards { - int i = column-(n+2); + int i = columnIndex-(n+2); return "" + ((i%2 == 0)?"Sta.":"Tra.") + " Rew. "+((i/2)+1); } } else { int n = visibleVariables.size(); - if(column > n) //rewards + if(columnIndex > n) //rewards { - int i = column-(n+1); + int i = columnIndex-(n+1); return "" + ((i%2 == 0)?"Sta.":"Tra.") + " Rew. "+((i/2)+1); } } - return engine.getVariableName(column-1); + return engine.getVariableName(columnIndex-1); } else return ""; } @@ -2681,7 +2430,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect tc.setMinWidth(50); } - if(50*cm.getColumnCount() > jScrollPane1.getWidth()) + if(50*cm.getColumnCount() > tableScroll.getWidth()) { pathTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);