]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/rules/PageSettingsTypicalRule.java
Fixed typical synchronization to work without template diagram desc
[simantics/platform.git] / 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;