X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fflag%2FDiagramFlagPreferences.java;h=b11d89151b0c0aada933c9a96fb52233dde92df7;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=9756606221504173214c986a7c8e05ea4c8270b3;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/flag/DiagramFlagPreferences.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/flag/DiagramFlagPreferences.java index 975660622..b11d89151 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/flag/DiagramFlagPreferences.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/flag/DiagramFlagPreferences.java @@ -1,109 +1,109 @@ -package org.simantics.diagram.flag; - -import org.simantics.Simantics; -import org.simantics.db.ReadGraph; -import org.simantics.db.RequestProcessor; -import org.simantics.db.Resource; -import org.simantics.db.Session; -import org.simantics.db.WriteGraph; -import org.simantics.db.common.primitiverequest.PossibleObject; -import org.simantics.db.common.request.ResourceRead; -import org.simantics.db.common.request.WriteRequest; -import org.simantics.db.exception.DatabaseException; -import org.simantics.diagram.stubs.DiagramResource; -import org.simantics.utils.datastructures.Callback; -import org.simantics.utils.ui.ErrorLogger; - -/** - * @author Tuukka Lehtonen - */ -public class DiagramFlagPreferences { - - /** - * Return the resource describing the currently active flag labeling scheme - * from the specified resource. The default intended resource for checking - * the scheme from is the active project. - */ - public static class ReadFlagLabelingSchemeResource extends ResourceRead { - - public ReadFlagLabelingSchemeResource(Resource resource) { - super(resource); - } - - @Override - public Resource perform(ReadGraph graph) throws DatabaseException { - DiagramResource DIA = DiagramResource.getInstance(graph); - Resource scheme = graph.syncRequest(new PossibleObject(resource, - DIA.UsesLocalFlagLabelingScheme)); - return scheme; - } - - } - - /** - * Adapt {@link FlagLabelingScheme} instance from the resource describing - * the currently active flag labeling scheme according to - * {@link ReadFlagLabelingSchemeResource}. - */ - public static class ReadFlagLabelingScheme extends ResourceRead { - - public ReadFlagLabelingScheme(Resource resource) { - super(resource); - } - - @Override - public FlagLabelingScheme perform(ReadGraph graph) throws DatabaseException { - DiagramResource DIA = DiagramResource.getInstance(graph); - Resource scheme = graph.syncRequest(new ReadFlagLabelingSchemeResource(resource)); - if (scheme == null) - return graph.adapt(DIA.FlagLabelingScheme_Alphabetical, FlagLabelingScheme.class); - return graph.adapt(scheme, FlagLabelingScheme.class); - } - - } - - public static Resource getActiveFlagLabelingSchemeResource(RequestProcessor processor) throws DatabaseException { - Resource project = Simantics.getProjectResource(); - if (project == null) - throw new IllegalStateException("no project is active"); - - return processor.syncRequest(new ReadFlagLabelingSchemeResource(project)); - } - - public static FlagLabelingScheme getActiveFlagLabelingScheme(RequestProcessor processor) throws DatabaseException { - Resource project = Simantics.getProjectResource(); - if (project == null) - throw new IllegalStateException("no project is active"); - - return processor.syncRequest(new ReadFlagLabelingScheme(project)); - } - - public static void setProjectFlagLabelingScheme(Resource scheme) { - Resource project = Simantics.getProjectResource(); - if (project == null) - throw new IllegalStateException("no project is active"); - setFlagLabelingScheme(Simantics.getSession(), project, scheme); - } - - public static void setFlagLabelingScheme(Session session, final Resource forTarget, final Resource scheme) { - session.asyncRequest(new WriteRequest() { - @Override - public void perform(WriteGraph graph) throws DatabaseException { - setFlagLabelingScheme(graph, forTarget, scheme); - } - }, new Callback() { - @Override - public void run(DatabaseException parameter) { - if (parameter != null) - ErrorLogger.defaultLogError(parameter); - } - }); - } - - public static void setFlagLabelingScheme(WriteGraph graph, Resource forTarget, Resource scheme) throws DatabaseException { - DiagramResource DIA = DiagramResource.getInstance(graph); - graph.deny(forTarget, DIA.UsesLocalFlagLabelingScheme); - graph.claim(forTarget, DIA.UsesLocalFlagLabelingScheme, scheme); - } - -} +package org.simantics.diagram.flag; + +import org.simantics.Simantics; +import org.simantics.db.ReadGraph; +import org.simantics.db.RequestProcessor; +import org.simantics.db.Resource; +import org.simantics.db.Session; +import org.simantics.db.WriteGraph; +import org.simantics.db.common.primitiverequest.PossibleObject; +import org.simantics.db.common.request.ResourceRead; +import org.simantics.db.common.request.WriteRequest; +import org.simantics.db.exception.DatabaseException; +import org.simantics.diagram.stubs.DiagramResource; +import org.simantics.utils.datastructures.Callback; +import org.simantics.utils.ui.ErrorLogger; + +/** + * @author Tuukka Lehtonen + */ +public class DiagramFlagPreferences { + + /** + * Return the resource describing the currently active flag labeling scheme + * from the specified resource. The default intended resource for checking + * the scheme from is the active project. + */ + public static class ReadFlagLabelingSchemeResource extends ResourceRead { + + public ReadFlagLabelingSchemeResource(Resource resource) { + super(resource); + } + + @Override + public Resource perform(ReadGraph graph) throws DatabaseException { + DiagramResource DIA = DiagramResource.getInstance(graph); + Resource scheme = graph.syncRequest(new PossibleObject(resource, + DIA.UsesLocalFlagLabelingScheme)); + return scheme; + } + + } + + /** + * Adapt {@link FlagLabelingScheme} instance from the resource describing + * the currently active flag labeling scheme according to + * {@link ReadFlagLabelingSchemeResource}. + */ + public static class ReadFlagLabelingScheme extends ResourceRead { + + public ReadFlagLabelingScheme(Resource resource) { + super(resource); + } + + @Override + public FlagLabelingScheme perform(ReadGraph graph) throws DatabaseException { + DiagramResource DIA = DiagramResource.getInstance(graph); + Resource scheme = graph.syncRequest(new ReadFlagLabelingSchemeResource(resource)); + if (scheme == null) + return graph.adapt(DIA.FlagLabelingScheme_Alphabetical, FlagLabelingScheme.class); + return graph.adapt(scheme, FlagLabelingScheme.class); + } + + } + + public static Resource getActiveFlagLabelingSchemeResource(RequestProcessor processor) throws DatabaseException { + Resource project = Simantics.getProjectResource(); + if (project == null) + throw new IllegalStateException("no project is active"); + + return processor.syncRequest(new ReadFlagLabelingSchemeResource(project)); + } + + public static FlagLabelingScheme getActiveFlagLabelingScheme(RequestProcessor processor) throws DatabaseException { + Resource project = Simantics.getProjectResource(); + if (project == null) + throw new IllegalStateException("no project is active"); + + return processor.syncRequest(new ReadFlagLabelingScheme(project)); + } + + public static void setProjectFlagLabelingScheme(Resource scheme) { + Resource project = Simantics.getProjectResource(); + if (project == null) + throw new IllegalStateException("no project is active"); + setFlagLabelingScheme(Simantics.getSession(), project, scheme); + } + + public static void setFlagLabelingScheme(Session session, final Resource forTarget, final Resource scheme) { + session.asyncRequest(new WriteRequest() { + @Override + public void perform(WriteGraph graph) throws DatabaseException { + setFlagLabelingScheme(graph, forTarget, scheme); + } + }, new Callback() { + @Override + public void run(DatabaseException parameter) { + if (parameter != null) + ErrorLogger.defaultLogError(parameter); + } + }); + } + + public static void setFlagLabelingScheme(WriteGraph graph, Resource forTarget, Resource scheme) throws DatabaseException { + DiagramResource DIA = DiagramResource.getInstance(graph); + graph.deny(forTarget, DIA.UsesLocalFlagLabelingScheme); + graph.claim(forTarget, DIA.UsesLocalFlagLabelingScheme, scheme); + } + +}