Browse Source

Path style included in view configuration dialog. Options path style setting demoted to default option.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@465 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Mark Kattenbelt 18 years ago
parent
commit
2e34d9d86f
  1. 53
      prism/src/userinterface/simulator/GUISimulator.java
  2. 5
      prism/src/userinterface/simulator/GUISimulatorPathTable.java
  3. 86
      prism/src/userinterface/simulator/GUIViewDialog.form
  4. 69
      prism/src/userinterface/simulator/GUIViewDialog.java

53
prism/src/userinterface/simulator/GUISimulator.java

@ -60,7 +60,6 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
private JMenu simulatorMenu;
private JPopupMenu pathPopupMenu;
//Current State
private ModulesFile parsedModel;
private boolean pathActive;
@ -82,11 +81,14 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
public GUISimulator(GUIPrism gui)
{
super(gui, true);
pathTableModel = new PathTableModel(new SimulationView());
updateTableModel = new UpdateTableModel();
this.gui = gui;
this.engine = gui.getPrism().getSimulator();
SimulationView view = new SimulationView();
pathTableModel = new PathTableModel(view);
updateTableModel = new UpdateTableModel();
initComponents();
initPopups();
@ -112,6 +114,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
}
});
view.refreshToDefaultView();
pathActive = false;
engineBuilt = false;
@ -2489,6 +2492,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
private boolean stepsVisible;
private boolean showTime;
private boolean showCumulativeTime;
private boolean useChangeRenderer;
public SimulationView()
{
@ -2497,8 +2501,6 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
this.visibleRewardColumns = new ArrayList();
this.rewards = new ArrayList();
refreshToDefaultView();
}
public boolean showSteps()
@ -2603,6 +2605,21 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
return engine;
}
public boolean isChangeRenderer()
{
return useChangeRenderer;
}
public void setRenderer(boolean isChangeRenderer)
{
if (useChangeRenderer != isChangeRenderer)
{
useChangeRenderer = isChangeRenderer;
GUISimulator.this.setRenderer(useChangeRenderer);
}
}
public void refreshToDefaultView()
{
visibleVariables.clear();
@ -2611,13 +2628,20 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
rewards.clear();
useChangeRenderer = (gui.getPrism().getSettings().getInteger(PrismSettings.SIMULATOR_RENDER_ALL_VALUES) == 0);
if (useChangeRenderer != usingChangeRenderer())
{
GUISimulator.this.setRenderer(useChangeRenderer);
}
if (pathActive)
{
try
{
stepsVisible = true;
showTime = parsedModel.getType() == ModulesFile.STOCHASTIC;
showCumulativeTime = parsedModel.getType() == ModulesFile.STOCHASTIC;;
showTime = false;
showCumulativeTime = parsedModel.getType() == ModulesFile.STOCHASTIC;
for (int i = 0; i < engine.getNumVariables(); i++)
{
@ -3258,9 +3282,13 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
return updateTableModel.oldStep;
}
public void notifySettings(PrismSettings settings)
public boolean usingChangeRenderer()
{
return ((GUISimulatorPathTable)pathTable).usingChangeRenderer();
}
public void setRenderer(boolean displayStyleFast)
{
displayStyleFast = settings.getInteger(PrismSettings.SIMULATOR_RENDER_ALL_VALUES) == 0;
if(displayStyleFast)
{
((GUISimulatorPathTable)pathTable).switchToChangeRenderer();
@ -3405,4 +3433,9 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect
return engine.getDistributionIndexOfUpdate(row);
}
}
public void notifySettings(PrismSettings settings) {
// TODO Auto-generated method stub
}
}

5
prism/src/userinterface/simulator/GUISimulatorPathTable.java

@ -91,6 +91,11 @@ public class GUISimulatorPathTable extends GUIGroupedTable
}
public boolean usingChangeRenderer()
{
return ((PathChangeTableRenderer)getDefaultRenderer(Object.class)).onlyShowChange();
}
public void switchToChangeRenderer()
{
setDefaultRenderer(Object.class, new PathChangeTableRenderer(true));

86
prism/src/userinterface/simulator/GUIViewDialog.form

@ -14,6 +14,8 @@
<Property name="text" type="java.lang.String" value="Hidden Variables"/>
</Properties>
</Component>
<Component class="javax.swing.ButtonGroup" name="pathStyle">
</Component>
</NonVisualComponents>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="2"/>
@ -532,18 +534,18 @@
</Container>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="timeTabPanel">
<Container class="javax.swing.JPanel" name="otherTabPanel">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="Time">
<Property name="tabTitle" type="java.lang.String" value="Time"/>
<JTabbedPaneConstraints tabName="Other">
<Property name="tabTitle" type="java.lang.String" value="Other"/>
</JTabbedPaneConstraints>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="timePanel">
<Container class="javax.swing.JPanel" name="boxPanel">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
@ -553,11 +555,13 @@
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="Center"/>
<BorderConstraints direction="North"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout">
<Property name="axis" type="int" value="1"/>
</Layout>
<SubComponents>
<Container class="javax.swing.JPanel" name="innerTimePanel">
<Properties>
@ -567,11 +571,9 @@
</Border>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
<GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.5" weightY="1.0"/>
</Constraint>
</Constraints>
<AccessibilityProperties>
<Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Time properties"/>
</AccessibilityProperties>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
@ -629,6 +631,68 @@
</Container>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pathStylePanel">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
<TitledBorder title="Path style"/>
</Border>
</Property>
</Properties>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="innerPathStylePanel">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
<EmptyBorder bottom="5" left="5" right="5" top="5"/>
</Border>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="North"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout">
<Property name="columns" type="int" value="1"/>
<Property name="horizontalGap" type="int" value="5"/>
<Property name="rows" type="int" value="2"/>
<Property name="verticalGap" type="int" value="5"/>
</Layout>
<SubComponents>
<Component class="javax.swing.JRadioButton" name="changeRenderingButton">
<Properties>
<Property name="text" type="java.lang.String" value="Render changes"/>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
<EmptyBorder bottom="0" left="0" right="0" top="0"/>
</Border>
</Property>
<Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
<Insets value="[0, 0, 0, 0]"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JRadioButton" name="renderAllButton">
<Properties>
<Property name="text" type="java.lang.String" value="Render all values"/>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
<EmptyBorder bottom="0" left="0" right="0" top="0"/>
</Border>
</Property>
<Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
<Insets value="[0, 0, 0, 0]"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Container>
</SubComponents>
</Container>
</SubComponents>

69
prism/src/userinterface/simulator/GUIViewDialog.java

@ -63,17 +63,20 @@ public class GUIViewDialog extends JDialog implements KeyListener
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel allPanel;
private javax.swing.JPanel bottomPanel;
private javax.swing.JPanel boxPanel;
private javax.swing.JPanel buttonPanel;
private javax.swing.JButton cancelButton;
private javax.swing.JPanel centerRewardColumn;
private javax.swing.JPanel centerRewardPanel;
private javax.swing.JPanel centerVariableColumn;
private javax.swing.JPanel centerVariablePanel;
private javax.swing.JRadioButton changeRenderingButton;
private javax.swing.JLabel hiddenLabel;
private javax.swing.JList hiddenRewardList;
private javax.swing.JScrollPane hiddenRewardScrollList;
private javax.swing.JList hiddenVariableList;
private javax.swing.JScrollPane hiddenVariableScrollList;
private javax.swing.JPanel innerPathStylePanel;
private javax.swing.JPanel innerTimePanel;
private javax.swing.JPanel leftRewardColumn;
private javax.swing.JPanel leftRewardPanel;
@ -85,6 +88,10 @@ public class GUIViewDialog extends JDialog implements KeyListener
private javax.swing.JButton makeVariableVisibleButton;
private javax.swing.JButton okayButton;
private javax.swing.JCheckBox optionCheckBox;
private javax.swing.JPanel otherTabPanel;
private javax.swing.ButtonGroup pathStyle;
private javax.swing.JPanel pathStylePanel;
private javax.swing.JRadioButton renderAllButton;
private javax.swing.JPanel rewardPanel;
private javax.swing.JPanel rewardTabPanel;
private javax.swing.JPanel rightRewardColumn;
@ -97,8 +104,6 @@ public class GUIViewDialog extends JDialog implements KeyListener
private javax.swing.JButton selectAllVisibleVariablesButton;
private javax.swing.JCheckBox showCumulativeTimeCheckBox;
private javax.swing.JCheckBox showTimeCheckBox;
private javax.swing.JPanel timePanel;
private javax.swing.JPanel timeTabPanel;
private javax.swing.JPanel topInnerTimePanel;
private javax.swing.JPanel variablePanel;
private javax.swing.JTabbedPane variableTabPane;
@ -174,7 +179,14 @@ public class GUIViewDialog extends JDialog implements KeyListener
visibleRewardList.setModel(visibleRewardListModel);
hiddenRewardList.setModel(hiddenRewardListModel);
variableTabPane.setEnabledAt(2, view.canShowTime());
showCumulativeTimeCheckBox.setEnabled(view.canShowTime());
showTimeCheckBox.setEnabled(view.canShowTime());
pathStyle.add(renderAllButton);
pathStyle.add(changeRenderingButton);
renderAllButton.setSelected(!view.isChangeRenderer());
changeRenderingButton.setSelected(view.isChangeRenderer());
makeVariableHiddenButton.setIcon(GUIPrism.getIconFromImage("smallArrowRight.png"));
makeRewardHiddenButton.setIcon(GUIPrism.getIconFromImage("smallArrowRight.png"));
@ -196,6 +208,7 @@ public class GUIViewDialog extends JDialog implements KeyListener
visibleLabel = new javax.swing.JLabel();
hiddenLabel = new javax.swing.JLabel();
pathStyle = new javax.swing.ButtonGroup();
allPanel = new javax.swing.JPanel();
bottomPanel = new javax.swing.JPanel();
buttonPanel = new javax.swing.JPanel();
@ -235,12 +248,16 @@ public class GUIViewDialog extends JDialog implements KeyListener
hiddenRewardScrollList = new javax.swing.JScrollPane();
hiddenRewardList = new javax.swing.JList();
selectAllHiddenRewardsButton = new javax.swing.JButton();
timeTabPanel = new javax.swing.JPanel();
timePanel = new javax.swing.JPanel();
otherTabPanel = new javax.swing.JPanel();
boxPanel = new javax.swing.JPanel();
innerTimePanel = new javax.swing.JPanel();
topInnerTimePanel = new javax.swing.JPanel();
showTimeCheckBox = new javax.swing.JCheckBox();
showCumulativeTimeCheckBox = new javax.swing.JCheckBox();
pathStylePanel = new javax.swing.JPanel();
innerPathStylePanel = new javax.swing.JPanel();
changeRenderingButton = new javax.swing.JRadioButton();
renderAllButton = new javax.swing.JRadioButton();
visibleLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
visibleLabel.setText("Visible Variables");
@ -509,11 +526,11 @@ public class GUIViewDialog extends JDialog implements KeyListener
variableTabPane.addTab("Reward visibility", rewardTabPanel);
timeTabPanel.setLayout(new java.awt.BorderLayout());
otherTabPanel.setLayout(new java.awt.BorderLayout());
timePanel.setLayout(new java.awt.GridBagLayout());
boxPanel.setLayout(new javax.swing.BoxLayout(boxPanel, javax.swing.BoxLayout.Y_AXIS));
timePanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
boxPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
innerTimePanel.setLayout(new java.awt.BorderLayout());
innerTimePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Time properties"));
@ -533,18 +550,32 @@ public class GUIViewDialog extends JDialog implements KeyListener
innerTimePanel.add(topInnerTimePanel, java.awt.BorderLayout.NORTH);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.weighty = 1.0;
timePanel.add(innerTimePanel, gridBagConstraints);
boxPanel.add(innerTimePanel);
innerTimePanel.getAccessibleContext().setAccessibleName("Time properties");
pathStylePanel.setLayout(new java.awt.BorderLayout());
pathStylePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Path style"));
innerPathStylePanel.setLayout(new java.awt.GridLayout(2, 1, 5, 5));
innerPathStylePanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
changeRenderingButton.setText("Render changes");
changeRenderingButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
changeRenderingButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
innerPathStylePanel.add(changeRenderingButton);
timeTabPanel.add(timePanel, java.awt.BorderLayout.CENTER);
renderAllButton.setText("Render all values");
renderAllButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
renderAllButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
innerPathStylePanel.add(renderAllButton);
variableTabPane.addTab("Time", timeTabPanel);
pathStylePanel.add(innerPathStylePanel, java.awt.BorderLayout.NORTH);
boxPanel.add(pathStylePanel);
otherTabPanel.add(boxPanel, java.awt.BorderLayout.NORTH);
variableTabPane.addTab("Other", otherTabPanel);
getContentPane().add(variableTabPane, java.awt.BorderLayout.CENTER);
@ -665,7 +696,7 @@ public class GUIViewDialog extends JDialog implements KeyListener
view.showTime(showTimeCheckBox.isSelected());
view.showCumulativeTime(showCumulativeTimeCheckBox.isSelected());
view.setVariableVisibility(visibleVariableListModel.getVariables(), hiddenVariableListModel.getVariables());
view.setRenderer(changeRenderingButton.isSelected());
view.setVisibleRewardListItems(visibleRewardListModel.getRewards());
dispose();

Loading…
Cancel
Save