Merge lp:~tapaal-contributor/tapaal/add-export-options into lp:tapaal
- add-export-options
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Jiri Srba |
Approved revision: | 1120 |
Merged at revision: | 1114 |
Proposed branch: | lp:~tapaal-contributor/tapaal/add-export-options |
Merge into: | lp:tapaal |
Diff against target: |
497 lines (+176/-125) 6 files modified
src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java (+9/-9) src/pipe/gui/Export.java (+114/-83) src/pipe/gui/ExportBatchDialog.java (+46/-26) src/pipe/gui/GuiFrame.java (+4/-4) src/pipe/gui/widgets/QueryDialog.java (+2/-2) src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java (+1/-1) |
To merge this branch: | bzr merge lp:~tapaal-contributor/tapaal/add-export-options |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jiri Srba | Approve | ||
Lena Ernstsen (community) | Needs Resubmitting | ||
Kenneth Yrke Jørgensen | code | Approve | |
Review via email: mp+394850@code.launchpad.net |
Commit message
Added different export formats in the batch dialog
Description of the change
Added the options to export to verifyTAPN and verifyDTAPN by selecting the engine in a drop down menu
Jiri Srba (srba) wrote : | # |
Two other things to fix:
1. when exporting to verifytapn and verifydtapn and model that has more than one query, it creates a single query.q file that does not parse by the engines (each query needs to get a separate query file, number them for example as query-1.q query-2.q etc).
2. In the batch export dropdown menu, add "model and queries" for the verifytapn and verifydtapn description.
3. The Export menu name should be: "Batch export of models and queries"
- 1120. By Lena Ernstsen
-
Fixed names and query files + cleaned up
Lena Ernstsen (lsaid) : | # |
Lena Ernstsen (lsaid) wrote : | # |
Fixed code styling and naming of elements in the UI. Also changed the way the queries are saved, so each query gets a query file
Jiri Srba (srba) wrote : | # |
Tested and works very well.
Preview Diff
1 | === modified file 'src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java' |
2 | --- src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java 2020-08-06 13:48:04 +0000 |
3 | +++ src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java 2020-12-14 17:15:10 +0000 |
4 | @@ -30,10 +30,10 @@ |
5 | } |
6 | |
7 | |
8 | - return export(model, query, modelFile, queryFile, null, lens); |
9 | + return export(model, query, modelFile, queryFile, lens); |
10 | } |
11 | |
12 | - public ExportedVerifyTAPNModel export(TimedArcPetriNet model, TAPNQuery query, File modelFile, File queryFile, pipe.dataLayer.TAPNQuery dataLayerQuery, TabContent.TAPNLens lens) { |
13 | + public ExportedVerifyTAPNModel export(TimedArcPetriNet model, TAPNQuery query, File modelFile, File queryFile, TabContent.TAPNLens lens) { |
14 | if (modelFile == null || queryFile == null) |
15 | return null; |
16 | |
17 | @@ -44,16 +44,16 @@ |
18 | modelStream.close(); |
19 | |
20 | PrintStream queryStream = new PrintStream(queryFile); |
21 | - if (query.getCategory() == QueryCategory.CTL){ |
22 | - CTLQueryVisitor XMLVisitor = new CTLQueryVisitor(); |
23 | - queryStream.append(XMLVisitor.getXMLQueryFor(query.getProperty(), null)); |
24 | - } else if (lens != null && lens.isGame()) { |
25 | - queryStream.append("control: " + query.getProperty().toString()); |
26 | + if (query == null) { |
27 | + throw new FileNotFoundException(null); |
28 | + } else if (query.getCategory() == QueryCategory.CTL) { |
29 | + CTLQueryVisitor XMLVisitor = new CTLQueryVisitor(); |
30 | + queryStream.append(XMLVisitor.getXMLQueryFor(query.getProperty(), null)); |
31 | + } else if (lens != null && lens.isGame()) { |
32 | + queryStream.append("control: " + query.getProperty().toString()); |
33 | } else { |
34 | queryStream.append(query.getProperty().toString()); |
35 | } |
36 | - |
37 | - |
38 | queryStream.close(); |
39 | } catch(FileNotFoundException e) { |
40 | System.err.append("An error occurred while exporting the model to verifytapn. Verification cancelled."); |
41 | |
42 | === modified file 'src/pipe/gui/Export.java' |
43 | --- src/pipe/gui/Export.java 2020-04-18 13:45:34 +0000 |
44 | +++ src/pipe/gui/Export.java 2020-12-14 17:15:10 +0000 |
45 | @@ -19,7 +19,8 @@ |
46 | import java.io.FileOutputStream; |
47 | import java.io.IOException; |
48 | import java.io.PrintStream; |
49 | -import java.util.Iterator; |
50 | +import java.lang.reflect.Array; |
51 | +import java.util.*; |
52 | |
53 | import javax.imageio.ImageIO; |
54 | import javax.imageio.ImageWriter; |
55 | @@ -33,6 +34,13 @@ |
56 | import javax.xml.transform.TransformerConfigurationException; |
57 | import javax.xml.transform.TransformerException; |
58 | |
59 | +import dk.aau.cs.model.tapn.TimedArcPetriNet; |
60 | +import dk.aau.cs.util.Tuple; |
61 | +import dk.aau.cs.verification.VerifyTAPN.ExportedVerifyTAPNModel; |
62 | +import dk.aau.cs.verification.VerifyTAPN.VerifyPNExporter; |
63 | +import dk.aau.cs.verification.VerifyTAPN.VerifyTAPN; |
64 | +import dk.aau.cs.verification.VerifyTAPN.VerifyTAPNExporter; |
65 | +import org.jetbrains.annotations.NotNull; |
66 | import org.w3c.dom.DOMException; |
67 | |
68 | import dk.aau.cs.TCTL.visitors.CTLQueryVisitor; |
69 | @@ -49,6 +57,7 @@ |
70 | import pipe.dataLayer.NetWriter; |
71 | import pipe.dataLayer.TAPNQuery; |
72 | import pipe.gui.canvas.DrawingSurfaceImpl; |
73 | +import pipe.gui.widgets.QueryDialog; |
74 | import pipe.gui.widgets.filebrowser.FileBrowser; |
75 | |
76 | /** |
77 | @@ -58,69 +67,92 @@ |
78 | */ |
79 | public class Export { |
80 | |
81 | - public static final int PNG = 1; |
82 | - public static final int POSTSCRIPT = 2; |
83 | - public static final int PRINTER = 3; |
84 | - public static final int TIKZ = 5; |
85 | - public static final int PNML = 6; |
86 | - public static final int QUERY = 7; |
87 | - |
88 | - private static void toPnml(DrawingSurfaceImpl g, String filename) |
89 | - throws NullPointerException, DOMException, TransformerConfigurationException, |
90 | - IOException, ParserConfigurationException, TransformerException { |
91 | - TabContent currentTab = CreateGui.getCurrentTab(); |
92 | - NetworkMarking currentMarking = null; |
93 | - if(CreateGui.getCurrentTab().isInAnimationMode()){ |
94 | - currentMarking = currentTab.network().marking(); |
95 | - currentTab.network().setMarking(CreateGui.getAnimator().getInitialMarking()); |
96 | - } |
97 | - |
98 | - NetWriter tapnWriter = new PNMLWriter( |
99 | - currentTab.network(), |
100 | - currentTab.getGuiModels() |
101 | - ); |
102 | - |
103 | - tapnWriter.savePNML(new File(filename)); |
104 | - |
105 | - if(CreateGui.getCurrentTab().isInAnimationMode()){ |
106 | - currentTab.network().setMarking(currentMarking); |
107 | - } |
108 | - } |
109 | - |
110 | - private static void toQueryXML(String filename){ |
111 | - toQueryXML(CreateGui.getCurrentTab().network(), filename, CreateGui.getCurrentTab().queries()); |
112 | - |
113 | - } |
114 | - |
115 | - public static void toQueryXML(TimedArcPetriNetNetwork network, String filename, Iterable<TAPNQuery> queries){ |
116 | - try{ |
117 | - ITAPNComposer composer = new TAPNComposer(new MessengerImpl(), true); |
118 | - NameMapping mapping = composer.transformModel(network).value2(); |
119 | - Iterator<TAPNQuery> queryIterator = queries.iterator(); |
120 | - PrintStream queryStream = new PrintStream(filename); |
121 | - CTLQueryVisitor XMLVisitor = new CTLQueryVisitor(); |
122 | - |
123 | - while(queryIterator.hasNext()){ |
124 | - TAPNQuery clonedQuery = queryIterator.next().copy(); |
125 | - |
126 | - // Attempt to parse and possibly transform the string query using the manual edit parser |
127 | - TCTLAbstractProperty newProperty; |
128 | - try { |
129 | - newProperty = TAPAALCTLQueryParser.parse(clonedQuery.getProperty().toString()); |
130 | - } catch (Throwable ex) { |
131 | - newProperty = clonedQuery == null ? new TCTLPathPlaceHolder() : clonedQuery.getProperty(); |
132 | - } |
133 | - newProperty.accept(new RenameAllPlacesVisitor(mapping), null); |
134 | - newProperty.accept(new RenameAllTransitionsVisitor(mapping), null); |
135 | - XMLVisitor.buildXMLQuery(newProperty, clonedQuery.getName()); |
136 | - } |
137 | - queryStream.print(XMLVisitor.getFormatted()); |
138 | - |
139 | - queryStream.close(); |
140 | - } catch(FileNotFoundException e) { |
141 | - System.err.append("An error occurred while exporting the queries to XML."); |
142 | - } |
143 | - } |
144 | + public static final int PNG = 1; |
145 | + public static final int POSTSCRIPT = 2; |
146 | + public static final int PRINTER = 3; |
147 | + public static final int TIKZ = 5; |
148 | + public static final int PNML = 6; |
149 | + public static final int QUERY = 7; |
150 | + |
151 | + private static void toPnml(DrawingSurfaceImpl g, String filename) |
152 | + throws NullPointerException, DOMException, TransformerConfigurationException, |
153 | + IOException, ParserConfigurationException, TransformerException { |
154 | + TabContent currentTab = CreateGui.getCurrentTab(); |
155 | + NetworkMarking currentMarking = null; |
156 | + if (CreateGui.getCurrentTab().isInAnimationMode()) { |
157 | + currentMarking = currentTab.network().marking(); |
158 | + currentTab.network().setMarking(CreateGui.getAnimator().getInitialMarking()); |
159 | + } |
160 | + |
161 | + NetWriter tapnWriter = new PNMLWriter( |
162 | + currentTab.network(), |
163 | + currentTab.getGuiModels() |
164 | + ); |
165 | + |
166 | + tapnWriter.savePNML(new File(filename)); |
167 | + |
168 | + if (CreateGui.getCurrentTab().isInAnimationMode()) { |
169 | + currentTab.network().setMarking(currentMarking); |
170 | + } |
171 | + } |
172 | + |
173 | + private static void toQueryXML(String filename) { |
174 | + toQueryXML(CreateGui.getCurrentTab().network(), filename, CreateGui.getCurrentTab().queries()); |
175 | + |
176 | + } |
177 | + |
178 | + public static void toQueryXML(TimedArcPetriNetNetwork network, String filename, Iterable<TAPNQuery> queries) { |
179 | + try { |
180 | + ITAPNComposer composer = new TAPNComposer(new MessengerImpl(), true); |
181 | + NameMapping mapping = composer.transformModel(network).value2(); |
182 | + Iterator<TAPNQuery> queryIterator = queries.iterator(); |
183 | + PrintStream queryStream = new PrintStream(filename); |
184 | + CTLQueryVisitor XMLVisitor = new CTLQueryVisitor(); |
185 | + |
186 | + while (queryIterator.hasNext()) { |
187 | + TAPNQuery clonedQuery = queryIterator.next().copy(); |
188 | + |
189 | + // Attempt to parse and possibly transform the string query using the manual edit parser |
190 | + TCTLAbstractProperty newProperty; |
191 | + try { |
192 | + newProperty = TAPAALCTLQueryParser.parse(clonedQuery.getProperty().toString()); |
193 | + } catch (Throwable ex) { |
194 | + newProperty = clonedQuery == null ? new TCTLPathPlaceHolder() : clonedQuery.getProperty(); |
195 | + } |
196 | + newProperty.accept(new RenameAllPlacesVisitor(mapping), null); |
197 | + newProperty.accept(new RenameAllTransitionsVisitor(mapping), null); |
198 | + XMLVisitor.buildXMLQuery(newProperty, clonedQuery.getName()); |
199 | + } |
200 | + queryStream.print(XMLVisitor.getFormatted()); |
201 | + |
202 | + queryStream.close(); |
203 | + } catch (FileNotFoundException e) { |
204 | + System.err.append("An error occurred while exporting the queries to XML."); |
205 | + } |
206 | + } |
207 | + |
208 | + public static void toVerifyTAPN(TimedArcPetriNetNetwork network, Iterable<TAPNQuery> queries, String modelFile, String queryFile, boolean isDTAPN) { |
209 | + VerifyTAPNExporter exporter = new VerifyTAPNExporter(); |
210 | + |
211 | + ITAPNComposer composer = new TAPNComposer(new MessengerImpl(), false); |
212 | + Tuple<TimedArcPetriNet, NameMapping> transformedModel = composer.transformModel(network); |
213 | + TimedArcPetriNet model = transformedModel.value1(); |
214 | + |
215 | + TabContent.TAPNLens lens = new TabContent.TAPNLens(!model.isUntimed(), model.hasUncontrollableTransitions()); |
216 | + |
217 | + RenameAllPlacesVisitor visitor = new RenameAllPlacesVisitor(transformedModel.value2()); |
218 | + int i = 0; |
219 | + for (TAPNQuery query : queries) { |
220 | + query.getProperty().accept(visitor, null); |
221 | + i++; |
222 | + |
223 | + if (lens.isGame() && isDTAPN) { |
224 | + exporter.export(model, new dk.aau.cs.model.tapn.TAPNQuery(query.getProperty(), 0), new File(modelFile), new File(queryFile + i + ".q"), lens); |
225 | + } else { |
226 | + exporter.export(model, new dk.aau.cs.model.tapn.TAPNQuery(query.getProperty(), 0), new File(modelFile), new File(queryFile + i + ".q"), new TabContent.TAPNLens(true, false)); |
227 | + } |
228 | + } |
229 | + } |
230 | |
231 | public static void toPostScript(Object g, String filename) |
232 | throws PrintException, IOException { |
233 | @@ -187,24 +219,23 @@ |
234 | // dot is for extension |
235 | filename = filename.substring(0, dotpos + 1); |
236 | switch (format) { |
237 | - case PNG: |
238 | - filename += "png"; |
239 | - break; |
240 | - case POSTSCRIPT: |
241 | - filename += "ps"; |
242 | - break; |
243 | - case TIKZ: |
244 | - filename += "tex"; |
245 | - break; |
246 | - case PNML: |
247 | - filename += "pnml"; |
248 | - break; |
249 | - case QUERY: |
250 | - filename = filename.substring(0, dotpos); |
251 | - filename += "-queries.xml"; |
252 | - break; |
253 | - } |
254 | - |
255 | + case PNG: |
256 | + filename += "png"; |
257 | + break; |
258 | + case POSTSCRIPT: |
259 | + filename += "ps"; |
260 | + break; |
261 | + case TIKZ: |
262 | + filename += "tex"; |
263 | + break; |
264 | + case PNML: |
265 | + filename += "pnml"; |
266 | + break; |
267 | + case QUERY: |
268 | + filename = filename.substring(0, dotpos); |
269 | + filename += "-queries.xml"; |
270 | + break; |
271 | + } |
272 | } |
273 | } |
274 | |
275 | @@ -266,7 +297,7 @@ |
276 | } |
277 | break; |
278 | } |
279 | - } catch (Exception e) { |
280 | + } catch (Exception e) { |
281 | // There was some problem with the action |
282 | JOptionPane.showMessageDialog(CreateGui.getApp(), |
283 | "There were errors performing the requested action:\n" + e, |
284 | |
285 | === modified file 'src/pipe/gui/ExportBatchDialog.java' |
286 | --- src/pipe/gui/ExportBatchDialog.java 2020-07-20 08:09:36 +0000 |
287 | +++ src/pipe/gui/ExportBatchDialog.java 2020-12-14 17:15:10 +0000 |
288 | @@ -24,19 +24,7 @@ |
289 | import java.util.Comparator; |
290 | import java.util.HashMap; |
291 | import java.util.List; |
292 | -import javax.swing.BorderFactory; |
293 | -import javax.swing.DefaultListModel; |
294 | -import javax.swing.JButton; |
295 | -import javax.swing.JCheckBox; |
296 | -import javax.swing.JDialog; |
297 | -import javax.swing.JLabel; |
298 | -import javax.swing.JList; |
299 | -import javax.swing.JPanel; |
300 | -import javax.swing.JProgressBar; |
301 | -import javax.swing.JScrollPane; |
302 | -import javax.swing.JTable; |
303 | -import javax.swing.JTextField; |
304 | -import javax.swing.ListSelectionModel; |
305 | +import javax.swing.*; |
306 | import javax.swing.border.Border; |
307 | import javax.swing.event.DocumentEvent; |
308 | import javax.swing.event.DocumentListener; |
309 | @@ -46,6 +34,7 @@ |
310 | import javax.xml.parsers.ParserConfigurationException; |
311 | import javax.xml.transform.TransformerConfigurationException; |
312 | import javax.xml.transform.TransformerException; |
313 | + |
314 | import org.w3c.dom.DOMException; |
315 | import dk.aau.cs.gui.FileNameCellRenderer; |
316 | import dk.aau.cs.gui.components.ExportBatchResultTableModel; |
317 | @@ -55,6 +44,7 @@ |
318 | import dk.aau.cs.model.tapn.TimedArcPetriNet; |
319 | import dk.aau.cs.util.StringComparator; |
320 | import pipe.dataLayer.DataLayer; |
321 | +import pipe.dataLayer.TAPNQuery; |
322 | import pipe.gui.widgets.filebrowser.FileBrowser; |
323 | |
324 | public class ExportBatchDialog extends JDialog { |
325 | @@ -62,8 +52,9 @@ |
326 | private final static String TOOL_TIP_AddFilesButton = "Press to add nets to batch export"; |
327 | private final static String TOOL_TIP_RemoveFilesButton = "Press to remove the currently selected nets"; |
328 | private final static String TOOL_TIP_ClearFilesButton = "Press to remove all nets from list"; |
329 | - private final static String TOOL_TIP_ExportFilesButton = "Press to export all nets in PNML and XML format"; |
330 | - private final static String TOOL_TIP_UniqueQueryNamesCheckbox = "Give queries unique names when exporting"; |
331 | + private final static String TOOL_TIP_ExportFilesButton = "Press to export all nets in the selected format"; |
332 | + private final static String TOOL_TIP_SelectedEngineComboBox = "Select the engine in which the format of the net should be compatible with"; |
333 | + private final static String TOOL_TIP_UniqueQueryNamesCheckbox = "Give queries unique names when exporting"; |
334 | private final static String NAME_SuccesString = "Succeeded"; |
335 | private final static String NAME_SuccesStringOrphanTransitionsRemoved = "Succeeded, orphan transitions removed"; |
336 | private final static String NAME_FailStringFolderExists = "Failed as the subfolder already exists"; |
337 | @@ -83,7 +74,8 @@ |
338 | private final List<File> files = new ArrayList<File>(); |
339 | private String lastExportPath; |
340 | private String lastSelectPath; |
341 | - private JCheckBox uniqueQueryNames; |
342 | + private JCheckBox uniqueQueryNames; |
343 | + private JComboBox selectedEngine; |
344 | private File destinationFile; |
345 | private ExportBatchResultTableModel tableModel; |
346 | |
347 | @@ -243,14 +235,28 @@ |
348 | enableButtons(); |
349 | }); |
350 | chooserPanel.add(destinationPathSelector, gbc); |
351 | - |
352 | + |
353 | + final String[] options = new String[] { |
354 | + "PNML and XML queries (verifypn)", |
355 | + "Continuous Engine model and queries (verifytapn)", |
356 | + "Discrete Engine model and queries (verifydtapn)" |
357 | + }; |
358 | + selectedEngine = new JComboBox(options); |
359 | + selectedEngine.setToolTipText(TOOL_TIP_SelectedEngineComboBox); |
360 | + |
361 | + gbc = new GridBagConstraints(); |
362 | + gbc.gridx = 0; |
363 | + gbc.gridy = 1; |
364 | + gbc.anchor = GridBagConstraints.NORTHWEST; |
365 | + gbc.insets = new Insets(10, 0, 0, 0); |
366 | + chooserPanel.add(selectedEngine, gbc); |
367 | |
368 | uniqueQueryNames = new JCheckBox("Use unique query names", true); |
369 | uniqueQueryNames.setToolTipText(TOOL_TIP_UniqueQueryNamesCheckbox); |
370 | |
371 | gbc = new GridBagConstraints(); |
372 | gbc.gridx = 0; |
373 | - gbc.gridy = 1; |
374 | + gbc.gridy = 2; |
375 | gbc.anchor = GridBagConstraints.NORTHWEST; |
376 | gbc.insets = new Insets(10, 0, 0, 0); |
377 | chooserPanel.add(uniqueQueryNames, gbc); |
378 | @@ -459,7 +465,7 @@ |
379 | } |
380 | else return; |
381 | } |
382 | - |
383 | + |
384 | private void exportFiles() { |
385 | //loading bar |
386 | initProgressBar(); |
387 | @@ -509,13 +515,27 @@ |
388 | } |
389 | |
390 | private void exportModel(File file, Path path) throws Exception { |
391 | - LoadedModel loadedModel = loader.load(file); |
392 | - exportPNML(path, loadedModel); |
393 | - if(!uniqueQueryNames.isSelected()) |
394 | - Export.toQueryXML(loadedModel.network(), path.toString() + "/query.xml", loadedModel.queries()); |
395 | - else { |
396 | - Export.toQueryXML(loadedModel.network(), path.toString() + "/query.xml", renameQueries(file.getName(), loadedModel.queries())); |
397 | - } |
398 | + LoadedModel loadedModel = loader.load(file); |
399 | + Collection<TAPNQuery> queries; |
400 | + |
401 | + if (uniqueQueryNames.isSelected()) { |
402 | + queries = renameQueries(file.getName(), loadedModel.queries()); |
403 | + } else { |
404 | + queries = loadedModel.queries(); |
405 | + } |
406 | + |
407 | + switch (selectedEngine.getSelectedIndex()) { |
408 | + case 0: |
409 | + exportPNML(path, loadedModel); |
410 | + Export.toQueryXML(loadedModel.network(), path.toString() + "/query.xml", queries); |
411 | + break; |
412 | + case 1: |
413 | + Export.toVerifyTAPN(loadedModel.network(), queries, path.toString() + "/model.xml", path.toString() + "/query", false); |
414 | + break; |
415 | + case 2: |
416 | + Export.toVerifyTAPN(loadedModel.network(), queries, path.toString() + "/model.xml", path.toString() + "/query", true); |
417 | + break; |
418 | + } |
419 | } |
420 | |
421 | private void exportPNML(Path path, LoadedModel loadedModel) throws DOMException, TransformerConfigurationException, IOException, ParserConfigurationException, TransformerException { |
422 | |
423 | === modified file 'src/pipe/gui/GuiFrame.java' |
424 | --- src/pipe/gui/GuiFrame.java 2020-10-30 12:24:35 +0000 |
425 | +++ src/pipe/gui/GuiFrame.java 2020-12-14 17:15:10 +0000 |
426 | @@ -18,8 +18,10 @@ |
427 | |
428 | import com.sun.jna.Platform; |
429 | import dk.aau.cs.gui.*; |
430 | +import dk.aau.cs.model.tapn.TimedArcPetriNet; |
431 | import dk.aau.cs.util.JavaUtil; |
432 | import dk.aau.cs.verification.VerifyTAPN.VerifyPN; |
433 | +import dk.aau.cs.verification.VerifyTAPN.VerifyTAPNExporter; |
434 | import net.tapaal.Preferences; |
435 | import net.tapaal.TAPAAL; |
436 | import net.tapaal.helpers.Reference.MutableReference; |
437 | @@ -27,6 +29,7 @@ |
438 | import net.tapaal.swinghelpers.ExtendedJTabbedPane; |
439 | import net.tapaal.swinghelpers.ToggleButtonWithoutText; |
440 | import org.jetbrains.annotations.NotNull; |
441 | +import pipe.dataLayer.TAPNQuery; |
442 | import pipe.gui.Pipe.ElementType; |
443 | import pipe.gui.action.GuiAction; |
444 | import pipe.gui.widgets.WorkflowDialog; |
445 | @@ -173,7 +176,7 @@ |
446 | currentTab.ifPresent(TabContentActions::importTrace); |
447 | } |
448 | }; |
449 | - private final GuiAction exportBatchAction = new GuiAction("Batch Export to PNML and XML Queries", "Export multiple nets into PNML together with the XML queries, while removing the timing information", KeyStroke.getKeyStroke('D', (shortcutkey + InputEvent.SHIFT_DOWN_MASK))) { |
450 | + private final GuiAction exportBatchAction = new GuiAction("Batch Export of model and queries", "Export multiple nets into PNML together with the XML queries, while removing the timing information", KeyStroke.getKeyStroke('D', (shortcutkey + InputEvent.SHIFT_DOWN_MASK))) { |
451 | public void actionPerformed(ActionEvent e) { |
452 | ExportBatchDialog.ShowExportBatchDialog(); |
453 | } |
454 | @@ -1380,13 +1383,10 @@ |
455 | |
456 | exportMenu.add(exportPSAction); |
457 | |
458 | - |
459 | exportMenu.add(exportToTikZAction); |
460 | |
461 | - |
462 | exportMenu.add(exportToPNMLAction); |
463 | |
464 | - |
465 | exportMenu.add(exportToXMLAction); |
466 | |
467 | exportMenu.add(exportBatchAction); |
468 | |
469 | === modified file 'src/pipe/gui/widgets/QueryDialog.java' |
470 | --- src/pipe/gui/widgets/QueryDialog.java 2020-11-06 13:15:11 +0000 |
471 | +++ src/pipe/gui/widgets/QueryDialog.java 2020-12-14 17:15:10 +0000 |
472 | @@ -3049,10 +3049,10 @@ |
473 | } |
474 | if(reduction == ReductionOption.VerifyTAPN || reduction == ReductionOption.VerifyTAPNdiscreteVerification) { |
475 | VerifyTAPNExporter exporter = new VerifyTAPNExporter(); |
476 | - exporter.export(transformedModel.value1(), clonedQuery, new File(xmlFile), new File(queryFile), tapnQuery, lens); |
477 | + exporter.export(transformedModel.value1(), clonedQuery, new File(xmlFile), new File(queryFile), lens); |
478 | } else if(reduction == ReductionOption.VerifyPN){ |
479 | VerifyPNExporter exporter = new VerifyPNExporter(); |
480 | - exporter.export(transformedModel.value1(), clonedQuery, new File(xmlFile), new File(queryFile), tapnQuery, lens); |
481 | + exporter.export(transformedModel.value1(), clonedQuery, new File(xmlFile), new File(queryFile), lens); |
482 | } else { |
483 | UppaalExporter exporter = new UppaalExporter(); |
484 | try { |
485 | |
486 | === modified file 'src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java' |
487 | --- src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java 2020-05-05 18:15:47 +0000 |
488 | +++ src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java 2020-12-14 17:15:10 +0000 |
489 | @@ -29,7 +29,7 @@ |
490 | //if(path == null) path = lastPath; |
491 | |
492 | this.ext = ext; |
493 | - this.optionalExt = optionalExt; |
494 | + this.optionalExt = optionalExt; |
495 | //fc.setDirectory(path); |
496 | |
497 | // Setup filter if extension specified |
I don't seen any major issues, but I added a few code styling comments that could be fixed.