1 package org.simantics.district.network.profile;
3 import org.simantics.db.ReadGraph;
4 import org.simantics.db.Resource;
5 import org.simantics.db.exception.DatabaseException;
6 import org.simantics.diagram.profile.ProfileKeys;
7 import org.simantics.diagram.profile.StyleBase;
8 import org.simantics.g2d.diagram.IDiagram;
9 import org.simantics.g2d.diagram.handler.DataElementMap;
10 import org.simantics.g2d.element.ElementUtils;
11 import org.simantics.g2d.element.IElement;
12 import org.simantics.scenegraph.INode;
13 import org.simantics.scenegraph.g2d.nodes.SingleElementNode;
14 import org.simantics.scenegraph.profile.DataNodeMap;
15 import org.simantics.scenegraph.profile.EvaluationContext;
18 * @author Tuukka Lehtonen
20 public class HideStyle extends StyleBase<Boolean> {
23 public Boolean calculateStyle(ReadGraph graph, Resource runtimeDiagram, Resource entry, Resource groupItem) throws DatabaseException {
28 public void applyStyleForItem(EvaluationContext evaluationContext, DataNodeMap map, Object item, Boolean value) {
29 INode node = map.getNode(item);
31 evaluationContext.update();
35 IDiagram diagram = evaluationContext.getConstant(ProfileKeys.DIAGRAM);
36 DataElementMap emap = diagram.getDiagramClass().getSingleItem(DataElementMap.class);
37 IElement element = emap.getElement(diagram, item);
41 hideElements(evaluationContext, diagram, element, node);
45 protected void cleanupStyleForItem(EvaluationContext evaluationContext, DataNodeMap map, Object item) {
46 IDiagram diagram = evaluationContext.getConstant(ProfileKeys.DIAGRAM);
47 DataElementMap emap = diagram.getDiagramClass().getSingleItem(DataElementMap.class);
49 INode node = map.getNode(item);
52 IElement element = emap.getElement(diagram, item);
56 showElements(diagram, element, node);
59 protected void hideElements(EvaluationContext evaluationContext, IDiagram diagram, IElement element, INode node) {
60 setVisibility(element, node, false);
63 protected void showElements(IDiagram diagram, IElement element, INode node) {
64 setVisibility(element, node, true);
67 protected void setVisibility(IElement element, INode node, boolean visible) {
69 ElementUtils.setHidden(element, !visible);
70 if (node instanceof SingleElementNode) {
71 ((SingleElementNode) node).setHidden(!visible);
76 public String toString() {