--- /dev/null
+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