]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.trend/src/org/simantics/trend/impl/TrendNode.java
New trend axis mode SingleAxisShowLegends
[simantics/platform.git] / bundles / org.simantics.trend / src / org / simantics / trend / impl / TrendNode.java
index ddbd4934e0763dd6dd82468a0031563b2ea56f5d..80ffa97679a748d6afd218cd5876ebb0a73050e2 100644 (file)
@@ -87,6 +87,7 @@ public class TrendNode extends G2DParentNode implements TrendLayout {
        public TrendQualitySpec quality = TrendQualitySpec.DEFAULT;
        public boolean printing = false;
        boolean singleAxis;
+       boolean singleAxisShowLegends;
        
        // Data nodes
        List<ItemNode> analogItems = new ArrayList<ItemNode>();
@@ -322,7 +323,27 @@ public class TrendNode extends G2DParentNode implements TrendLayout {
 
                // Setup vertical ruler nodes
                singleAxis = spec.axisMode == YAxisMode.SingleAxis;
-               if (singleAxis) {
+               singleAxisShowLegends = spec.axisMode == YAxisMode.SingleAxisShowLegends;
+               if(singleAxisShowLegends) {
+                       if (yaxisModeChanged || vertRulers.size() != 1 || vertRuler == null) {
+                               for (VertRuler vr : vertRulers) removeNode(vr);
+                               vertRulers.clear();
+
+                               vertRuler = addNode("VertRuler", VertRuler.class);
+                               vertRulers.add( vertRuler );
+                       }
+
+                       vertRuler.manualscale = true;
+                       vertRuler.singleAxisShowLegendsMaxLegends = spec.singleAxisShowLegendsMaxLegends;
+                       for (int i=0; i<analogItems.size(); i++) {
+                               ItemNode item = analogItems.get(i);
+                               vertRuler.addExtraLabel(item.item.label, item.color);
+                               item.ruler = vertRuler;
+                               item.trendNode = this;
+                               if (item.item.scale instanceof Scale.Manual == false) vertRuler.manualscale = false;
+                       }
+               }
+               else if (singleAxis) {
                        if (yaxisModeChanged || vertRulers.size() != 1 || vertRuler == null) {
                                for (VertRuler vr : vertRulers) removeNode(vr);
                                vertRulers.clear();
@@ -370,8 +391,8 @@ public class TrendNode extends G2DParentNode implements TrendLayout {
                                ItemNode item = analogItems.get(i);
                                VertRuler vr = vertRulers.get(i);
                                vr.setZIndex(1000 + i);
-                               vr.color = item.color;
                                vr.label = item.item.label;
+                               vr.color = item.color;
                                vr.manualscale = item.item.scale instanceof Scale.Manual;
                                item.ruler = vr;
                                item.trendNode = this;