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
=== modified file 'src/dk/aau/cs/gui/TabContent.java'
--- src/dk/aau/cs/gui/TabContent.java 2020-08-24 09:50:07 +0000
+++ src/dk/aau/cs/gui/TabContent.java 2020-08-26 12:31:11 +0000
@@ -613,60 +613,13 @@
613613
614 return tab;614 return tab;
615 } catch (Exception e) {615 } catch (Exception e) {
616 throw new Exception("TAPAAL encountered an error while loading the file: " + name + "\n\nPossible explanations:\n - " + e.toString());616 //throw new Exception("TAPAAL encountered an error while loading the file: " + name + "\n\nPossible explanations:\n - " + e.toString());
617 throw e;
617 }618 }
618619
619 }620 }
620621
621 private TabContent createNewTabFromInputStream(InputStream file, String name, FeatureOption option, boolean isYes) throws Exception {622 public static TabContent createNewEmptyTab(String name, boolean isTimed, boolean isGame){
622
623 try {
624 ModelLoader loader = new ModelLoader();
625 LoadedModel loadedModel = loader.load(file);
626
627 if (loadedModel.getMessages().size() != 0) {
628 new Thread(new Runnable() {
629 @Override
630 public void run() {
631 CreateGui.getAppGui().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
632 String message = "While loading the net we found one or more warnings: \n\n";
633 for (String s : loadedModel.getMessages()) {
634 message += s + "\n\n";
635 }
636
637 new MessengerImpl().displayInfoMessage(message, "Warning");
638 }
639 }).start();
640 }
641
642 TabContent tab;
643
644 switch (option) {
645 case TIME:
646 tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), isYes, lens.isGame());
647 break;
648 case GAME:
649 tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), lens.isTimed(), isYes);
650 break;
651 default:
652 tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), lens.isTimed(), lens.isGame());
653 break;
654 }
655
656 tab.setInitialName(name);
657
658 tab.selectFirstElements();
659
660 tab.setFile(null);
661
662 return tab;
663 } catch (Exception e) {
664 throw new Exception("TAPAAL encountered an error while loading the file: " + name + "\n\nPossible explanations:\n - " + e.toString());
665 }
666
667 }
668
669 public static TabContent createNewEmptyTab(String name, boolean isTimed, boolean isGame){
670 TabContent tab = new TabContent(isTimed, isGame);623 TabContent tab = new TabContent(isTimed, isGame);
671 tab.setInitialName(name);624 tab.setInitialName(name);
672625
@@ -692,7 +645,7 @@
692 PNMLoader loader = new PNMLoader();645 PNMLoader loader = new PNMLoader();
693 loadedModel = loader.load(file);646 loadedModel = loader.load(file);
694647
695 TabContent tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries());648 TabContent tab = new TabContent(loadedModel.network(), loadedModel.templates(), loadedModel.queries(), loadedModel.getLens());
696649
697 String name = null;650 String name = null;
698651
@@ -816,14 +769,16 @@
816769
817 Require.that(network != null, "network cannot be null");770 Require.that(network != null, "network cannot be null");
818 Require.notNull(lens, "Lens can't be null");771 Require.notNull(lens, "Lens can't be null");
772
773 tapnNetwork = network;
819 this.lens = lens;774 this.lens = lens;
820 tapnNetwork = network;
821775
822 guiModels.clear();776 guiModels.clear();
823 for (Template template : templates) {777 for (Template template : templates) {
824 addGuiModel(template.model(), template.guiModel());778 addGuiModel(template.model(), template.guiModel());
825 zoomLevels.put(template.model(), template.zoomer());779 zoomLevels.put(template.model(), template.zoomer());
826 hasPositionalInfos.put(template.model(), template.getHasPositionalInfo());780 hasPositionalInfos.put(template.model(), template.getHasPositionalInfo());
781
827 for(PetriNetObject o : template.guiModel().getPetriNetObjects()){782 for(PetriNetObject o : template.guiModel().getPetriNetObjects()){
828 o.setLens(this.lens);783 o.setLens(this.lens);
829 }784 }
@@ -867,13 +822,6 @@
867 animationModeController = new CanvasAnimationController(getAnimator());822 animationModeController = new CanvasAnimationController(getAnimator());
868 }823 }
869824
870 private TabContent(TimedArcPetriNetNetwork network, Collection<Template> templates, Iterable<TAPNQuery> tapnqueries, boolean isTimed, boolean isGame) {
871 this(network, templates, tapnqueries, new TAPNLens(isTimed, isGame));
872 }
873
874 private TabContent(TimedArcPetriNetNetwork network, Collection<Template> templates, Iterable<TAPNQuery> tapnqueries) {
875 this(network, templates, tapnqueries, new TAPNLens(true, false));
876 }
877 public TabContent(TimedArcPetriNetNetwork network, Collection<Template> templates, Iterable<TAPNQuery> tapnqueries, TAPNLens lens) {825 public TabContent(TimedArcPetriNetNetwork network, Collection<Template> templates, Iterable<TAPNQuery> tapnqueries, TAPNLens lens) {
878 this(network, templates, lens);826 this(network, templates, lens);
879827
880828
=== modified file 'src/dk/aau/cs/io/LoadedModel.java'
--- src/dk/aau/cs/io/LoadedModel.java 2020-08-11 11:11:59 +0000
+++ src/dk/aau/cs/io/LoadedModel.java 2020-08-26 12:31:11 +0000
@@ -17,13 +17,6 @@
17 private final Collection<String> messages;17 private final Collection<String> messages;
18 private final TabContent.TAPNLens lens;18 private final TabContent.TAPNLens lens;
1919
20 public LoadedModel(TimedArcPetriNetNetwork network, Collection<Template> templates, Collection<TAPNQuery> queries, Collection<String> messages){
21 this(network, templates, queries, messages, TabContent.TAPNLens.Default);
22 }
23 public LoadedModel(TimedArcPetriNetNetwork network, Collection<Template> templates, Collection<TAPNQuery> queries){
24 this(network, templates, queries, List.of(), TabContent.TAPNLens.Default);
25 }
26
27 public LoadedModel(TimedArcPetriNetNetwork network, Collection<Template> templates, Collection<TAPNQuery> queries, Collection<String> messages, TabContent.TAPNLens lens){20 public LoadedModel(TimedArcPetriNetNetwork network, Collection<Template> templates, Collection<TAPNQuery> queries, Collection<String> messages, TabContent.TAPNLens lens){
28 this.templates = templates;21 this.templates = templates;
29 this.network = network;22 this.network = network;
@@ -38,14 +31,14 @@
38 public Collection<String> getMessages() { return messages; }31 public Collection<String> getMessages() { return messages; }
3932
40 public TabContent.TAPNLens getLens(){33 public TabContent.TAPNLens getLens(){
41 return lens;34 if (lens != null) {
42 }35 return lens;
36 } else {
37 boolean isNetTimed = !network().isUntimed();
38 boolean isNetGame = network().hasUncontrollableTransitions();
4339
44 public boolean isTimed() {40 return new TabContent.TAPNLens(isNetTimed, isNetGame);
45 return lens.isTimed();41 }
46 }
47 public boolean isGame() {
48 return lens.isGame();
49 }42 }
5043
51}44}
52\ No newline at end of file45\ No newline at end of file
5346
=== modified file 'src/dk/aau/cs/io/ModelLoader.java'
--- src/dk/aau/cs/io/ModelLoader.java 2020-07-14 10:47:03 +0000
+++ src/dk/aau/cs/io/ModelLoader.java 2020-08-26 12:31:11 +0000
@@ -7,7 +7,6 @@
7import java.io.InputStream;7import java.io.InputStream;
88
9import dk.aau.cs.TCTL.Parsing.ParseException;9import dk.aau.cs.TCTL.Parsing.ParseException;
10import dk.aau.cs.io.batchProcessing.LoadedBatchProcessingModel;
1110
12public class ModelLoader {11public class ModelLoader {
1312
@@ -17,19 +16,19 @@
17 public LoadedModel load(File file) throws Exception{ 16 public LoadedModel load(File file) throws Exception{
18 TapnXmlLoader newFormatLoader = new TapnXmlLoader();17 TapnXmlLoader newFormatLoader = new TapnXmlLoader();
19 try{18 try{
20 return newFormatLoader.load(file);19 return newFormatLoader.load(file);
21 }catch(Throwable e1){20 }catch(Throwable e1){
22 try {21 try {
23 TapnLegacyXmlLoader oldFormatLoader = new TapnLegacyXmlLoader();22 TapnLegacyXmlLoader oldFormatLoader = new TapnLegacyXmlLoader();
24 return oldFormatLoader.load(file);23 return oldFormatLoader.load(file);
25 } catch(Throwable e2) {24 } catch(Throwable e2) {
26 throw new ParseException(e1.getMessage());25 throw new ParseException(e1.getMessage());
27 }26 }
28 }27 }
29 }28 }
30 29
31 30
32 public LoadedModel load(InputStream file) throws Exception{31 public LoadedModel load(InputStream file) throws Exception{
33 TapnXmlLoader newFormatLoader = new TapnXmlLoader();32 TapnXmlLoader newFormatLoader = new TapnXmlLoader();
34 ByteArrayOutputStream baos = new ByteArrayOutputStream();33 ByteArrayOutputStream baos = new ByteArrayOutputStream();
35 byte[] buffer = new byte[1024];34 byte[] buffer = new byte[1024];
@@ -45,13 +44,13 @@
4544
46 return newFormatLoader.load(new ByteArrayInputStream(baos.toByteArray()));45 return newFormatLoader.load(new ByteArrayInputStream(baos.toByteArray()));
4746
48 }catch(Throwable e1){47 }catch(Throwable e1){
49 try {48 try {
50 TapnLegacyXmlLoader oldFormatLoader = new TapnLegacyXmlLoader();49 TapnLegacyXmlLoader oldFormatLoader = new TapnLegacyXmlLoader();
5150
52 return oldFormatLoader.load(new ByteArrayInputStream(baos.toByteArray()));51 return oldFormatLoader.load(new ByteArrayInputStream(baos.toByteArray()));
5352
54 } catch(Throwable e2) {53 } catch(Throwable e2) {
55 throw new ParseException(e1.getMessage());54 throw new ParseException(e1.getMessage());
56 }55 }
57 }56 }
5857
=== modified file 'src/dk/aau/cs/io/PNMLoader.java'
--- src/dk/aau/cs/io/PNMLoader.java 2020-08-11 12:18:11 +0000
+++ src/dk/aau/cs/io/PNMLoader.java 2020-08-26 12:31:11 +0000
@@ -53,7 +53,7 @@
5353
54public class PNMLoader {54public class PNMLoader {
5555
56 private final TabContent.TAPNLens lens = new TabContent.TAPNLens(false, false);56 private final TabContent.TAPNLens lens = TabContent.TAPNLens.Default;
5757
58 enum GraphicsType { Position, Offset }58 enum GraphicsType { Position, Offset }
5959
@@ -120,7 +120,7 @@
120 120
121 network.setPaintNet(isNetDrawable());121 network.setPaintNet(isNetDrawable());
122 tapn.setCheckNames(true);122 tapn.setCheckNames(true);
123 return new LoadedModel(network, Arrays.asList(template), new ArrayList<TAPNQuery>());123 return new LoadedModel(network, Arrays.asList(template), new ArrayList<TAPNQuery>(), new ArrayList<>(), null);
124 }124 }
125125
126 private String getTAPNName(Node netNode) {126 private String getTAPNName(Node netNode) {
127127
=== modified file 'src/dk/aau/cs/io/TapnLegacyXmlLoader.java'
--- src/dk/aau/cs/io/TapnLegacyXmlLoader.java 2020-08-11 12:18:11 +0000
+++ src/dk/aau/cs/io/TapnLegacyXmlLoader.java 2020-08-26 12:31:11 +0000
@@ -84,7 +84,7 @@
84 private final IdResolver idResolver = new IdResolver();84 private final IdResolver idResolver = new IdResolver();
8585
86 private final Collection<String> messages = new ArrayList<>(10);86 private final Collection<String> messages = new ArrayList<>(10);
87 private final TabContent.TAPNLens lens = new TabContent.TAPNLens(true, false);87 private final TabContent.TAPNLens lens = TabContent.TAPNLens.Default;
8888
8989
90 public TapnLegacyXmlLoader() {}90 public TapnLegacyXmlLoader() {}
@@ -145,8 +145,8 @@
145 templates.add(parseTimedArcPetriNetAsOldFormat(nets.item(0), network));145 templates.add(parseTimedArcPetriNetAsOldFormat(nets.item(0), network));
146 146
147 checkThatQueriesUseExistingPlaces(network);147 checkThatQueriesUseExistingPlaces(network);
148 148
149 return new LoadedModel(network, templates, queries, messages);149 return new LoadedModel(network, templates, queries, messages, null);
150 }150 }
151151
152 private void checkThatQueriesUseExistingPlaces(TimedArcPetriNetNetwork network) {152 private void checkThatQueriesUseExistingPlaces(TimedArcPetriNetNetwork network) {
153153
=== modified file 'src/dk/aau/cs/io/TapnXmlLoader.java'
--- src/dk/aau/cs/io/TapnXmlLoader.java 2020-08-11 12:18:11 +0000
+++ src/dk/aau/cs/io/TapnXmlLoader.java 2020-08-26 12:31:11 +0000
@@ -71,7 +71,8 @@
71 private final IdResolver idResolver = new IdResolver();71 private final IdResolver idResolver = new IdResolver();
72 private final Collection<String> messages = new ArrayList<>(10);72 private final Collection<String> messages = new ArrayList<>(10);
7373
74 private TabContent.TAPNLens lens;74 boolean hasFeatureTag = false;
75 private TabContent.TAPNLens lens = TabContent.TAPNLens.Default;
7576
76 public TapnXmlLoader() {77 public TapnXmlLoader() {
7778
@@ -132,8 +133,11 @@
132 parseBound(doc, network);133 parseBound(doc, network);
133134
134135
135136 if (hasFeatureTag) {
136 return new LoadedModel(network, templates, queries,messages, lens);137 return new LoadedModel(network, templates, queries, messages, lens);
138 } else {
139 return new LoadedModel(network, templates, queries, messages, null);
140 }
137 }141 }
138142
139 private void parseBound(Document doc, TimedArcPetriNetNetwork network){143 private void parseBound(Document doc, TimedArcPetriNetNetwork network){
@@ -147,12 +151,12 @@
147 if (doc.getElementsByTagName("feature").getLength() > 0) {151 if (doc.getElementsByTagName("feature").getLength() > 0) {
148 NodeList nodeList = doc.getElementsByTagName("feature");152 NodeList nodeList = doc.getElementsByTagName("feature");
149153
154 hasFeatureTag = true;
155
150 var isTimed = Boolean.parseBoolean(nodeList.item(0).getAttributes().getNamedItem("isTimed").getNodeValue());156 var isTimed = Boolean.parseBoolean(nodeList.item(0).getAttributes().getNamedItem("isTimed").getNodeValue());
151 var isGame = Boolean.parseBoolean(nodeList.item(0).getAttributes().getNamedItem("isGame").getNodeValue());157 var isGame = Boolean.parseBoolean(nodeList.item(0).getAttributes().getNamedItem("isGame").getNodeValue());
152158
153 lens = new TabContent.TAPNLens(isTimed, isGame);159 lens = new TabContent.TAPNLens(isTimed, isGame);
154 } else {
155 lens = new TabContent.TAPNLens(true, false);
156 }160 }
157 }161 }
158162

Subscribers

People subscribed via source and target branches