]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/rules/PageSettingsTypicalRule.java
Sync git svn branch with SVN repository r33203.
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / typicals / rules / PageSettingsTypicalRule.java
diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/rules/PageSettingsTypicalRule.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/rules/PageSettingsTypicalRule.java
new file mode 100644 (file)
index 0000000..cf6c60f
--- /dev/null
@@ -0,0 +1,41 @@
+package org.simantics.modeling.typicals.rules;\r
+\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.WriteGraph;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.diagram.query.DiagramRequests;\r
+import org.simantics.diagram.synchronization.graph.DiagramGraphUtil;\r
+import org.simantics.g2d.page.DiagramDesc;\r
+import org.simantics.modeling.typicals.ITypicalSynchronizationRule;\r
+import org.simantics.modeling.typicals.TypicalInfo;\r
+\r
+/**\r
+ * @author Tuukka Lehtonen\r
+ * @since 1.22.2, 1.25.0\r
+ */\r
+public enum PageSettingsTypicalRule implements ITypicalSynchronizationRule {\r
+\r
+       INSTANCE;\r
+\r
+       public static PageSettingsTypicalRule get() {\r
+               return INSTANCE;\r
+       }\r
+\r
+       @Override\r
+       public boolean synchronize(WriteGraph graph, Resource template, Resource instance, TypicalInfo info) throws DatabaseException {\r
+               DiagramDesc mdesc = graph.syncRequest(DiagramRequests.getDiagramDesc(template));\r
+               DiagramDesc idesc = graph.syncRequest(DiagramRequests.getDiagramDesc(instance));\r
+               if (mdesc.equals(idesc))\r
+                       return false;\r
+\r
+               DiagramGraphUtil.setDiagramDesc(graph, instance, mdesc);\r
+               info.messageLog.add("\t\tset diagram page settings:"\r
+                               + "\n\t\t\tshow page borders: " + mdesc.isPageBordersVisible()\r
+                               + "\n\t\t\tshow margins:      " + mdesc.isMarginsVisible()\r
+                               + "\n\t\t\tgrid size:         " + mdesc.getGridSize()\r
+                               + "\n\t\t\tpage settings:     " + mdesc.getPageDesc()\r
+                               + "\n");\r
+               return true;\r
+       }\r
+\r
+}\r