X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram.profile%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fprofile%2Fview%2FProfileCheckContributor.java;h=37e6d81e394a11070a363b86a407a14ede3d1e35;hb=08dc7080753f3ea35985e76e9effb9d3ff92c3b5;hp=31bb1a4cd244ab31e06f083797c65fafacceb8ef;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfileCheckContributor.java b/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfileCheckContributor.java index 31bb1a4cd..37e6d81e3 100644 --- a/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfileCheckContributor.java +++ b/bundles/org.simantics.diagram.profile/src/org/simantics/diagram/profile/view/ProfileCheckContributor.java @@ -1,60 +1,59 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.diagram.profile.view; - -import java.util.Collection; - -import org.simantics.browsing.ui.CheckedState; -import org.simantics.browsing.ui.model.check.CheckedStateRule; -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.exception.DatabaseException; -import org.simantics.diagram.stubs.DiagramResource; -import org.simantics.scenegraph.profile.request.ProfileActiveEntryResources; -import org.simantics.scenegraph.profile.request.ProfileEntryResources; -import org.simantics.simulation.ontology.SimulationResource; - -public class ProfileCheckContributor implements CheckedStateRule { - - @Override - public boolean isCompatible(Class contentType) { - return contentType.equals(ResourcePair.class); - } - - @Override - public CheckedState getCheckedState(ReadGraph graph, Object parent) - throws DatabaseException { - - ResourcePair entry = (ResourcePair)parent; - DiagramResource DIA = DiagramResource.getInstance(graph); - SimulationResource SIMU = SimulationResource.getInstance(graph); - - if(graph.isInstanceOf(entry.getSecond(), DIA.Profile)) { - - Resource list = graph.getPossibleObject(entry.getSecond(), DIA.HasEntries); - Collection activeEntries = graph.syncRequest( new ProfileActiveEntryResources(entry.getFirst(), list) ); - if (activeEntries.isEmpty()) { - return CheckedState.NOT_CHECKED; - } else { - Collection entries = graph.syncRequest( new ProfileEntryResources(entry.getFirst(), list) ); - return entries.equals(activeEntries) ? CheckedState.CHECKED : CheckedState.GRAYED; - } - - } else if(graph.isInstanceOf(entry.getSecond(), DIA.ProfileEntry)) { - if(graph.hasStatement(entry.getFirst(), SIMU.IsActive, entry.getSecond())) return CheckedState.CHECKED; - } - - return CheckedState.NOT_CHECKED; - - } - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.diagram.profile.view; + +import java.util.Collection; + +import org.simantics.browsing.ui.CheckedState; +import org.simantics.browsing.ui.model.check.CheckedStateRule; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.exception.DatabaseException; +import org.simantics.diagram.stubs.DiagramResource; +import org.simantics.scenegraph.profile.ProfileUtils; +import org.simantics.scenegraph.profile.request.ProfileActiveEntryResources; +import org.simantics.scenegraph.profile.request.ProfileEntryResources; + +public class ProfileCheckContributor implements CheckedStateRule { + + @Override + public boolean isCompatible(Class contentType) { + return contentType.equals(ProfileTuple.class); + } + + @Override + public CheckedState getCheckedState(ReadGraph graph, Object parent) + throws DatabaseException { + + ProfileTuple tuple = (ProfileTuple)parent; + Resource activeProfile = tuple.getBaseProfile(); + Resource entry = tuple.getEntry(); + DiagramResource DIA = DiagramResource.getInstance(graph); + + if(graph.isInstanceOf(entry, DIA.Profile)) { + Resource list = graph.getPossibleObject(entry, DIA.HasEntries); + Collection activeEntries = graph.syncRequest( new ProfileActiveEntryResources(activeProfile, list) ); + if (activeEntries.isEmpty()) { + return CheckedState.NOT_CHECKED; + } else { + Collection entries = graph.syncRequest( new ProfileEntryResources(activeProfile, list) ); + return entries.equals(activeEntries) ? CheckedState.CHECKED : CheckedState.GRAYED; + } + } + + if(ProfileUtils.isActive(graph, tuple.getRuntimeDiagram(), activeProfile, entry)) return CheckedState.CHECKED; + + return CheckedState.NOT_CHECKED; + + } + +}