Merge lp:~tapaal-contributor/tapaal/autodetect-lens-check2 into lp:tapaal

Proposed by Kenneth Yrke Jørgensen
Status: Merged
Approved by: Jiri Srba
Approved revision: 1093
Merged at revision: 1091
Proposed branch: lp:~tapaal-contributor/tapaal/autodetect-lens-check2
Merge into: lp:tapaal
Diff against target: 292 lines (+37/-93)
6 files modified
src/dk/aau/cs/gui/TabContent.java (+7/-59)
src/dk/aau/cs/io/LoadedModel.java (+7/-14)
src/dk/aau/cs/io/ModelLoader.java (+9/-10)
src/dk/aau/cs/io/PNMLoader.java (+2/-2)
src/dk/aau/cs/io/TapnLegacyXmlLoader.java (+3/-3)
src/dk/aau/cs/io/TapnXmlLoader.java (+9/-5)
To merge this branch: bzr merge lp:~tapaal-contributor/tapaal/autodetect-lens-check2
Reviewer Review Type Date Requested Status
Jiri Srba Approve
Review via email: mp+389844@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jiri Srba (srba) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/dk/aau/cs/gui/TabContent.java'
2--- src/dk/aau/cs/gui/TabContent.java 2020-08-24 09:50:07 +0000
3+++ src/dk/aau/cs/gui/TabContent.java 2020-08-26 12:31:11 +0000
4@@ -613,60 +613,13 @@
5
6 return tab;
7 } catch (Exception e) {
8- throw new Exception("TAPAAL encountered an error while loading the file: " + name + "\n\nPossible explanations:\n - " + e.toString());
9+ //throw new Exception("TAPAAL encountered an error while loading the file: " + name + "\n\nPossible explanations:\n - " + e.toString());
10+ throw e;
11 }
12
13 }
14
15- private TabContent createNewTabFromInputStream(InputStream file, String name, FeatureOption option, boolean isYes) throws Exception {
16-
17- try {
18- ModelLoader loader = new ModelLoader();
19- LoadedModel loadedModel = loader.load(file);
20-
21- if (loadedModel.getMessages().size() != 0) {
22- new Thread(new Runnable() {
23- @Override
24- public void run() {
25- CreateGui.getAppGui().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
26- String message = "While loading the net we found one or more warnings: \n\n";
27- for (String s : loadedModel.getMessages()) {
28- message += s + "\n\n";
29- }
30-
31- new MessengerImpl().displayInfoMessage(message, "Warning");
32- }
33- }).start();
34- }
35-
36- TabContent tab;
37-
38- switch (option) {
39- case TIME:
40- tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), isYes, lens.isGame());
41- break;
42- case GAME:
43- tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), lens.isTimed(), isYes);
44- break;
45- default:
46- tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), lens.isTimed(), lens.isGame());
47- break;
48- }
49-
50- tab.setInitialName(name);
51-
52- tab.selectFirstElements();
53-
54- tab.setFile(null);
55-
56- return tab;
57- } catch (Exception e) {
58- throw new Exception("TAPAAL encountered an error while loading the file: " + name + "\n\nPossible explanations:\n - " + e.toString());
59- }
60-
61- }
62-
63- public static TabContent createNewEmptyTab(String name, boolean isTimed, boolean isGame){
64+ public static TabContent createNewEmptyTab(String name, boolean isTimed, boolean isGame){
65 TabContent tab = new TabContent(isTimed, isGame);
66 tab.setInitialName(name);
67
68@@ -692,7 +645,7 @@
69 PNMLoader loader = new PNMLoader();
70 loadedModel = loader.load(file);
71
72- TabContent tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries());
73+ TabContent tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), loadedModel.getLens());
74
75 String name = null;
76
77@@ -816,14 +769,16 @@
78
79 Require.that(network != null, "network cannot be null");
80 Require.notNull(lens, "Lens can't be null");
81+
82+ tapnNetwork = network;
83 this.lens = lens;
84- tapnNetwork = network;
85
86 guiModels.clear();
87 for (Template template : templates) {
88 addGuiModel(template.model(), template.guiModel());
89 zoomLevels.put(template.model(), template.zoomer());
90 hasPositionalInfos.put(template.model(), template.getHasPositionalInfo());
91+
92 for(PetriNetObject o : template.guiModel().getPetriNetObjects()){
93 o.setLens(this.lens);
94 }
95@@ -867,13 +822,6 @@
96 animationModeController = new CanvasAnimationController(getAnimator());
97 }
98
99- private TabContent(TimedArcPetriNetNetwork network, Collection<Template> templates, Iterable<TAPNQuery> tapnqueries, boolean isTimed, boolean isGame) {
100- this(network, templates, tapnqueries, new TAPNLens(isTimed, isGame));
101- }
102-
103- private TabContent(TimedArcPetriNetNetwork network, Collection<Template> templates, Iterable<TAPNQuery> tapnqueries) {
104- this(network, templates, tapnqueries, new TAPNLens(true, false));
105- }
106 public TabContent(TimedArcPetriNetNetwork network, Collection<Template> templates, Iterable<TAPNQuery> tapnqueries, TAPNLens lens) {
107 this(network, templates, lens);
108
109
110=== modified file 'src/dk/aau/cs/io/LoadedModel.java'
111--- src/dk/aau/cs/io/LoadedModel.java 2020-08-11 11:11:59 +0000
112+++ src/dk/aau/cs/io/LoadedModel.java 2020-08-26 12:31:11 +0000
113@@ -17,13 +17,6 @@
114 private final Collection<String> messages;
115 private final TabContent.TAPNLens lens;
116
117- public LoadedModel(TimedArcPetriNetNetwork network, Collection<Template> templates, Collection<TAPNQuery> queries, Collection<String> messages){
118- this(network, templates, queries, messages, TabContent.TAPNLens.Default);
119- }
120- public LoadedModel(TimedArcPetriNetNetwork network, Collection<Template> templates, Collection<TAPNQuery> queries){
121- this(network, templates, queries, List.of(), TabContent.TAPNLens.Default);
122- }
123-
124 public LoadedModel(TimedArcPetriNetNetwork network, Collection<Template> templates, Collection<TAPNQuery> queries, Collection<String> messages, TabContent.TAPNLens lens){
125 this.templates = templates;
126 this.network = network;
127@@ -38,14 +31,14 @@
128 public Collection<String> getMessages() { return messages; }
129
130 public TabContent.TAPNLens getLens(){
131- return lens;
132- }
133+ if (lens != null) {
134+ return lens;
135+ } else {
136+ boolean isNetTimed = !network().isUntimed();
137+ boolean isNetGame = network().hasUncontrollableTransitions();
138
139- public boolean isTimed() {
140- return lens.isTimed();
141- }
142- public boolean isGame() {
143- return lens.isGame();
144+ return new TabContent.TAPNLens(isNetTimed, isNetGame);
145+ }
146 }
147
148 }
149\ No newline at end of file
150
151=== modified file 'src/dk/aau/cs/io/ModelLoader.java'
152--- src/dk/aau/cs/io/ModelLoader.java 2020-07-14 10:47:03 +0000
153+++ src/dk/aau/cs/io/ModelLoader.java 2020-08-26 12:31:11 +0000
154@@ -7,7 +7,6 @@
155 import java.io.InputStream;
156
157 import dk.aau.cs.TCTL.Parsing.ParseException;
158-import dk.aau.cs.io.batchProcessing.LoadedBatchProcessingModel;
159
160 public class ModelLoader {
161
162@@ -17,19 +16,19 @@
163 public LoadedModel load(File file) throws Exception{
164 TapnXmlLoader newFormatLoader = new TapnXmlLoader();
165 try{
166- return newFormatLoader.load(file);
167- }catch(Throwable e1){
168+ return newFormatLoader.load(file);
169+ }catch(Throwable e1){
170 try {
171 TapnLegacyXmlLoader oldFormatLoader = new TapnLegacyXmlLoader();
172- return oldFormatLoader.load(file);
173- } catch(Throwable e2) {
174+ return oldFormatLoader.load(file);
175+ } catch(Throwable e2) {
176 throw new ParseException(e1.getMessage());
177 }
178 }
179 }
180-
181-
182- public LoadedModel load(InputStream file) throws Exception{
183+
184+
185+ public LoadedModel load(InputStream file) throws Exception{
186 TapnXmlLoader newFormatLoader = new TapnXmlLoader();
187 ByteArrayOutputStream baos = new ByteArrayOutputStream();
188 byte[] buffer = new byte[1024];
189@@ -45,13 +44,13 @@
190
191 return newFormatLoader.load(new ByteArrayInputStream(baos.toByteArray()));
192
193- }catch(Throwable e1){
194+ }catch(Throwable e1){
195 try {
196 TapnLegacyXmlLoader oldFormatLoader = new TapnLegacyXmlLoader();
197
198 return oldFormatLoader.load(new ByteArrayInputStream(baos.toByteArray()));
199
200- } catch(Throwable e2) {
201+ } catch(Throwable e2) {
202 throw new ParseException(e1.getMessage());
203 }
204 }
205
206=== modified file 'src/dk/aau/cs/io/PNMLoader.java'
207--- src/dk/aau/cs/io/PNMLoader.java 2020-08-11 12:18:11 +0000
208+++ src/dk/aau/cs/io/PNMLoader.java 2020-08-26 12:31:11 +0000
209@@ -53,7 +53,7 @@
210
211 public class PNMLoader {
212
213- private final TabContent.TAPNLens lens = new TabContent.TAPNLens(false, false);
214+ private final TabContent.TAPNLens lens = TabContent.TAPNLens.Default;
215
216 enum GraphicsType { Position, Offset }
217
218@@ -120,7 +120,7 @@
219
220 network.setPaintNet(isNetDrawable());
221 tapn.setCheckNames(true);
222- return new LoadedModel(network, Arrays.asList(template), new ArrayList<TAPNQuery>());
223+ return new LoadedModel(network, Arrays.asList(template), new ArrayList<TAPNQuery>(), new ArrayList<>(), null);
224 }
225
226 private String getTAPNName(Node netNode) {
227
228=== modified file 'src/dk/aau/cs/io/TapnLegacyXmlLoader.java'
229--- src/dk/aau/cs/io/TapnLegacyXmlLoader.java 2020-08-11 12:18:11 +0000
230+++ src/dk/aau/cs/io/TapnLegacyXmlLoader.java 2020-08-26 12:31:11 +0000
231@@ -84,7 +84,7 @@
232 private final IdResolver idResolver = new IdResolver();
233
234 private final Collection<String> messages = new ArrayList<>(10);
235- private final TabContent.TAPNLens lens = new TabContent.TAPNLens(true, false);
236+ private final TabContent.TAPNLens lens = TabContent.TAPNLens.Default;
237
238
239 public TapnLegacyXmlLoader() {}
240@@ -145,8 +145,8 @@
241 templates.add(parseTimedArcPetriNetAsOldFormat(nets.item(0), network));
242
243 checkThatQueriesUseExistingPlaces(network);
244-
245- return new LoadedModel(network, templates, queries, messages);
246+
247+ return new LoadedModel(network, templates, queries, messages, null);
248 }
249
250 private void checkThatQueriesUseExistingPlaces(TimedArcPetriNetNetwork network) {
251
252=== modified file 'src/dk/aau/cs/io/TapnXmlLoader.java'
253--- src/dk/aau/cs/io/TapnXmlLoader.java 2020-08-11 12:18:11 +0000
254+++ src/dk/aau/cs/io/TapnXmlLoader.java 2020-08-26 12:31:11 +0000
255@@ -71,7 +71,8 @@
256 private final IdResolver idResolver = new IdResolver();
257 private final Collection<String> messages = new ArrayList<>(10);
258
259- private TabContent.TAPNLens lens;
260+ boolean hasFeatureTag = false;
261+ private TabContent.TAPNLens lens = TabContent.TAPNLens.Default;
262
263 public TapnXmlLoader() {
264
265@@ -132,8 +133,11 @@
266 parseBound(doc, network);
267
268
269-
270- return new LoadedModel(network, templates, queries,messages, lens);
271+ if (hasFeatureTag) {
272+ return new LoadedModel(network, templates, queries, messages, lens);
273+ } else {
274+ return new LoadedModel(network, templates, queries, messages, null);
275+ }
276 }
277
278 private void parseBound(Document doc, TimedArcPetriNetNetwork network){
279@@ -147,12 +151,12 @@
280 if (doc.getElementsByTagName("feature").getLength() > 0) {
281 NodeList nodeList = doc.getElementsByTagName("feature");
282
283+ hasFeatureTag = true;
284+
285 var isTimed = Boolean.parseBoolean(nodeList.item(0).getAttributes().getNamedItem("isTimed").getNodeValue());
286 var isGame = Boolean.parseBoolean(nodeList.item(0).getAttributes().getNamedItem("isGame").getNodeValue());
287
288 lens = new TabContent.TAPNLens(isTimed, isGame);
289- } else {
290- lens = new TabContent.TAPNLens(true, false);
291 }
292 }
293

Subscribers

People subscribed via source and target branches