X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Ftypicals%2Frules%2FPageSettingsTypicalRule.java;fp=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Ftypicals%2Frules%2FPageSettingsTypicalRule.java;h=cf6c60f203967350bde81fea5b2ced5db0cadd05;hb=fd452722e97db9cf876f4f03a9e44fe750625a92;hp=0000000000000000000000000000000000000000;hpb=a4c65e93ad56fe4f0e43c9b173a218b31e9a33b2;p=simantics%2Fplatform.git 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 index 000000000..cf6c60f20 --- /dev/null +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/rules/PageSettingsTypicalRule.java @@ -0,0 +1,41 @@ +package org.simantics.modeling.typicals.rules; + +import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.exception.DatabaseException; +import org.simantics.diagram.query.DiagramRequests; +import org.simantics.diagram.synchronization.graph.DiagramGraphUtil; +import org.simantics.g2d.page.DiagramDesc; +import org.simantics.modeling.typicals.ITypicalSynchronizationRule; +import org.simantics.modeling.typicals.TypicalInfo; + +/** + * @author Tuukka Lehtonen + * @since 1.22.2, 1.25.0 + */ +public enum PageSettingsTypicalRule implements ITypicalSynchronizationRule { + + INSTANCE; + + public static PageSettingsTypicalRule get() { + return INSTANCE; + } + + @Override + public boolean synchronize(WriteGraph graph, Resource template, Resource instance, TypicalInfo info) throws DatabaseException { + DiagramDesc mdesc = graph.syncRequest(DiagramRequests.getDiagramDesc(template)); + DiagramDesc idesc = graph.syncRequest(DiagramRequests.getDiagramDesc(instance)); + if (mdesc.equals(idesc)) + return false; + + DiagramGraphUtil.setDiagramDesc(graph, instance, mdesc); + info.messageLog.add("\t\tset diagram page settings:" + + "\n\t\t\tshow page borders: " + mdesc.isPageBordersVisible() + + "\n\t\t\tshow margins: " + mdesc.isMarginsVisible() + + "\n\t\t\tgrid size: " + mdesc.getGridSize() + + "\n\t\t\tpage settings: " + mdesc.getPageDesc() + + "\n"); + return true; + } + +}