Fixed typical synchronization to work without template diagram desc 75/3175/1
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Fri, 30 Aug 2019 07:21:40 +0000 (10:21 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Fri, 30 Aug 2019 07:21:40 +0000 (10:21 +0300)
gitlab #370

Change-Id: I243d9baa3939234c9b31e1c8f34526b2c9fe641f

bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/rules/PageSettingsTypicalRule.java

index 4ee96f75d8e062fad53dea40bc81e30c997e5b2a..799579377a614aecf4e15aa8e0ceacc241572b56 100644 (file)
@@ -23,7 +23,14 @@ public enum PageSettingsTypicalRule implements ITypicalSynchronizationRule {
 
        @Override
        public boolean synchronize(WriteGraph graph, Resource template, Resource instance, TypicalInfo info) throws DatabaseException {
+               // Diagrams should always have some sort of diagram description.
+               // If the template doesn't have one, the existing description
+               // from the instance shall not be removed.
                DiagramDesc mdesc = graph.syncRequest(DiagramRequests.getDiagramDesc(template));
+               if (mdesc == null) {
+                       info.messageLog.add("\t\ttemplate doesn't have any diagram page settings, doing nothing");
+                       return false;
+               }
                DiagramDesc idesc = graph.syncRequest(DiagramRequests.getDiagramDesc(instance));
                if (mdesc.equals(idesc))
                        return false;