|
|
@ -28,26 +28,64 @@ |
|
|
|
|
|
|
|
|
package userinterface.simulator; |
|
|
package userinterface.simulator; |
|
|
|
|
|
|
|
|
import java.awt.*; |
|
|
|
|
|
import java.awt.event.*; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
|
|
import javax.swing.table.*; |
|
|
|
|
|
import javax.swing.event.*; |
|
|
|
|
|
|
|
|
import java.awt.Font; |
|
|
|
|
|
import java.awt.Rectangle; |
|
|
|
|
|
import java.awt.Toolkit; |
|
|
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
|
|
import java.awt.event.ComponentAdapter; |
|
|
|
|
|
import java.awt.event.ComponentEvent; |
|
|
|
|
|
import java.awt.event.InputEvent; |
|
|
|
|
|
import java.awt.event.KeyAdapter; |
|
|
|
|
|
import java.awt.event.KeyEvent; |
|
|
|
|
|
import java.awt.event.MouseAdapter; |
|
|
|
|
|
import java.awt.event.MouseEvent; |
|
|
|
|
|
import java.awt.event.MouseListener; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.AbstractAction; |
|
|
|
|
|
import javax.swing.Action; |
|
|
|
|
|
import javax.swing.JFileChooser; |
|
|
|
|
|
import javax.swing.JList; |
|
|
|
|
|
import javax.swing.JMenu; |
|
|
|
|
|
import javax.swing.JPopupMenu; |
|
|
|
|
|
import javax.swing.JScrollPane; |
|
|
|
|
|
import javax.swing.JTable; |
|
|
|
|
|
import javax.swing.KeyStroke; |
|
|
|
|
|
import javax.swing.ListSelectionModel; |
|
|
|
|
|
import javax.swing.event.ListSelectionEvent; |
|
|
|
|
|
import javax.swing.event.ListSelectionListener; |
|
|
import javax.swing.filechooser.FileFilter; |
|
|
import javax.swing.filechooser.FileFilter; |
|
|
import javax.swing.filechooser.FileNameExtensionFilter; |
|
|
import javax.swing.filechooser.FileNameExtensionFilter; |
|
|
|
|
|
|
|
|
import simulator.*; |
|
|
|
|
|
import simulator.networking.*; |
|
|
|
|
|
import parser.*; |
|
|
|
|
|
import parser.ast.*; |
|
|
|
|
|
import prism.*; |
|
|
|
|
|
import userinterface.*; |
|
|
|
|
|
import userinterface.util.*; |
|
|
|
|
|
|
|
|
import javax.swing.table.AbstractTableModel; |
|
|
|
|
|
import javax.swing.table.TableColumn; |
|
|
|
|
|
import javax.swing.table.TableColumnModel; |
|
|
|
|
|
|
|
|
|
|
|
import parser.Values; |
|
|
|
|
|
import parser.ast.LabelList; |
|
|
|
|
|
import parser.ast.ModulesFile; |
|
|
|
|
|
import parser.ast.PropertiesFile; |
|
|
|
|
|
import prism.PrismException; |
|
|
|
|
|
import prism.PrismLangException; |
|
|
|
|
|
import prism.PrismSettings; |
|
|
|
|
|
import prism.PrismSettingsListener; |
|
|
|
|
|
import prism.PrismUtils; |
|
|
|
|
|
import prism.UndefinedConstants; |
|
|
|
|
|
import simulator.PathFullInfo; |
|
|
|
|
|
import simulator.SimulatorEngine; |
|
|
|
|
|
import simulator.networking.SimulatorNetworkHandler; |
|
|
|
|
|
import userinterface.GUIConstantsPicker; |
|
|
|
|
|
import userinterface.GUIPlugin; |
|
|
|
|
|
import userinterface.GUIPrism; |
|
|
|
|
|
import userinterface.OptionsPanel; |
|
|
import userinterface.graph.Graph; |
|
|
import userinterface.graph.Graph; |
|
|
import userinterface.model.*; |
|
|
|
|
|
import userinterface.properties.*; |
|
|
|
|
|
import userinterface.simulator.networking.*; |
|
|
|
|
|
|
|
|
import userinterface.model.GUIModelEvent; |
|
|
|
|
|
import userinterface.model.GUIMultiModel; |
|
|
|
|
|
import userinterface.properties.GUIMultiProperties; |
|
|
|
|
|
import userinterface.properties.GUIPropertiesEvent; |
|
|
|
|
|
import userinterface.properties.GUIPropertiesList; |
|
|
|
|
|
import userinterface.properties.GUIProperty; |
|
|
|
|
|
import userinterface.simulator.networking.GUINetworkEditor; |
|
|
|
|
|
import userinterface.util.GUIComputationEvent; |
|
|
|
|
|
import userinterface.util.GUIExitEvent; |
|
|
|
|
|
|
|
|
@SuppressWarnings("serial") |
|
|
@SuppressWarnings("serial") |
|
|
public class GUISimulator extends GUIPlugin implements MouseListener, ListSelectionListener, PrismSettingsListener |
|
|
public class GUISimulator extends GUIPlugin implements MouseListener, ListSelectionListener, PrismSettingsListener |
|
|
@ -892,7 +930,8 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect |
|
|
newPathPlotAfterParse(); |
|
|
newPathPlotAfterParse(); |
|
|
} else if (me.getID() == GUIModelEvent.MODEL_PARSE_FAILED) { |
|
|
} else if (me.getID() == GUIModelEvent.MODEL_PARSE_FAILED) { |
|
|
newPathAfterReceiveParseNotification = false; |
|
|
newPathAfterReceiveParseNotification = false; |
|
|
newPathPlotAfterReceiveParseNotification = false; } |
|
|
|
|
|
|
|
|
newPathPlotAfterReceiveParseNotification = false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} else if (e instanceof GUIComputationEvent) { |
|
|
} else if (e instanceof GUIComputationEvent) { |
|
|
if (e.getID() == GUIComputationEvent.COMPUTATION_START) { |
|
|
if (e.getID() == GUIComputationEvent.COMPUTATION_START) { |
|
|
@ -1889,8 +1928,7 @@ public class GUISimulator extends GUIPlugin implements MouseListener, ListSelect |
|
|
if (e.getClickCount() == 2 && (e.getSource() == pathTablePlaceHolder || e.getSource() == tableScroll)) { |
|
|
if (e.getClickCount() == 2 && (e.getSource() == pathTablePlaceHolder || e.getSource() == tableScroll)) { |
|
|
if (newPath.isEnabled()) |
|
|
if (newPath.isEnabled()) |
|
|
a_newPath(false); |
|
|
a_newPath(false); |
|
|
} |
|
|
|
|
|
else if (e.isPopupTrigger() |
|
|
|
|
|
|
|
|
} else if (e.isPopupTrigger() |
|
|
&& (e.getSource() == pathTablePlaceHolder || e.getSource() == pathTable || e.getSource() == pathTable.getTableHeader() || e.getSource() == tableScroll)) { |
|
|
&& (e.getSource() == pathTablePlaceHolder || e.getSource() == pathTable || e.getSource() == pathTable.getTableHeader() || e.getSource() == tableScroll)) { |
|
|
randomExploration |
|
|
randomExploration |
|
|
.setEnabled(!(e.getSource() == pathTable.getTableHeader() || e.getSource() == pathTablePlaceHolder || e.getSource() == tableScroll)); |
|
|
.setEnabled(!(e.getSource() == pathTable.getTableHeader() || e.getSource() == pathTablePlaceHolder || e.getSource() == tableScroll)); |
|
|
|