]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.selection/src/org/simantics/district/selection/ElementSelector.java
Fixed most warnings from district codebase after JavaSE-11 switch
[simantics/district.git] / org.simantics.district.selection / src / org / simantics / district / selection / ElementSelector.java
index f015bddf0f2ccc0814788c956d59ff05064f90dd..ff978059dab381aaf86d651fede0f3815613f181 100644 (file)
@@ -56,6 +56,8 @@ public class ElementSelector {
        Selector selector;
        Condition condition;
        
+       private float[] color;
+       
        static Logger LOG = LoggerFactory.getLogger(ElementSelector.class);
        
        static ElementSelectionResource ES;
@@ -81,6 +83,9 @@ public class ElementSelector {
                try {
                        this.name = graph.getRelatedValue(resource, L0.HasLabel);
                        this.expression = getExpression(graph, resource);
+                       
+                       float[] color = graph.getPossibleRelatedValue(resource, ES.Selection_HasHighlightColor);
+                       this.color = color;
                } catch (DatabaseException e) {
                        LOG.error("Error reading element selector", e);
                        throw e;
@@ -149,6 +154,13 @@ public class ElementSelector {
        public Condition getCondition() {
                return condition;
        }
+       
+       /**
+        * Get the selection highlight color as a four element BGRA array.
+        */
+       public float[] getColor() {
+               return color;
+       }
 
        /**
         * 
@@ -689,11 +701,14 @@ public class ElementSelector {
                
                Condition(ReadGraph graph, Resource r) throws DatabaseException {
                        this(r);
+                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
                        isInverse = graph.hasStatement(r, ES.Condition_IsInverse, r);
                }
                
                public abstract boolean match(ReadGraph graph, Resource r) throws DatabaseException;
                public Resource update(WriteGraph graph) throws DatabaseException {
+                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
+                       
                        assert(resource != null);
                        if (isInverse)
                                graph.claim(resource, ES.Condition_IsInverse, resource);
@@ -707,6 +722,7 @@ public class ElementSelector {
                public PropertyCondition(ReadGraph graph, Resource r) throws DatabaseException {
                        super(graph, r);
                        
+                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
                        this.propertyName = graph.getRelatedValue(resource, ES.PropertyCondition_HasPropertyName);
                        this.lowerLimit = graph.getPossibleRelatedValue(resource, ES.PropertyCondition_HasLowerLimit);
                        this.upperLimit = graph.getPossibleRelatedValue(resource, ES.PropertyCondition_HasUpperLimit);
@@ -768,6 +784,7 @@ public class ElementSelector {
                public RegionCondition(ReadGraph graph, Resource r) throws DatabaseException {
                        super(graph, r);
                        
+                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
                        DiagramRegionsResource DR = DiagramRegionsResource.getInstance(graph);
                        this.regionResource = graph.getPossibleObject(resource, ES.RegionCondition_HasRegion);
                        this.region = regionResource != null ? graph.getRelatedValue(regionResource, DR.Region_area) : null;
@@ -802,8 +819,9 @@ public class ElementSelector {
                
                @Override
                public Resource update(WriteGraph graph) throws DatabaseException {
-                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
                        Layer0 L0 = Layer0.getInstance(graph);
+                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
+                       DiagramRegionsResource DR = DiagramRegionsResource.getInstance(graph);
                        
                        if (resource == null) {
                                resource = graph.newResource();
@@ -815,7 +833,6 @@ public class ElementSelector {
                        graph.claim(resource, ES.RegionCondition_HasRegion, regionResource);
                        
                        // Re-read region data to match DB
-                       DiagramRegionsResource DR = DiagramRegionsResource.getInstance(graph);
                        this.region = regionResource != null ? graph.getRelatedValue(regionResource, DR.Region_area, Bindings.DOUBLE_ARRAY) : null;
                        this.path = createPathForRegion(region);
                        
@@ -927,8 +944,8 @@ public class ElementSelector {
                
                @Override
                public Resource update(WriteGraph graph) throws DatabaseException {
-                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
                        Layer0 L0 = Layer0.getInstance(graph);
+                       ElementSelectionResource ES = ElementSelectionResource.getInstance(graph);
                        
                        if (resource == null) {
                                resource = graph.newResource();