Fixed area charts on dashboards
authorVictor Kirhenshtein <victor@netxms.org>
Wed, 29 Jun 2016 14:41:41 +0000 (17:41 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Wed, 29 Jun 2016 14:41:41 +0000 (17:41 +0300)
src/java/netxms-eclipse/Dashboard/src/org/netxms/ui/eclipse/dashboard/propertypages/AbstractChart.java
src/java/netxms-eclipse/Dashboard/src/org/netxms/ui/eclipse/dashboard/widgets/LineChartElement.java
src/java/netxms-eclipse/Dashboard/src/org/netxms/ui/eclipse/dashboard/widgets/internal/LineChartConfig.java
webui/webapp/Dashboard/src/org/netxms/ui/eclipse/dashboard/propertypages/AbstractChart.java
webui/webapp/Dashboard/src/org/netxms/ui/eclipse/dashboard/widgets/LineChartElement.java
webui/webapp/Dashboard/src/org/netxms/ui/eclipse/dashboard/widgets/internal/LineChartConfig.java

index d9cd4fe..91d9f6f 100644 (file)
@@ -61,6 +61,7 @@ public class AbstractChart extends PropertyPage
        private Button checkTransposed;
    private Button checkLogScale;
    private Button checkStacked;
+   private Button checkAreaChart;
    private LabeledSpinner lineWidth;
    private YAxisRangeEditor yAxisRange;   
 
@@ -144,6 +145,13 @@ public class AbstractChart extends PropertyPage
          gd = new GridData();
          gd.horizontalSpan = layout.numColumns;
          checkStacked.setLayoutData(gd);
+         
+         checkAreaChart = new Button(optionsGroup, SWT.CHECK);
+         checkAreaChart.setText("&Area chart");
+         checkAreaChart.setSelection(((LineChartConfig)config).isArea());
+         gd = new GridData();
+         gd.horizontalSpan = layout.numColumns;
+         checkAreaChart.setLayoutData(gd);
       }
       
       checkTranslucent = new Button(optionsGroup, SWT.CHECK);
@@ -317,6 +325,7 @@ public class AbstractChart extends PropertyPage
          ((LineChartConfig)config).setExtendedLegend(checkExtendedLegend.getSelection());
          ((LineChartConfig)config).setLogScaleEnabled(checkLogScale.getSelection());
          ((LineChartConfig)config).setStacked(checkStacked.getSelection());
+         ((LineChartConfig)config).setArea(checkAreaChart.getSelection());
          ((LineChartConfig)config).setLineWidth(lineWidth.getSelection());
                }
                return true;
index c9ac275..4c85c53 100644 (file)
@@ -103,7 +103,7 @@ public class LineChartElement extends ElementWidget
                        int color = dci.getColorAsInt();
                        if (color == -1)
                                color = ChartColor.getDefaultColor(index).getRGB();
-                       styles.add(new GraphItemStyle(dci.area ? GraphItemStyle.AREA : GraphItemStyle.LINE, color, 2, dci.invertValues ? GraphItemStyle.INVERTED : 0));
+                       styles.add(new GraphItemStyle(getDisplayType(dci), color, 2, dci.invertValues ? GraphItemStyle.INVERTED : 0));
                        index++;
                }
                chart.setItemStyles(styles);
@@ -129,6 +129,24 @@ public class LineChartElement extends ElementWidget
       });
        }
 
+   /**
+    * @param dci
+    * @return
+    */
+   private int getDisplayType(ChartDciConfig dci)
+   {
+      int type = dci.getDisplayType();
+      switch(type)
+      {
+         case ChartDciConfig.AREA:
+            return GraphItemStyle.AREA;
+         case ChartDciConfig.LINE:
+            return GraphItemStyle.LINE;
+         default:
+            return config.isArea() ? GraphItemStyle.AREA : GraphItemStyle.LINE;
+      } 
+   }
+       
        /**
         * Refresh graph's data
         */
index 40d0890..986fa91 100644 (file)
@@ -48,6 +48,9 @@ public class LineChartConfig extends AbstractChartConfig
    
    @Element(required = false)
    private int lineWidth = 2;
