Merge lp:~tapaal-contributor/tapaal/ltl-icon-selection-1997234 into lp:tapaal

Proposed by Lena Ernstsen
Status: Superseded
Proposed branch: lp:~tapaal-contributor/tapaal/ltl-icon-selection-1997234
Merge into: lp:tapaal
Diff against target: 493 lines (+145/-47) (has conflicts)
15 files modified
src/dk/aau/cs/model/tapn/TAPNQuery.java (+8/-8)
src/dk/aau/cs/verification/QueryResult.java (+2/-0)
src/dk/aau/cs/verification/QueryType.java (+3/-1)
src/dk/aau/cs/verification/Stats.java (+3/-3)
src/dk/aau/cs/verification/VerificationResult.java (+16/-0)
src/dk/aau/cs/verification/VerifyTAPN/VerifyPN.java (+0/-1)
src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java (+22/-20)
src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNIconSelector.java (+28/-8)
src/net/tapaal/Preferences.java (+17/-0)
src/net/tapaal/TAPAAL.java (+1/-1)
src/pipe/gui/GuiFrameController.java (+4/-4)
src/pipe/gui/Pipe.java (+1/-1)
src/pipe/gui/RunVerification.java (+10/-0)
src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java (+10/-0)
src/pipe/gui/widgets/filebrowser/NativeFileBrowserFallback.java (+20/-0)
Text conflict in src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java
Text conflict in src/net/tapaal/Preferences.java
Text conflict in src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java
Text conflict in src/pipe/gui/widgets/filebrowser/NativeFileBrowserFallback.java
To merge this branch: bzr merge lp:~tapaal-contributor/tapaal/ltl-icon-selection-1997234
Reviewer Review Type Date Requested Status
TAPAAL Reviewers Pending
Review via email: mp+435359@code.launchpad.net

This proposal has been superseded by a proposal from 2023-01-09.

Commit message

Considers LTL nodes when selecting icons for verification

To post a comment you must log in.
1177. By Lena Ernstsen

Reverted change to avoid NPE

1178. By Lena Ernstsen

Added 'show raw query results' button for state equation results

1179. By Lena Ernstsen

Fixed wrong statistics for CTL queries

Unmerged revisions

1179. By Lena Ernstsen

Fixed wrong statistics for CTL queries

1178. By Lena Ernstsen

Added 'show raw query results' button for state equation results

1177. By Lena Ernstsen

Reverted change to avoid NPE

1176. By Lena Ernstsen

Icon selection now considers LTL nodes

1175. By <email address hidden>

increased version to 3.9.3 and min version of verifypn to 4.2.2

1174. By <email address hidden>

merged in lp:~tapaal-contributor/tapaal/update-ltl-support-3.9 fixing bug #1983371

1173. By <email address hidden>

merged in lp:~tapaal-contributor/tapaal/save-file-browser-location-3.9 fixing the remembering of a location when opening a file

1172. By Jiri Srba

merged in a fix for resting LTL queries

1171. By Jiri Srba

merged in a bug fix for LTL manual edit of queries ( E .. and .. and ...) did not allow manual edit and removing the last conjunct

1170. By Jiri Srba

