Merge lp:~danilovesky/workcraft/trunk-bug-1351503 into lp:workcraft

Proposed by Danil Sokolov
Status: Merged
Merged at revision: 537
Proposed branch: lp:~danilovesky/workcraft/trunk-bug-1351503
Merge into: lp:workcraft
Diff against target: 364 lines (+51/-74)
5 files modified
CpogsPlugin/src/org/workcraft/plugins/cpog/CpogProgrammer.java (+19/-36)
CpogsPlugin/src/org/workcraft/plugins/cpog/CpogSettings.java (+24/-1)
CpogsPlugin/src/org/workcraft/plugins/cpog/EncoderSettings.java (+6/-6)
CpogsPlugin/src/org/workcraft/plugins/cpog/gui/EncoderConfigurationDialog.java (+2/-8)
WorkcraftCore/src/org/workcraft/gui/graph/tools/SelectionTool.java (+0/-23)
To merge this branch: bzr merge lp:~danilovesky/workcraft/trunk-bug-1351503
Reviewer Review Type Date Requested Status
Danil Sokolov Approve
Review via email: mp+229468@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Danil Sokolov (danilovesky) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CpogsPlugin/src/org/workcraft/plugins/cpog/CpogProgrammer.java'
--- CpogsPlugin/src/org/workcraft/plugins/cpog/CpogProgrammer.java 2014-07-29 11:59:53 +0000
+++ CpogsPlugin/src/org/workcraft/plugins/cpog/CpogProgrammer.java 2014-08-04 14:17:33 +0000
@@ -32,19 +32,22 @@
32import org.workcraft.plugins.cpog.optimisation.expressions.Zero;32import org.workcraft.plugins.cpog.optimisation.expressions.Zero;
33import org.workcraft.plugins.cpog.optimisation.javacc.BooleanParser;33import org.workcraft.plugins.cpog.optimisation.javacc.BooleanParser;
34import org.workcraft.plugins.cpog.optimisation.javacc.ParseException;34import org.workcraft.plugins.cpog.optimisation.javacc.ParseException;
35import org.workcraft.util.FileUtils;
35import org.workcraft.util.Func;36import org.workcraft.util.Func;
36import org.workcraft.util.Geometry;37import org.workcraft.util.Geometry;
37import org.workcraft.util.Hierarchy;38import org.workcraft.util.Hierarchy;
38import org.workcraft.workspace.WorkspaceEntry;39import org.workcraft.workspace.WorkspaceEntry;
3940
40public class CpogProgrammer {41public class CpogProgrammer {
41 42 // FIXME: Relative path to the directory with programmer results. Currently this is hard-coded in programmer.
43 private static final String genEncodingDir = "../tools/results/generated_encoding/";
44
42 private EncoderSettings settings;45 private EncoderSettings settings;
43 private File scenarioFile, encodingFile ;46 private File scenarioFile, encodingFile ;
44 private Double minArea;47 private Double minArea;
45 48
46 // SETTING PARAMETERS FOR CALLING PROGRAMMER49 // SETTING PARAMETERS FOR CALLING PROGRAMMER
47 private String programmerCommand = "programmer";50 private String programmerCommand;
48 private String espressoCommand;51 private String espressoCommand;
49 private String abcFolder;52 private String abcFolder;
50 private String gatesLibrary;53 private String gatesLibrary;
@@ -262,10 +265,6 @@
262 abcFolder = "";265 abcFolder = "";
263 gateLibFlag = "-lib";266 gateLibFlag = "-lib";
264 gatesLibrary = "";267 gatesLibrary = "";
265 JOptionPane.showMessageDialog(null,
266 "You can download it at http://www.eecs.berkeley.edu/~alanmi/abc/ to improve the outcome of the encoding.",
267 "Abc tool disabled",
268 JOptionPane.INFORMATION_MESSAGE);
269 }268 }
270 269
271 // FILL IN PARAMETERS FOR CALLING PROGRAMER PROPERLY270 // FILL IN PARAMETERS FOR CALLING PROGRAMER PROPERLY
@@ -330,11 +329,10 @@
330 System.out.println("Error");329 System.out.println("Error");
331 }330 }
332 331
333 deleteDir(new File("results/"));332 FileUtils.deleteDirectoryTree(new File(genEncodingDir));
334 File d = new File("results/generated_encoding/");333 new File(genEncodingDir).mkdirs();
335 d.mkdirs();334
336 335 // IF SCENCO MODE IS NOT SELECTED, PROGRAMMER IS CALLED ITERATIVELY
337 // IF SCENCO MODE IS NOT SELECTED, PROGRAMMER IS CALLED ITERATIVELY
338 // BECAUSE, IF CONTINUOUS OPTION IS SELECTED, TOOL IS CALLED 336 // BECAUSE, IF CONTINUOUS OPTION IS SELECTED, TOOL IS CALLED
339 // TILL USER PRESSES STOP BUTTON337 // TILL USER PRESSES STOP BUTTON
340 if(!SCENCO){ 338 if(!SCENCO){
@@ -673,22 +671,6 @@
673 }671 }
674 }672 }
675 673
676 // REMOVE DIRECTORY CONTAINS ALL THE CONTROLLER SYNTHESISED
677 // FOR EACH ENCODING SOLUTION
678 private static boolean deleteDir(File dir) {
679 if (dir.isDirectory()) {
680 String[] children = dir.list();
681 for (int i = 0; i < children.length; i++) {
682 boolean success = deleteDir(new File(dir, children[i]));
683 if (!success) {
684 return false;
685 }
686 }
687 }
688
689 return dir.delete(); // The directory is empty now and can be deleted.
690 }
691
692 // BUILD CONSTRAINT FOR EACH ELEMENTS LOOPING ON THE SCENARIOS674 // BUILD CONSTRAINT FOR EACH ELEMENTS LOOPING ON THE SCENARIOS
693 private String generateConstraint(char [][][] constraints, int numScenarios, int event1, int event2)675 private String generateConstraint(char [][][] constraints, int numScenarios, int event1, int event2)
694 {676 {
@@ -856,7 +838,7 @@
856 // THE MICROCONTROLLER SYNTHESISED WITH ABC TOOL838 // THE MICROCONTROLLER SYNTHESISED WITH ABC TOOL
857 private void printController(int m){839 private void printController(int m){
858 System.out.println();840 System.out.println();
859 String fileName = "results/generated_encoding/";841 String fileName = genEncodingDir;
860 for(int i=0; i<m; i++) fileName = fileName.concat(binaryToInt(opt_enc[i]) + "_");842 for(int i=0; i<m; i++) fileName = fileName.concat(binaryToInt(opt_enc[i]) + "_");
861 fileName = fileName.concat(".prg");843 fileName = fileName.concat(".prg");
862 File f = new File(fileName);844 File f = new File(fileName);
@@ -896,14 +878,14 @@
896 // TO WORKCRAFT TO BUILD THE COMPOSITIONAL GRAPH878 // TO WORKCRAFT TO BUILD THE COMPOSITIONAL GRAPH
897 private int callingProgrammer(Double currArea, WorkspaceEntry we, int it, boolean continuous) throws IOException{879 private int callingProgrammer(Double currArea, WorkspaceEntry we, int it, boolean continuous) throws IOException{
898 //Debug Printing: launching executable880 //Debug Printing: launching executable
899 /*System.out.println(programmerCommand + " " + scenarioFile.getAbsolutePath() + " " +881// System.out.println(programmerCommand + " " + scenarioFile.getAbsolutePath() + " " +
900 "-m" + " " + effort + " " + genMode + " " + numSol + " " + customFlag + " " + customPath + " " + 882// "-m" + " " + effort + " " + genMode + " " + numSol + " " + customFlag + " " + customPath + " " +
901 verbose + " " + cpogSize + " " + disableFunction + " " + oldSynt + " " + 883// verbose + " " + cpogSize + " " + disableFunction + " " + oldSynt + " " +
902 espressoFlag + " " + espressoCommand + " " + abcFlag + " " + abcFolder + " " + gateLibFlag + " " +884// espressoFlag + " " + espressoCommand + " " + abcFlag + " " + abcFolder + " " + gateLibFlag + " " +
903 gatesLibrary);*/885// gatesLibrary);
904 process = new ProcessBuilder(programmerCommand, scenarioFile.getAbsolutePath(),886 process = new ProcessBuilder(programmerCommand, scenarioFile.getAbsolutePath(),
905 "-m",effort,genMode, numSol,customFlag,customPath,verbose,cpogSize,disableFunction,oldSynt,887 "-m", effort, genMode, numSol, customFlag, customPath, verbose, cpogSize, disableFunction, oldSynt,
906 espressoFlag,espressoCommand, abcFlag, abcFolder, gateLibFlag, gatesLibrary).start();888 espressoFlag, espressoCommand, abcFlag, abcFolder, gateLibFlag, gatesLibrary).start();
907 InputStream is = process.getInputStream();889 InputStream is = process.getInputStream();
908 InputStreamReader isr = new InputStreamReader(is);890 InputStreamReader isr = new InputStreamReader(is);
909 BufferedReader br = new BufferedReader(isr);891 BufferedReader br = new BufferedReader(isr);
@@ -1069,6 +1051,7 @@
1069 opt_formulaeArcs = new String[elements*elements];1051 opt_formulaeArcs = new String[elements*elements];
1070 truthTableArcs = new String[elements*elements];1052 truthTableArcs = new String[elements*elements];
1071 arcNames = new String[elements*elements];1053 arcNames = new String[elements*elements];
1054 programmerCommand = CpogSettings.getProgrammerCommand();
1072 espressoCommand = CpogSettings.getEspressoCommand();1055 espressoCommand = CpogSettings.getEspressoCommand();
1073 abcFolder = CpogSettings.getAbcFolder();1056 abcFolder = CpogSettings.getAbcFolder();
1074 gatesLibrary = CpogSettings.getGatesLibrary();1057 gatesLibrary = CpogSettings.getGatesLibrary();
10751058
=== modified file 'CpogsPlugin/src/org/workcraft/plugins/cpog/CpogSettings.java'
--- CpogsPlugin/src/org/workcraft/plugins/cpog/CpogSettings.java 2014-07-25 14:53:23 +0000
+++ CpogsPlugin/src/org/workcraft/plugins/cpog/CpogSettings.java 2014-08-04 14:17:33 +0000
@@ -38,6 +38,7 @@
38 private static final String keyCircuitSize = prefix + ".circuitSize";38 private static final String keyCircuitSize = prefix + ".circuitSize";
39 private static final String keyClaspCommand = prefix + ".claspCommand";39 private static final String keyClaspCommand = prefix + ".claspCommand";
40 private static final String keyMinisatCommand = prefix + ".minisatCommand";40 private static final String keyMinisatCommand = prefix + ".minisatCommand";
41 private static final String keyProgrammerCommand = prefix + ".programmerCommand";
41 private static final String keyEspressoCommand = prefix + ".espressoCommand";42 private static final String keyEspressoCommand = prefix + ".espressoCommand";
42 private static final String keyAbcFolder = prefix + ".abcFolder";43 private static final String keyAbcFolder = prefix + ".abcFolder";
43 private static final String keyGatesLibrary = prefix + ".gatesLibrary";44 private static final String keyGatesLibrary = prefix + ".gatesLibrary";
@@ -46,6 +47,7 @@
46 private static final int defaultCircuitSize = 4;47 private static final int defaultCircuitSize = 4;
47 private static final String defaultClaspCommand = "clasp";48 private static final String defaultClaspCommand = "clasp";
48 private static final String defaultMinisatCommand = "minisat";49 private static final String defaultMinisatCommand = "minisat";
50 private static final String defaultProgrammerCommand = "programmer";
49 private static final String defaultEspressoCommand = "espresso";51 private static final String defaultEspressoCommand = "espresso";
50 private static final String defaultAbcFolder = "abc/";52 private static final String defaultAbcFolder = "abc/";
51 private static final String defaultGatesLibrary = "90nm.genlib";53 private static final String defaultGatesLibrary = "90nm.genlib";
@@ -54,6 +56,7 @@
54 private static int circuitSize = defaultCircuitSize;56 private static int circuitSize = defaultCircuitSize;
55 private static String claspCommand = defaultClaspCommand;57 private static String claspCommand = defaultClaspCommand;
56 private static String minisatCommand = defaultMinisatCommand;58 private static String minisatCommand = defaultMinisatCommand;
59 private static String programmerCommand = defaultProgrammerCommand;
57 private static String espressoCommand = defaultEspressoCommand;60 private static String espressoCommand = defaultEspressoCommand;
58 private static String abcFolder = defaultAbcFolder;61 private static String abcFolder = defaultAbcFolder;
59 private static String gatesLibrary = defaultGatesLibrary;62 private static String gatesLibrary = defaultGatesLibrary;
@@ -100,7 +103,17 @@
100 });103 });
101 104
102 properties.add(new PropertyDeclaration<CpogSettings, String>(105 properties.add(new PropertyDeclaration<CpogSettings, String>(
103 this, "Espresso solver", String.class) {106 this, "Programmer command", String.class) {
107 protected void setter(CpogSettings object, String value) {
108 CpogSettings.setProgrammerCommand(value);
109 }
110 protected String getter(CpogSettings object) {
111 return CpogSettings.getProgrammerCommand();
112 }
113 });
114
115 properties.add(new PropertyDeclaration<CpogSettings, String>(
116 this, "Espresso command", String.class) {
104 protected void setter(CpogSettings object, String value) {117 protected void setter(CpogSettings object, String value) {
105 CpogSettings.setEspressoCommand(value);118 CpogSettings.setEspressoCommand(value);
106 }119 }
@@ -136,6 +149,7 @@
136 setCircuitSize(config.getInt(keyCircuitSize, defaultCircuitSize));149 setCircuitSize(config.getInt(keyCircuitSize, defaultCircuitSize));
137 setClaspCommand(config.getString(keyClaspCommand, defaultClaspCommand));150 setClaspCommand(config.getString(keyClaspCommand, defaultClaspCommand));
138 setMinisatCommand(config.getString(keyMinisatCommand, defaultMinisatCommand));151 setMinisatCommand(config.getString(keyMinisatCommand, defaultMinisatCommand));
152 setProgrammerCommand(config.getString(keyProgrammerCommand, defaultProgrammerCommand));
139 setEspressoCommand(config.getString(keyEspressoCommand, defaultEspressoCommand));153 setEspressoCommand(config.getString(keyEspressoCommand, defaultEspressoCommand));
140 setAbcFolder(config.getString(keyAbcFolder, defaultAbcFolder));154 setAbcFolder(config.getString(keyAbcFolder, defaultAbcFolder));
141 setGatesLibrary(config.getString(keyGatesLibrary, defaultGatesLibrary));155 setGatesLibrary(config.getString(keyGatesLibrary, defaultGatesLibrary));
@@ -147,6 +161,7 @@
147 config.setInt(keyCircuitSize, getCircuitSize());161 config.setInt(keyCircuitSize, getCircuitSize());
148 config.set(keyClaspCommand, getClaspCommand());162 config.set(keyClaspCommand, getClaspCommand());
149 config.set(keyMinisatCommand, getMinisatCommand());163 config.set(keyMinisatCommand, getMinisatCommand());
164 config.set(keyProgrammerCommand, getProgrammerCommand());
150 config.set(keyEspressoCommand, getEspressoCommand());165 config.set(keyEspressoCommand, getEspressoCommand());
151 config.set(keyAbcFolder, getAbcFolder());166 config.set(keyAbcFolder, getAbcFolder());
152 config.set(keyGatesLibrary, getGatesLibrary());167 config.set(keyGatesLibrary, getGatesLibrary());
@@ -199,6 +214,14 @@
199 minisatCommand = value;214 minisatCommand = value;
200 }215 }
201216
217 public static String getProgrammerCommand() {
218 return programmerCommand;
219 }
220
221 public static void setProgrammerCommand(String value) {
222 programmerCommand = value;
223 }
224
202 public static String getEspressoCommand() {225 public static String getEspressoCommand() {
203 return espressoCommand;226 return espressoCommand;
204 }227 }
205228
=== modified file 'CpogsPlugin/src/org/workcraft/plugins/cpog/EncoderSettings.java'
--- CpogsPlugin/src/org/workcraft/plugins/cpog/EncoderSettings.java 2014-07-29 11:59:53 +0000
+++ CpogsPlugin/src/org/workcraft/plugins/cpog/EncoderSettings.java 2014-08-04 14:17:33 +0000
@@ -37,12 +37,6 @@
37 return choice;37 return choice;
38 }38 }
39 }39 }
40
41 public EncoderSettings(String espressoPath, String abcPath, String libPath) {
42 this.espressoPath = espressoPath;
43 this.abcPath = abcPath;
44 this.libPath = libPath;
45 }
4640
47 private int solutionNumber = 10, numPO,bits;41 private int solutionNumber = 10, numPO,bits;
48 private GenerationMode genMode = GenerationMode.OPTIMAL_ENCODING;42 private GenerationMode genMode = GenerationMode.OPTIMAL_ENCODING;
@@ -50,6 +44,12 @@
50 private String[] customEnc;44 private String[] customEnc;
51 private String espressoPath,abcPath,libPath;45 private String espressoPath,abcPath,libPath;
5246
47 public EncoderSettings(String espressoPath, String abcPath, String libPath) {
48 this.espressoPath = espressoPath;
49 this.abcPath = abcPath;
50 this.libPath = libPath;
51 }
52
53 public boolean isCpogSize() {53 public boolean isCpogSize() {
54 return cpogSize;54 return cpogSize;
55 }55 }
5656
=== modified file 'CpogsPlugin/src/org/workcraft/plugins/cpog/gui/EncoderConfigurationDialog.java'
--- CpogsPlugin/src/org/workcraft/plugins/cpog/gui/EncoderConfigurationDialog.java 2014-07-29 11:59:53 +0000
+++ CpogsPlugin/src/org/workcraft/plugins/cpog/gui/EncoderConfigurationDialog.java 2014-08-04 14:17:33 +0000
@@ -18,7 +18,6 @@
18import javax.swing.JComboBox;18import javax.swing.JComboBox;
19import javax.swing.JComponent;19import javax.swing.JComponent;
20import javax.swing.JDialog;20import javax.swing.JDialog;
21import javax.swing.JFrame;
22import javax.swing.JLabel;21import javax.swing.JLabel;
23import javax.swing.JOptionPane;22import javax.swing.JOptionPane;
24import javax.swing.JPanel;23import javax.swing.JPanel;
@@ -36,6 +35,7 @@
36import org.workcraft.plugins.shared.presets.PresetManager;35import org.workcraft.plugins.shared.presets.PresetManager;
37import org.workcraft.workspace.WorkspaceEntry;36import org.workcraft.workspace.WorkspaceEntry;
3837
38@SuppressWarnings("serial")
39public class EncoderConfigurationDialog extends JDialog {39public class EncoderConfigurationDialog extends JDialog {
40 40
41 private JLabel numberOfSolutionsLabel, contLabel,41 private JLabel numberOfSolutionsLabel, contLabel,
@@ -45,7 +45,6 @@
45 private JCheckBox verboseModeCheck, customEncodings,45 private JCheckBox verboseModeCheck, customEncodings,
46 contCheck, abcCheck;46 contCheck, abcCheck;
47 private JComboBox generationModeBox,OptimiseBox, guidedModeBox;47 private JComboBox generationModeBox,OptimiseBox, guidedModeBox;
48 private JFrame frame;
49 private JPanel generationPanel, buttonsPanel, content;48 private JPanel generationPanel, buttonsPanel, content;
50 private JButton saveButton, closeButton;49 private JButton saveButton, closeButton;
51 private JTextField numberOfSolutionsText, bitsText;50 private JTextField numberOfSolutionsText, bitsText;
@@ -56,13 +55,11 @@
56 private int m,bits;55 private int m,bits;
57 private JRadioButton slow,normal,fast;56 private JRadioButton slow,normal,fast;
58 private ButtonGroup group;57 private ButtonGroup group;
59 private JPanel speedPanel, encodingPanel;
60 58
61 // Core variables59 // Core variables
62 private CpogProgrammer encoder;60 private CpogProgrammer encoder;
63 private EncoderSettings settings;61 private EncoderSettings settings;
64 private WorkspaceEntry we;62 private WorkspaceEntry we;
65 private static boolean settingsPresent = false;
66 63
67 // sizes64 // sizes
68 Dimension dimensionLabel = new Dimension(270, 22);65 Dimension dimensionLabel = new Dimension(270, 22);
@@ -190,7 +187,6 @@
190 }187 }
191 188
192 // Set them on encoder189 // Set them on encoder
193 settingsPresent = true;
194 encoder = new CpogProgrammer(settings);190 encoder = new CpogProgrammer(settings);
195 191
196 // Execute programmer192 // Execute programmer
@@ -214,13 +210,12 @@
214 private void createGenerationPanel() {210 private void createGenerationPanel() {
215 setMinimumSize(new Dimension(600, 400));211 setMinimumSize(new Dimension(600, 400));
216 generationPanel = new JPanel(new SimpleFlowLayout());212 generationPanel = new JPanel(new SimpleFlowLayout());
217 JPanel numberOfSolutionsPanel = new JPanel (new FlowLayout(FlowLayout.LEFT, 3, 0));
218 VisualCPOG cpog = (VisualCPOG)(we.getModelEntry().getVisualModel());213 VisualCPOG cpog = (VisualCPOG)(we.getModelEntry().getVisualModel());
219 ArrayList<VisualScenario> scenarios = new ArrayList<VisualScenario>(cpog.getGroups());214 ArrayList<VisualScenario> scenarios = new ArrayList<VisualScenario>(cpog.getGroups());
220 m = scenarios.size();215 m = scenarios.size();
221 216
222 // ABC TOOL DISABLE FLAG217 // ABC TOOL DISABLE FLAG
223 abcCheck = new JCheckBox("",settings.isAbcFlag());218 abcCheck = new JCheckBox("", !settings.isAbcFlag());
224 abcLabel = new JLabel("Disable Abc Tool");219 abcLabel = new JLabel("Disable Abc Tool");
225 abcLabel.setPreferredSize(new Dimension(150, 15));220 abcLabel.setPreferredSize(new Dimension(150, 15));
226 abcCheck.addActionListener(new ActionListener() {221 abcCheck.addActionListener(new ActionListener() {
@@ -547,7 +542,6 @@
547 encodingTable.setEnabled(false);542 encodingTable.setEnabled(false);
548 encodingTable.setBackground(Color.LIGHT_GRAY);543 encodingTable.setBackground(Color.LIGHT_GRAY);
549 544
550
551 // VERBOSE MODE INSTANTIATION545 // VERBOSE MODE INSTANTIATION
552 verboseModeLabel = new JLabel("Verbose mode");546 verboseModeLabel = new JLabel("Verbose mode");
553 verboseModeLabel.setPreferredSize(dimensionLabel);547 verboseModeLabel.setPreferredSize(dimensionLabel);
554548
=== modified file 'WorkcraftCore/src/org/workcraft/gui/graph/tools/SelectionTool.java'
--- WorkcraftCore/src/org/workcraft/gui/graph/tools/SelectionTool.java 2014-08-01 09:23:25 +0000
+++ WorkcraftCore/src/org/workcraft/gui/graph/tools/SelectionTool.java 2014-08-04 14:17:33 +0000
@@ -63,7 +63,6 @@
63import org.workcraft.dom.visual.VisualGroup;63import org.workcraft.dom.visual.VisualGroup;
64import org.workcraft.dom.visual.VisualModel;64import org.workcraft.dom.visual.VisualModel;
65import org.workcraft.dom.visual.VisualModelTransformer;65import org.workcraft.dom.visual.VisualModelTransformer;
66import org.workcraft.dom.visual.VisualNode;
67import org.workcraft.dom.visual.VisualPage;66import org.workcraft.dom.visual.VisualPage;
68import org.workcraft.dom.visual.connections.DefaultAnchorGenerator;67import org.workcraft.dom.visual.connections.DefaultAnchorGenerator;
69import org.workcraft.exceptions.ArgumentException;68import org.workcraft.exceptions.ArgumentException;
@@ -81,8 +80,6 @@
81 static private final Color selectionBorderColor = new Color(200, 200, 200);80 static private final Color selectionBorderColor = new Color(200, 200, 200);
82 static private final Color selectionFillColor = new Color(99, 130, 191, 32);81 static private final Color selectionFillColor = new Color(99, 130, 191, 32);
83 static private final Color grayOutColor = Color.LIGHT_GRAY; 82 static private final Color grayOutColor = Color.LIGHT_GRAY;
84 // node for the MouseOver events
85 private VisualNode mouseOverNode = null;
86 83
87 protected JPanel interfacePanel;84 protected JPanel interfacePanel;
88 protected JPanel controlPanel;85 protected JPanel controlPanel;
@@ -235,29 +232,15 @@
235 rotatePanel.add(rotateCounterclockwiseButton);232 rotatePanel.add(rotateCounterclockwiseButton);
236 }233 }
237 234
238 private void resetState(GraphEditor editor) {
239 mouseOverNode = null;
240 }
241
242 private void updateState(GraphEditorMouseEvent e) {
243 Point2D mousePosition = e.getPosition();
244
245 VisualNode node = (VisualNode) HitMan.hitTestForSelection(mousePosition, e.getModel());
246 mouseOverNode = node;
247
248 }
249
250 @Override235 @Override
251 public void activated(final GraphEditor editor) {236 public void activated(final GraphEditor editor) {
252 super.activated(editor);237 super.activated(editor);
253 editor.getWorkspaceEntry().setCanModify(true);238 editor.getWorkspaceEntry().setCanModify(true);
254 resetState(editor);
255 }239 }
256240
257 @Override241 @Override
258 public void deactivated(GraphEditor editor) {242 public void deactivated(GraphEditor editor) {
259 editor.getModel().selectNone();243 editor.getModel().selectNone();
260 resetState(editor);
261 }244 }
262 245
263 @Override246 @Override
@@ -334,13 +317,7 @@
334 selected.addAll(model.boxHitTest(e.getStartPosition(), e.getPosition()));317 selected.addAll(model.boxHitTest(e.getStartPosition(), e.getPosition()));
335 selectionBox = selectionRect(e.getStartPosition(), e.getPosition());318 selectionBox = selectionRect(e.getStartPosition(), e.getPosition());
336 e.getEditor().repaint();319 e.getEditor().repaint();
337 } else {
338 // "mouse over" events
339
340 }320 }
341
342 updateState(e);
343
344 }321 }
345322
346 @Override323 @Override

Subscribers

People subscribed via source and target branches