+   
+   @Element(required = false)
+   private boolean area = false;
 
    /**
     * Default constructor
@@ -201,4 +204,20 @@ public class LineChartConfig extends AbstractChartConfig
    {
       this.lineWidth = lineWidth;
    }
+
+   /**
+    * @return the area
+    */
+   public boolean isArea()
+   {
+      return area;
+   }
+
+   /**
+    * @param area the area to set
+    */
+   public void setArea(boolean area)
+   {
+      this.area = area;
+   }
 }
index d9cd4fe..91d9f6f 100644 (file)
@@ -61,6 +61,7 @@ public class AbstractChart extends PropertyPage
        private Button checkTransposed;
    private Button checkLogScale;
    private Button checkStacked;
+   private Button checkAreaChart;
    private LabeledSpinner lineWidth;
    private YAxisRangeEditor yAxisRange;   
 
@@ -144,6 +145,13 @@ public class AbstractChart extends PropertyPage
          gd = new GridData();
          gd.horizontalSpan = layout.numColumns;
          checkStacked.setLayoutData(gd);
+         
+         checkAreaChart = new Button(optionsGroup, SWT.CHECK);
+         checkAreaChart.setText("&Area chart");
+         checkAreaChart.setSelection(((LineChartConfig)config).isArea());
+         gd = new GridData();
+         gd.horizontalSpan = layout.numColumns;
+         checkAreaChart.setLayoutData(gd);
       }
       
       checkTranslucent = new Button(optionsGroup, SWT.CHECK);
@@ -317,6 +325,7 @@ public class AbstractChart extends PropertyPage
          ((LineChartConfig)config).setExtendedLegend(checkExtendedLegend.getSelection());
          ((LineChartConfig)config).setLogScaleEnabled(checkLogScale.getSelection());
          ((LineChartConfig)config).setStacked(checkStacked.getSelection());
+         ((LineChartConfig)config).setArea(checkAreaChart.getSelection());
          ((LineChartConfig)config).setLineWidth(lineWidth.getSelection());
                }
                return true;
index c9ac275..4c85c53 100644 (file)
@@ -103,7 +103,7 @@ public class LineChartElement extends ElementWidget
                        int color = dci.getColorAsInt();
                        if (color == -1)
                                color = ChartColor.getDefaultColor(index).getRGB();
-                       styles.add(new GraphItemStyle(dci.area ? GraphItemStyle.AREA : GraphItemStyle.LINE, color, 2, dci.invertValues ? GraphItemStyle.INVERTED : 0));
+                       styles.add(new GraphItemStyle(getDisplayType(dci), color, 2, dci.invertValues ? GraphItemStyle.INVERTED : 0));
                        index++;
                }
                chart.setItemStyles(styles);
@@ -129,6 +129,24 @@ public class LineChartElement extends ElementWidget
       });
        }
 
+   /**
+    * @param dci
+    * @return
+    */
+   private int getDisplayType(ChartDciConfig dci)
+   {
+      int type = dci.getDisplayType();
+      switch(type)
+      {
+         case ChartDciConfig.AREA:
+            return GraphItemStyle.AREA;
+         case ChartDciConfig.LINE:
+            return GraphItemStyle.LINE;
+         default:
+            return config.isArea() ? GraphItemStyle.AREA : GraphItemStyle.LINE;
+      } 
+   }
+       
        /**
         * Refresh graph's data
         */
index 40d0890..986fa91 100644 (file)
@@ -48,6 +48,9 @@ public class LineChartConfig extends AbstractChartConfig
    
    @Element(required = false)
    private int lineWidth = 2;
+   
+   @Element(required = false)
+   private boolean area = false;
 
    /**
     * Default constructor
@@ -201,4 +204,20 @@ public class LineChartConfig extends AbstractChartConfig
    {
       this.lineWidth = lineWidth;
    }
+
+   /**
+    * @return the area
+    */
+   public boolean isArea()
+   {
+      return area;
+   }
+
+   /**
+    * @param area the area to set
+    */
+   public void setArea(boolean area)
+   {
+      this.area = area;
+   }
 }