merged in lp:~yrke/tapaal/fix1976494 fixing a problem with copying components that contain environmental transitions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/dk/aau/cs/model/tapn/TAPNQuery.java'
--- src/dk/aau/cs/model/tapn/TAPNQuery.java 2016-04-14 20:09:47 +0000
+++ src/dk/aau/cs/model/tapn/TAPNQuery.java 2023-01-09 11:13:50 +0000
@@ -1,9 +1,6 @@
1package dk.aau.cs.model.tapn;1package dk.aau.cs.model.tapn;
22
3import dk.aau.cs.TCTL.TCTLAFNode;3import dk.aau.cs.TCTL.*;
4import dk.aau.cs.TCTL.TCTLAbstractProperty;
5import dk.aau.cs.TCTL.TCTLEFNode;
6import dk.aau.cs.TCTL.TCTLEGNode;
7import dk.aau.cs.TCTL.visitors.HasDeadlockVisitor;4import dk.aau.cs.TCTL.visitors.HasDeadlockVisitor;
8import dk.aau.cs.verification.QueryType;5import dk.aau.cs.verification.QueryType;
9import pipe.dataLayer.TAPNQuery.QueryCategory;6import pipe.dataLayer.TAPNQuery.QueryCategory;
@@ -27,10 +24,13 @@
27 }24 }
28 25
29 public QueryType queryType(){26 public QueryType queryType(){
30 if(property instanceof TCTLEFNode) return QueryType.EF;27 if (property instanceof TCTLEFNode) return QueryType.EF;
31 else if(property instanceof TCTLEGNode) return QueryType.EG;28 else if (property instanceof TCTLEGNode) return QueryType.EG;
32 else if(property instanceof TCTLAFNode) return QueryType.AF;29 else if (property instanceof TCTLAFNode) return QueryType.AF;
33 else return QueryType.AG;30 else if (property instanceof TCTLAGNode) return QueryType.AG;
31 else if (property instanceof LTLANode) return QueryType.A;
32 else if (property instanceof LTLENode) return QueryType.E;
33 else return null;
34 }34 }
35 35
36 public boolean hasDeadlock(){36 public boolean hasDeadlock(){
3737
=== modified file 'src/dk/aau/cs/verification/QueryResult.java'
--- src/dk/aau/cs/verification/QueryResult.java 2020-07-13 13:58:47 +0000
+++ src/dk/aau/cs/verification/QueryResult.java 2023-01-09 11:13:50 +0000
@@ -61,6 +61,8 @@
61 || (queryType().equals(QueryType.EG)) // && !isQuerySatisfied()) 61 || (queryType().equals(QueryType.EG)) // && !isQuerySatisfied())
62 || (queryType().equals(QueryType.AF)) // && isQuerySatisfied())62 || (queryType().equals(QueryType.AF)) // && isQuerySatisfied())
63 || (queryType().equals(QueryType.AG) && isQuerySatisfied())63 || (queryType().equals(QueryType.AG) && isQuerySatisfied())
64 || (queryType().equals(QueryType.A))
65 || (queryType().equals(QueryType.E))
64 || (hasDeadlock() && 66 || (hasDeadlock() &&
65 (!isQuerySatisfied() && queryType().equals(QueryType.EF)) || 67 (!isQuerySatisfied() && queryType().equals(QueryType.EF)) ||
66 (isQuerySatisfied() && queryType().equals(QueryType.AG))68 (isQuerySatisfied() && queryType().equals(QueryType.AG))
6769
=== modified file 'src/dk/aau/cs/verification/QueryType.java'
--- src/dk/aau/cs/verification/QueryType.java 2011-05-21 13:00:05 +0000
+++ src/dk/aau/cs/verification/QueryType.java 2023-01-09 11:13:50 +0000
@@ -4,5 +4,7 @@
4 EF,4 EF,
5 EG,5 EG,
6 AF,6 AF,
7 AG7 AG,
8 A,
9 E
8}10}
911
=== modified file 'src/dk/aau/cs/verification/Stats.java'
--- src/dk/aau/cs/verification/Stats.java 2020-07-13 13:58:47 +0000
+++ src/dk/aau/cs/verification/Stats.java 2023-01-09 11:13:50 +0000
@@ -137,15 +137,15 @@
137 @Override137 @Override
138 public String toString() {138 public String toString() {
139 StringBuilder buffer = new StringBuilder();139 StringBuilder buffer = new StringBuilder();
140 buffer.append("Discovered markings: ");140 buffer.append("Discovered configurations: ");
141 buffer.append(discovered);141 buffer.append(discovered);
142 buffer.append(System.getProperty("line.separator"));142 buffer.append(System.getProperty("line.separator"));
143 143
144 buffer.append("Explored markings: ");144 buffer.append("Explored configurations: ");
145 buffer.append(explored);145 buffer.append(explored);
146 buffer.append(System.getProperty("line.separator"));146 buffer.append(System.getProperty("line.separator"));
147 147
148 buffer.append("Stored markings: ");148 buffer.append("Stored configurations: ");
149 buffer.append(stored);149 buffer.append(stored);
150 return buffer.toString();150 return buffer.toString();
151 }151 }
152152
=== modified file 'src/dk/aau/cs/verification/VerificationResult.java'
--- src/dk/aau/cs/verification/VerificationResult.java 2021-10-13 18:51:36 +0000
+++ src/dk/aau/cs/verification/VerificationResult.java 2023-01-09 11:13:50 +0000
@@ -4,6 +4,8 @@
4import java.util.ArrayList;4import java.util.ArrayList;
5import java.util.Comparator;5import java.util.Comparator;
6import java.util.List;6import java.util.List;
7import java.util.regex.Matcher;
8import java.util.regex.Pattern;
79
8import dk.aau.cs.model.tapn.NetworkMarking;10import dk.aau.cs.model.tapn.NetworkMarking;
9import dk.aau.cs.model.tapn.TimedArcPetriNetNetwork;11import dk.aau.cs.model.tapn.TimedArcPetriNetNetwork;
@@ -21,6 +23,7 @@
21 private NameMapping nameMapping;23 private NameMapping nameMapping;
22 private TTrace secondaryTrace;24 private TTrace secondaryTrace;
23 private boolean isSolvedUsingStateEquation = false;25 private boolean isSolvedUsingStateEquation = false;
26 private int bound;
24 27
25 public boolean isQuerySatisfied() {28 public boolean isQuerySatisfied() {
26 return queryResult.isQuerySatisfied();29 return queryResult.isQuerySatisfied();
@@ -32,6 +35,15 @@
32 this.verificationTime = verificationTime;35 this.verificationTime = verificationTime;
33 this.stats = stats;36 this.stats = stats;
34 this.rawOutput = rawOutput;37 this.rawOutput = rawOutput;
38
39 String[] lines = rawOutput.split(System.getProperty("line.separator"));
40 for (String line : lines) {
41 Matcher matcher = Pattern.compile("\\s*-k\\s*(\\d+)\\s*").matcher(line);
42 if (matcher.find()) {
43 this.bound = Integer.parseInt(matcher.group(1));
44 break;
45 }
46 }
35 }47 }
3648
37 public VerificationResult(QueryResult queryResult, TTrace trace, long verificationTime, Stats stats, boolean isSolvedUsingStateEquation){49 public VerificationResult(QueryResult queryResult, TTrace trace, long verificationTime, Stats stats, boolean isSolvedUsingStateEquation){
@@ -231,4 +243,8 @@
231 public String getRawOutput() {243 public String getRawOutput() {
232 return rawOutput;244 return rawOutput;
233 }245 }
246
247 public int getBound() {
248 return bound;
249 }
234}250}
235251
=== modified file 'src/dk/aau/cs/verification/VerifyTAPN/VerifyPN.java'
--- src/dk/aau/cs/verification/VerifyTAPN/VerifyPN.java 2021-07-16 20:39:22 +0000
+++ src/dk/aau/cs/verification/VerifyTAPN/VerifyPN.java 2023-01-09 11:13:50 +0000
@@ -340,7 +340,6 @@
340 tapnTrace = parseTrace(trace, options, model, exportedModel, query, queryResult.value1());340 tapnTrace = parseTrace(trace, options, model, exportedModel, query, queryResult.value1());
341 } else {341 } else {
342 tapnTrace = parseTrace(errorOutput, options, model, exportedModel, query, queryResult.value1());342 tapnTrace = parseTrace(errorOutput, options, model, exportedModel, query, queryResult.value1());
343
344 }343 }
345 return new VerificationResult<TimedArcPetriNetTrace>(queryResult.value1(), tapnTrace, runner.getRunningTime(), queryResult.value2(), approximationResult, standardOutput);344 return new VerificationResult<TimedArcPetriNetTrace>(queryResult.value1(), tapnTrace, runner.getRunningTime(), queryResult.value2(), approximationResult, standardOutput);
346 }345 }
347346
=== modified file 'src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java'
--- src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java 2021-12-27 08:26:55 +0000
+++ src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNExporter.java 2023-01-09 11:13:50 +0000
@@ -1,33 +1,21 @@
1package dk.aau.cs.verification.VerifyTAPN;1package dk.aau.cs.verification.VerifyTAPN;
22
3import java.io.File;3import dk.aau.cs.TCTL.visitors.CTLQueryVisitor;
4import java.io.FileNotFoundException;
5import java.io.IOException;
6import java.io.PrintStream;
7import java.util.Collection;
8import java.util.List;
9
10import dk.aau.cs.TCTL.visitors.LTLQueryVisitor;4import dk.aau.cs.TCTL.visitors.LTLQueryVisitor;
11import dk.aau.cs.gui.TabContent;5import dk.aau.cs.gui.TabContent;
6import dk.aau.cs.model.tapn.*;
12import dk.aau.cs.verification.NameMapping;7import dk.aau.cs.verification.NameMapping;
13import pipe.dataLayer.DataLayer;8import pipe.dataLayer.DataLayer;
14import pipe.dataLayer.TAPNQuery.QueryCategory;9import pipe.dataLayer.TAPNQuery.QueryCategory;
15
16import dk.aau.cs.model.tapn.TAPNQuery;
17import dk.aau.cs.model.tapn.TimedArcPetriNet;
18import dk.aau.cs.model.tapn.TimedInhibitorArc;
19import dk.aau.cs.model.tapn.TimedInputArc;
20import dk.aau.cs.model.tapn.TimedOutputArc;
21import dk.aau.cs.model.tapn.TimedPlace;
22import dk.aau.cs.model.tapn.TimedTransition;
23import dk.aau.cs.model.tapn.TransportArc;
24
25import dk.aau.cs.TCTL.visitors.CTLQueryVisitor;
26import pipe.gui.CreateGui;10import pipe.gui.CreateGui;
27import pipe.gui.graphicElements.Place;11import pipe.gui.graphicElements.Place;
28import pipe.gui.graphicElements.Transition;12import pipe.gui.graphicElements.Transition;
2913
30import javax.xml.crypto.Data;14import java.io.File;
15import java.io.FileNotFoundException;
16import java.io.IOException;
17import java.io.PrintStream;
18import java.util.Collection;
3119
32public class VerifyTAPNExporter {20public class VerifyTAPNExporter {
33 public ExportedVerifyTAPNModel export(TimedArcPetriNet model, TAPNQuery query, TabContent.TAPNLens lens, NameMapping mapping) {21 public ExportedVerifyTAPNModel export(TimedArcPetriNet model, TAPNQuery query, TabContent.TAPNLens lens, NameMapping mapping) {
@@ -140,9 +128,15 @@
140128
141 private void outputTransition(TimedTransition t, PrintStream modelStream, Collection<DataLayer> guiModels, NameMapping mapping) {129 private void outputTransition(TimedTransition t, PrintStream modelStream, Collection<DataLayer> guiModels, NameMapping mapping) {
142 //remove the net prefix from the transition name130 //remove the net prefix from the transition name
131<<<<<<< TREE
143 var m = mapping.map(t.name());132 var m = mapping.map(t.name());
144133
134=======
135 var m = mapping.map(t.name());
136 String transitionName;
137>>>>>>> MERGE-SOURCE
145 Transition guiTransition = null;138 Transition guiTransition = null;
139<<<<<<< TREE
146 if (m != null) {140 if (m != null) {
147 String transitionName = m.value2();141 String transitionName = m.value2();
148 for(DataLayer guiModel : guiModels){142 for(DataLayer guiModel : guiModels){
@@ -150,11 +144,19 @@
150 if(guiTransition != null){144 if(guiTransition != null){
151 break;145 break;
152 }146 }
147=======
148 if (m != null) {
149 transitionName = m.value2();
150 for (DataLayer guiModel : guiModels) {
151 guiTransition = guiModel.getTransitionById(transitionName);
152 if (guiTransition != null) {
153 break;
154 }
155>>>>>>> MERGE-SOURCE
153 }156 }
154 }157 }
155158
156 modelStream.append("<transition ");159 modelStream.append("<transition ");
157
158 modelStream.append("player=\"" + (t.isUncontrollable() ? "1" : "0") + "\" ");160 modelStream.append("player=\"" + (t.isUncontrollable() ? "1" : "0") + "\" ");
159 modelStream.append("id=\"" + t.name() + "\" ");161 modelStream.append("id=\"" + t.name() + "\" ");
160 modelStream.append("name=\"" + t.name() + "\" ");162 modelStream.append("name=\"" + t.name() + "\" ");
161163
=== modified file 'src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNIconSelector.java'
--- src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNIconSelector.java 2019-03-22 10:13:18 +0000
+++ src/dk/aau/cs/verification/VerifyTAPN/VerifyTAPNIconSelector.java 2023-01-09 11:13:50 +0000
@@ -15,27 +15,47 @@
15 switch(result.getQueryResult().queryType())15 switch(result.getQueryResult().queryType())
16 {16 {
17 case EF:17 case EF:
18 if(result.isQuerySatisfied()){18 if (result.isQuerySatisfied()) {
19 return satisfiedIcon;19 return satisfiedIcon;
20 }else if(!result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)){20 } else if (!result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) {
21 return notSatisfiedIcon;21 return notSatisfiedIcon;
22 }22 }
23 break;23 break;
24 case AG:24 case AG:
25 if(!result.isQuerySatisfied()) return notSatisfiedIcon;25 if (!result.isQuerySatisfied() && result.getBound() >= result.getQueryResult().boundednessAnalysis().usedTokens()) {
26 else if(result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) return satisfiedIcon;26 return notSatisfiedIcon;
27 } else if (result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) {
28 return satisfiedIcon;
29 }
27 break;30 break;
28 case AF:31 case AF:
29 if(!result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)){32 if (!result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) {
30 return notSatisfiedIcon;33 return notSatisfiedIcon;
31 } else if(result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)){34 } else if (result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) {
32 return satisfiedIcon;35 return satisfiedIcon;
33 }36 }
34 break;37 break;
35 case EG:38 case EG:
36 if(result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) return satisfiedIcon;39 if (result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) {
37 else if(!result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) return notSatisfiedIcon;40 return satisfiedIcon;
41 } else if (!result.isQuerySatisfied() && result.getQueryResult().boundednessAnalysis().boundednessResult().equals(Boundedness.Bounded)) {
42 return notSatisfiedIcon;
43 }
38 break;44 break;
45 case A:
46 if (!result.isQuerySatisfied()) {
47 return notSatisfiedIcon;
48 } else if (result.isQuerySatisfied() && result.getBound() >= result.getQueryResult().boundednessAnalysis().usedTokens()) {
49 return satisfiedIcon;
50 }
51 break;
52 case E:
53 if (!result.isQuerySatisfied() && result.getBound() >= result.getQueryResult().boundednessAnalysis().usedTokens()) {
54 return notSatisfiedIcon;
55 } else if (result.isQuerySatisfied()) {
56 return satisfiedIcon;
57 }
58 break;
39 default:59 default:
40 return null;60 return null;
41 }61 }
4262
=== modified file 'src/net/tapaal/Preferences.java'
--- src/net/tapaal/Preferences.java 2022-08-01 09:36:08 +0000
+++ src/net/tapaal/Preferences.java 2023-01-09 11:13:50 +0000
@@ -329,6 +329,7 @@
329329
330 return object;330 return object;
331 }331 }
332<<<<<<< TREE
332333
333 public void setFileBrowserLocation(String location) {334 public void setFileBrowserLocation(String location) {
334 final String key = "file.location";335 final String key = "file.location";
@@ -343,4 +344,20 @@
343 public String getFileBrowserLocation() {344 public String getFileBrowserLocation() {
344 return pref.get("file.location", null);345 return pref.get("file.location", null);
345 }346 }
347=======
348
349 public void setFileBrowserLocation(String location) {
350 final String key = "file.location";
351
352 if (location == null || location.equals("")){
353 pref.remove(key);
354 } else {
355 pref.put(key, location);
356 }
357 }
358
359 public String getFileBrowserLocation() {
360 return pref.get("file.location", null);
361 }
362>>>>>>> MERGE-SOURCE
346}363}
347364
=== modified file 'src/net/tapaal/TAPAAL.java'
--- src/net/tapaal/TAPAAL.java 2021-11-23 22:09:14 +0000
+++ src/net/tapaal/TAPAAL.java 2023-01-09 11:13:50 +0000
@@ -39,7 +39,7 @@
39public class TAPAAL {39public class TAPAAL {
4040
41 public static final String TOOLNAME = "TAPAAL";41 public static final String TOOLNAME = "TAPAAL";
42 public static final String VERSION = "DEV";42 public static final String VERSION = "3.9.3";
4343
44 public static String getProgramName(){44 public static String getProgramName(){
45 return "" + TAPAAL.TOOLNAME + " " + TAPAAL.VERSION;45 return "" + TAPAAL.TOOLNAME + " " + TAPAAL.VERSION;
4646
=== modified file 'src/pipe/gui/GuiFrameController.java'
--- src/pipe/gui/GuiFrameController.java 2021-10-17 18:41:49 +0000
+++ src/pipe/gui/GuiFrameController.java 2023-01-09 11:13:50 +0000
@@ -248,16 +248,16 @@
248 buffer.append("Lasse Jacobsen, Morten Jacobsen,\nThomas S. Jacobsen, Jacob J. Jensen, Peter G. Jensen, ");248 buffer.append("Lasse Jacobsen, Morten Jacobsen,\nThomas S. Jacobsen, Jacob J. Jensen, Peter G. Jensen, ");
249 buffer.append("Mads Johannsen,\nKenneth Y. Joergensen, Mikael H. Moeller, Christoffer Moesgaard, Kristian Morsing Pedersen,\nThomas Pedersen, Lena Said, Niels N. Samuelsen, Jiri Srba, Mathias G. Soerensen,\nJakob H. Taankvist and Peter H. Taankvist\n");249 buffer.append("Mads Johannsen,\nKenneth Y. Joergensen, Mikael H. Moeller, Christoffer Moesgaard, Kristian Morsing Pedersen,\nThomas Pedersen, Lena Said, Niels N. Samuelsen, Jiri Srba, Mathias G. Soerensen,\nJakob H. Taankvist and Peter H. Taankvist\n");
250250
251 buffer.append("Aalborg University 2008-2021\n\n");251 buffer.append("Aalborg University 2008-2022\n\n");
252252
253 buffer.append("TAPAAL Continuous Engine (verifytapn):\n");253 buffer.append("TAPAAL Continuous Engine (verifytapn):\n");
254 buffer.append("Alexandre David, Lasse Jacobsen, Morten Jacobsen and Jiri Srba\n");254 buffer.append("Alexandre David, Lasse Jacobsen, Morten Jacobsen and Jiri Srba\n");
255 buffer.append("Aalborg University 2011-2021\n\n");255 buffer.append("Aalborg University 2011-2022\n\n");
256256
257 buffer.append("TAPAAL Discrete Engine (verifydtapn):\n");257 buffer.append("TAPAAL Discrete Engine (verifydtapn):\n");
258 buffer.append("Mathias Andersen, Peter G. Jensen, Heine G. Larsen, Jiri Srba,\n");258 buffer.append("Mathias Andersen, Peter G. Jensen, Heine G. Larsen, Jiri Srba,\n");
259 buffer.append("Mathias G. Soerensen and Jakob H. Taankvist\n");259 buffer.append("Mathias G. Soerensen and Jakob H. Taankvist\n");
260 buffer.append("Aalborg University 2012-2021\n\n");260 buffer.append("Aalborg University 2012-2022\n\n");
261261
262 buffer.append("TAPAAL Untimed Engine (verifypn):\n");262 buffer.append("TAPAAL Untimed Engine (verifypn):\n");
263 buffer.append("Alexander Bilgram, Frederik M. Boenneland, Jakob Dyhr, Peter Fogh, ");263 buffer.append("Alexander Bilgram, Frederik M. Boenneland, Jakob Dyhr, Peter Fogh, ");
@@ -265,7 +265,7 @@
265 buffer.append("Tobias S. Jepsen, Kenneth Y. Joergensen,\nMads Johannsen, Isabella Kaufmann, ");265 buffer.append("Tobias S. Jepsen, Kenneth Y. Joergensen,\nMads Johannsen, Isabella Kaufmann, ");
266 buffer.append("Andreas H. Klostergaard, Soeren M. Nielsen,\nThomas S. Nielsen, Lars K. Oestergaard, ");266 buffer.append("Andreas H. Klostergaard, Soeren M. Nielsen,\nThomas S. Nielsen, Lars K. Oestergaard, ");
267 buffer.append("Samuel Pastva, Thomas Pedersen, Jiri Srba,\nPeter H. Taankvist, Nikolaj J. Ulrik and Simon M. Virenfeldt\n");267 buffer.append("Samuel Pastva, Thomas Pedersen, Jiri Srba,\nPeter H. Taankvist, Nikolaj J. Ulrik and Simon M. Virenfeldt\n");
268 buffer.append("Aalborg University 2014-2021\n\n");268 buffer.append("Aalborg University 2014-2022\n\n");
269269
270270
271 buffer.append("\n");271 buffer.append("\n");
272272
=== modified file 'src/pipe/gui/Pipe.java'
--- src/pipe/gui/Pipe.java 2021-11-22 16:58:24 +0000
+++ src/pipe/gui/Pipe.java 2023-01-09 11:13:50 +0000
@@ -79,7 +79,7 @@
79 public static final String verifytaMinRev = "4.1.19";79 public static final String verifytaMinRev = "4.1.19";
80 public static final String verifytapnMinRev = "1.3.1";80 public static final String verifytapnMinRev = "1.3.1";
81 public static final String verifydtapnMinRev = "3.5.0";81 public static final String verifydtapnMinRev = "3.5.0";
82 public static final String verifypnMinRev = "4.2.1";82 public static final String verifypnMinRev = "4.2.2";
83 public static final int AGE_DECIMAL_PRECISION = 5;83 public static final int AGE_DECIMAL_PRECISION = 5;
84 public static final int AGE_PRECISION = AGE_DECIMAL_PRECISION + 4;84 public static final int AGE_PRECISION = AGE_DECIMAL_PRECISION + 4;
8585
8686
=== modified file 'src/pipe/gui/RunVerification.java'
--- src/pipe/gui/RunVerification.java 2021-10-13 18:51:36 +0000
+++ src/pipe/gui/RunVerification.java 2023-01-09 11:13:50 +0000
@@ -298,6 +298,16 @@
298 gbc.anchor = GridBagConstraints.WEST; 298 gbc.anchor = GridBagConstraints.WEST;
299 panel.add(new JLabel(toHTML(result.getResultString())), gbc);299 panel.add(new JLabel(toHTML(result.getResultString())), gbc);
300300
301 if (result.getBound() < result.getQueryResult().boundednessAnalysis().usedTokens() &&
302 !result.getQueryResult().toString().toLowerCase().contains("only markings with")) {
303 gbc = new GridBagConstraints();
304 gbc.gridx = 0;
305 gbc.gridy = 0;
306 gbc.gridwidth = 2;
307 gbc.anchor = GridBagConstraints.WEST;
308 panel.add(new JLabel("<html><br/><br/>Only markings with at most " + result.getBound() + " tokens were explored<br/><br/></html>"), gbc);
309 }
310
301 // TODO remove this when the engine outputs statistics311 // TODO remove this when the engine outputs statistics
302 boolean isCTLQuery = result.getQueryResult().isCTL;312 boolean isCTLQuery = result.getQueryResult().isCTL;
303313
304314
=== modified file 'src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java'
--- src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java 2022-08-01 09:36:08 +0000
+++ src/pipe/gui/widgets/filebrowser/NativeFileBrowser.java 2023-01-09 11:13:50 +0000
@@ -8,6 +8,8 @@
8import java.util.regex.Pattern;8import java.util.regex.Pattern;
99
10import javax.swing.*;10import javax.swing.*;
11
12import net.tapaal.Preferences;
11import pipe.gui.CreateGui;13import pipe.gui.CreateGui;
12import net.tapaal.Preferences;14import net.tapaal.Preferences;
1315
@@ -73,7 +75,11 @@
73 }75 }
74 76
75 public File[] openFiles() {77 public File[] openFiles() {
78<<<<<<< TREE
76 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();79 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();
80=======
81 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();;
82>>>>>>> MERGE-SOURCE
77 fc.setDirectory(specifiedPath);83 fc.setDirectory(specifiedPath);
78 //This is needed for Windows84 //This is needed for Windows
79 if(optionalExt.equals("")) fc.setFile(ext.equals("")? "":("*."+ext));85 if(optionalExt.equals("")) fc.setFile(ext.equals("")? "":("*."+ext));
@@ -151,7 +157,11 @@
151 //So we make a JFileChooser in which we can control it157 //So we make a JFileChooser in which we can control it
152 if(System.getProperty("os.name").startsWith("Windows")) {158 if(System.getProperty("os.name").startsWith("Windows")) {
153 File selectedDir = null;159 File selectedDir = null;
160<<<<<<< TREE
154 if (specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();161 if (specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();
162=======
163 if (specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();;
164>>>>>>> MERGE-SOURCE
155 JFileChooser c = new JFileChooser(specifiedPath);165 JFileChooser c = new JFileChooser(specifiedPath);
156 c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);166 c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
157 c.setDialogTitle("Choose target directory for export");167 c.setDialogTitle("Choose target directory for export");
158168
=== modified file 'src/pipe/gui/widgets/filebrowser/NativeFileBrowserFallback.java'
--- src/pipe/gui/widgets/filebrowser/NativeFileBrowserFallback.java 2022-08-01 09:36:08 +0000
+++ src/pipe/gui/widgets/filebrowser/NativeFileBrowserFallback.java 2023-01-09 11:13:50 +0000
@@ -77,7 +77,11 @@
77 }77 }
7878
79 public File openFile() {79 public File openFile() {
80<<<<<<< TREE
80 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();81 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();
82=======
83 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();;
84>>>>>>> MERGE-SOURCE
81 fc.setDirectory(specifiedPath);85 fc.setDirectory(specifiedPath);
82 //This is needed for windows86 //This is needed for windows
83 if(optionalExt.equals("")) fc.setFile(ext.equals("")? "":("*."+ext));87 if(optionalExt.equals("")) fc.setFile(ext.equals("")? "":("*."+ext));
@@ -86,13 +90,21 @@
86 fc.setVisible(true);90 fc.setVisible(true);
87 String selectedFile = fc.getFile();91 String selectedFile = fc.getFile();
88 String selectedDir = fc.getDirectory();92 String selectedDir = fc.getDirectory();
93<<<<<<< TREE
89 Preferences.getInstance().setFileBrowserLocation(selectedDir);94 Preferences.getInstance().setFileBrowserLocation(selectedDir);
95=======
96 Preferences.getInstance().setFileBrowserLocation(selectedDir);
97>>>>>>> MERGE-SOURCE
90 File file = selectedFile == null? null:new File(selectedDir + selectedFile);98 File file = selectedFile == null? null:new File(selectedDir + selectedFile);
91 return file;99 return file;
92 }100 }
93101
94 public File[] openFiles() {102 public File[] openFiles() {
103<<<<<<< TREE
95 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();104 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();
105=======
106 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();;
107>>>>>>> MERGE-SOURCE
96 if(new File(specifiedPath).exists()) fileChooser.setCurrentDirectory(new File(specifiedPath));108 if(new File(specifiedPath).exists()) fileChooser.setCurrentDirectory(new File(specifiedPath));
97 /*if (lastPath != null) {109 /*if (lastPath != null) {
98 File path = new File(lastPath);110 File path = new File(lastPath);
@@ -112,7 +124,11 @@
112124
113125
114 public String saveFile(String suggestedName) {126 public String saveFile(String suggestedName) {
127<<<<<<< TREE
115 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();128 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();
129=======
130 if(specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();;
131>>>>>>> MERGE-SOURCE
116 fc.setDirectory(specifiedPath);132 fc.setDirectory(specifiedPath);
117 fc.setFile(suggestedName + (suggestedName.endsWith("."+ext)? "":"."+ext));133 fc.setFile(suggestedName + (suggestedName.endsWith("."+ext)? "":"."+ext));
118 fc.setMode(FileDialog.SAVE);134 fc.setMode(FileDialog.SAVE);
@@ -165,7 +181,11 @@
165 //So we make a JFileChooser in which we can control it181 //So we make a JFileChooser in which we can control it
166 if(System.getProperty("os.name").startsWith("Windows")) {182 if(System.getProperty("os.name").startsWith("Windows")) {
167 File selectedDir = null;183 File selectedDir = null;
184<<<<<<< TREE
168 if (specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();185 if (specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();
186=======
187 if (specifiedPath == null) specifiedPath = Preferences.getInstance().getFileBrowserLocation();;
188>>>>>>> MERGE-SOURCE
169 JFileChooser c = new JFileChooser(specifiedPath);189 JFileChooser c = new JFileChooser(specifiedPath);
170 c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);190 c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
171 c.setDialogTitle("Choose target directory for export");191 c.setDialogTitle("Choose target directory for export");

Subscribers

People subscribed via source and target branches