[Title] Disable chart auto range
authorsanghyunnim.lee <sanghyunnim.lee@samsung.com>
Thu, 5 Jul 2012 23:59:36 +0000 (08:59 +0900)
committersanghyunnim.lee <sanghyunnim.lee@samsung.com>
Thu, 5 Jul 2012 23:59:36 +0000 (08:59 +0900)
[Type]
[Module]
[Priority]
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/TempConstants.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/TimelineMaster.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/CPUFrequencyChart.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/HeapChart.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/ProcessMemoryChart.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/SystemMemoryChart.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/TimelineChart.java

index 234f085..e2d3216 100644 (file)
@@ -86,4 +86,6 @@ public class TempConstants {
        public static Color AREA_COLOR_GREEN = new Color(68, 98, 12);
        public static Color AREA_COLOR_PURPLE = new Color(139, 42, 118);
        public static Color AREA_COLOR_MAROON = new Color(126, 41, 2);
+       
+       public static double chartRangeRatio = 0.85;
 }
index 712f2c7..b15e82b 100644 (file)
@@ -22,7 +22,6 @@ import org.jfree.chart.annotations.XYImageAnnotation;
 import org.jfree.chart.annotations.XYTextAnnotation;
 import org.jfree.chart.plot.IntervalMarker;
 import org.jfree.chart.plot.XYPlot;
-import org.jfree.data.Range;
 import org.jfree.ui.Layer;
 import org.jfree.ui.RectangleAnchor;
 import org.tizen.dynamicanalyzer.constants.AnalyzerConstants;
@@ -488,12 +487,6 @@ public class TimelineMaster {
                return TempConstants.NOT_INITED;
        }
 
-       private XYPlot availableMemChartPlot;
-
-       public void setSystemMemChartPlot(XYPlot plot) {
-               availableMemChartPlot = plot;
-       }
-
        public void initAppInfo(String[] datas) {
                setTotalMemory(Integer.parseInt(datas[AnalyzerConstants.APP_INFO_SYSTEM_MEMORY_SIZE]));
                TempConstants.SUPPORT_WIFI = datas[AnalyzerConstants.APP_INFO_WIFI_SUPPORT].equals("1") ? true : false; //$NON-NLS-1$
@@ -503,12 +496,6 @@ public class TimelineMaster {
 
        private void setTotalMemory(final int totalMemory) {
                TempConstants.TOTAL_MEMORY = totalMemory;
-               Display.getDefault().asyncExec(new Runnable() {
-                       @Override
-                       public void run() {
-                               availableMemChartPlot.getRangeAxis().setRange(new Range(0, TempConstants.TOTAL_MEMORY * 10 / 9));
-                       }
-               });
        }
 
        public void putFileTimelineData(FileTimelineData ftd) {
index 5707801..9baf33c 100644 (file)
@@ -11,6 +11,7 @@ import org.jfree.chart.JFreeChart;
 import org.jfree.chart.plot.PlotOrientation;
 import org.jfree.chart.plot.XYPlot;
 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
+import org.jfree.data.Range;
 import org.jfree.data.time.TimeSeries;
 import org.jfree.data.xy.XYDataItem;
 import org.jfree.data.xy.XYSeries;
@@ -27,6 +28,10 @@ public class CPUFrequencyChart extends TimelineChart {
        
        public static final Color COLOR_FREQ = TempConstants.LINE_COLOR_VIOLET;
 
+       private static XYPlot xyPlot;
+       private static double chartMaxVal = 0;
+       private static boolean needUpdateChartRange = false;
+       
        class CPUFrequencySeriesInfo{
                private XYSeries baseSeries;
                private Vector<XYDataItem> newXYDataItems;
@@ -75,10 +80,11 @@ public class CPUFrequencyChart extends TimelineChart {
                
                setChartStyle();
                
-               XYPlot xyplot = chart.getXYPlot();
-               xyplot.setForegroundAlpha(1.0f);
+               xyPlot = chart.getXYPlot();
+               xyPlot.setForegroundAlpha(1.0f);
+               xyPlot.getRangeAxis().setAutoRange(false);
                
-               setSeriesRendering(xyplot);
+               setSeriesRendering();
                
                return chart;
        }
@@ -98,6 +104,11 @@ public class CPUFrequencyChart extends TimelineChart {
                                        freequencyInfo.baseSeries.add(xyDataItem);
                                }
                                freequencyInfo.newXYDataItems.clear();
+                               
+                               if(needUpdateChartRange) {
+                                       xyPlot.getRangeAxis().setRange(new Range(0, chartMaxVal / TempConstants.chartRangeRatio));
+                                       needUpdateChartRange = false;
+                               }
                        }
                });
        }
@@ -106,6 +117,10 @@ public class CPUFrequencyChart extends TimelineChart {
        public void clear() {
                freequencyInfo.newXYDataItems.clear();
 
+               xyPlot.getRangeAxis().setRange(new Range(0, 0));
+               chartMaxVal = 0;
+               needUpdateChartRange = false;
+               
                Display.getDefault().asyncExec(new Runnable() {
                        @Override
                        public void run() {
@@ -157,6 +172,10 @@ public class CPUFrequencyChart extends TimelineChart {
                        }
 
                        freequencyInfo.newXYDataItems.add(new XYDataItem(time, freq1));
+                       if(chartMaxVal < freq1) {
+                               chartMaxVal = freq1;
+                               needUpdateChartRange = true;
+                       }
                }
        }
 
@@ -174,14 +193,10 @@ public class CPUFrequencyChart extends TimelineChart {
                return seriesDataSetList;
        }
        
-       private void setSeriesRendering(XYPlot xyplot) {
-               if (null == chart || null == xyplot) {
-                       return;
-               }
-
+       private void setSeriesRendering() {
                XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer(true, false);
                lineRenderer.setSeriesPaint(0, COLOR_FREQ);
-               xyplot.setRenderer(0, lineRenderer);
+               xyPlot.setRenderer(0, lineRenderer);
        }
        
        @Override
index b924fa3..165fc2b 100644 (file)
@@ -12,6 +12,7 @@ import org.jfree.chart.JFreeChart;
 import org.jfree.chart.plot.PlotOrientation;
 import org.jfree.chart.plot.XYPlot;
 import org.jfree.chart.renderer.xy.XYAreaRenderer;
+import org.jfree.data.Range;
 import org.jfree.data.time.TimeSeries;
 import org.jfree.data.xy.XYDataItem;
 import org.jfree.data.xy.XYSeries;
@@ -37,6 +38,10 @@ public class HeapChart extends TimelineChart {
 
        private static HashMap<String, Double> allocationInfoMap = new HashMap<String, Double>();
        private static double allocByte = 0;
+       
+       private static XYPlot xyPlot;
+       private static double chartMaxVal = 0;
+       private static boolean needUpdateChartRange = false;
 
        class AllocationSeriesInfo {
                private XYSeries baseSeries;
@@ -98,10 +103,11 @@ public class HeapChart extends TimelineChart {
 
                setChartStyle();
 
-               XYPlot xyplot = chart.getXYPlot();
-               xyplot.setForegroundAlpha(1.0f);
-
-               setSeriesRendering(xyplot);
+               xyPlot = chart.getXYPlot();
+               xyPlot.setForegroundAlpha(1.0f);
+               xyPlot.getRangeAxis().setAutoRange(false);
+               
+               setSeriesRendering();
 
                return chart;
        }
@@ -128,6 +134,11 @@ public class HeapChart extends TimelineChart {
                                        userAllocationInfo.baseSeries.add(xyDataItem);
                                }
                                userAllocationInfo.newXYDataItems.clear();
+                               
+                               if(needUpdateChartRange) {
+                                       xyPlot.getRangeAxis().setRange(new Range(0, chartMaxVal / TempConstants.chartRangeRatio));
+                                       needUpdateChartRange = false;
+                               }
                        }
                });
        }
@@ -139,6 +150,10 @@ public class HeapChart extends TimelineChart {
                
                allocByte = 0;
                allocationInfoMap.clear();
+               
+               xyPlot.getRangeAxis().setRange(new Range(0, 0));
+               chartMaxVal = 0;
+               needUpdateChartRange = false;
 
                Display.getDefault().asyncExec(new Runnable() {
                        @Override
@@ -236,6 +251,10 @@ public class HeapChart extends TimelineChart {
                                                }
 
                                                totalAllocationInfo.newXYDataItems.add(new XYDataItem(time, value));
+                                               if(chartMaxVal < value) {
+                                                       chartMaxVal = value;
+                                                       needUpdateChartRange = true;
+                                               }
 
                                                if (!isUserAllocUpdated) {
                                                        userAllocationInfo.newXYDataItems.add(new XYDataItem(time, HeapChart.allocByte));
@@ -302,12 +321,8 @@ public class HeapChart extends TimelineChart {
                return seriesDataSetList;
        }
 
-       private void setSeriesRendering(XYPlot xyplot) {
-               if (null == xyplot) {
-                       return;
-               }
-
-               XYAreaRenderer renderer = (XYAreaRenderer)xyplot.getRenderer();
+       private void setSeriesRendering() {
+               XYAreaRenderer renderer = (XYAreaRenderer)xyPlot.getRenderer();
                renderer.setSeriesPaint(0, COLOR_USER_ALLOCATION);
                renderer.setSeriesPaint(1, COLOR_TOTAL_ALLOCATION);
        }
index a26a294..26d28d1 100644 (file)
@@ -11,6 +11,7 @@ import org.jfree.chart.JFreeChart;
 import org.jfree.chart.plot.PlotOrientation;
 import org.jfree.chart.plot.XYPlot;
 import org.jfree.chart.renderer.xy.XYAreaRenderer;
+import org.jfree.data.Range;
 import org.jfree.data.time.TimeSeries;
 import org.jfree.data.xy.XYDataItem;
 import org.jfree.data.xy.XYSeries;
@@ -33,6 +34,10 @@ public class ProcessMemoryChart extends TimelineChart {
 
        public static int sizeMode = TimelineConstants.ITEM_SIZE_MODE_DEF;
 
+       private static XYPlot xyPlot;
+       private static double chartMaxVal = 0;
+       private static boolean needUpdateChartRange = false;
+       
        class MemorySeriesInfo {
                private XYSeries baseSeries;
                private Vector<XYDataItem> newXYDataItems;
@@ -105,10 +110,11 @@ public class ProcessMemoryChart extends TimelineChart {
 
                setChartStyle();
 
-               XYPlot xyplot = chart.getXYPlot();
-               xyplot.setForegroundAlpha(1.0f);
+               xyPlot = chart.getXYPlot();
+               xyPlot.setForegroundAlpha(1.0f);
+               xyPlot.getRangeAxis().setAutoRange(false);
 
-               setSeriesRendering(xyplot);
+               setSeriesRendering();
 
                return chart;
        }
@@ -132,6 +138,11 @@ public class ProcessMemoryChart extends TimelineChart {
                                        PSSMemoryInfo.baseSeries.add(xyDataItem);
                                }
                                PSSMemoryInfo.newXYDataItems.clear();
+                               
+                               if(needUpdateChartRange) {
+                                       xyPlot.getRangeAxis().setRange(new Range(0, chartMaxVal / TempConstants.chartRangeRatio));
+                                       needUpdateChartRange = false;
+                               }
                        }
                });
        }
@@ -142,6 +153,10 @@ public class ProcessMemoryChart extends TimelineChart {
                RSSMemoryInfo.newXYDataItems.clear();
                PSSMemoryInfo.newXYDataItems.clear();
 
+               xyPlot.getRangeAxis().setRange(new Range(0, 0));
+               chartMaxVal = 0;
+               needUpdateChartRange = false;
+               
                Display.getDefault().asyncExec(new Runnable() {
                        @Override
                        public void run() {
@@ -169,12 +184,8 @@ public class ProcessMemoryChart extends TimelineChart {
                }
        }
 
-       private void setSeriesRendering(XYPlot xyplot) {
-               if (null == xyplot) {
-                       return;
-               }
-
-               XYAreaRenderer renderer = (XYAreaRenderer)xyplot.getRenderer();
+       private void setSeriesRendering() {
+               XYAreaRenderer renderer = (XYAreaRenderer)xyPlot.getRenderer();
                renderer.setSeriesPaint(0, COLOR_PSS);
                renderer.setSeriesPaint(1, COLOR_RSS);
                renderer.setSeriesPaint(2, COLOR_VSS);
@@ -241,6 +252,10 @@ public class ProcessMemoryChart extends TimelineChart {
                        }
 
                        VSSMemoryInfo.newXYDataItems.add(new XYDataItem(time, value));
+                       if(chartMaxVal < value) {
+                               chartMaxVal = value;
+                               needUpdateChartRange = true;
+                       }
                }
 
                /* resident */
index 287e600..cbf1f53 100644 (file)
@@ -20,7 +20,6 @@ import org.tizen.dynamicanalyzer.constants.LogCenterConstants;
 import org.tizen.dynamicanalyzer.constants.TimelineConstants;
 import org.tizen.dynamicanalyzer.nl.TimelineChartLables;
 import org.tizen.dynamicanalyzer.timeline.TempConstants;
-import org.tizen.dynamicanalyzer.timeline.TimelineMaster;
 import org.tizen.dynamicanalyzer.utils.Formatter;
 
 public class SystemMemoryChart extends TimelineChart {
@@ -35,6 +34,10 @@ public class SystemMemoryChart extends TimelineChart {
        
        public static int sizeMode = TimelineConstants.ITEM_SIZE_MODE_DEF;
 
+       private static XYPlot xyPlot;
+       private static double chartMaxVal = 0;
+       private static boolean needUpdateChartRange = false;
+       
        class MemorySeriesInfo {
                private XYSeries baseSeries;
                private Vector<XYDataItem> newXYDataItems;
@@ -104,16 +107,13 @@ public class SystemMemoryChart extends TimelineChart {
                        return null;
                }
 
-               XYPlot xyplot = chart.getXYPlot();
-               xyplot.getRangeAxis().setAutoRange(false);
-               xyplot.getRangeAxis().setRange(new Range(0, TempConstants.TOTAL_MEMORY * 10 / 9));
-
-               TimelineMaster.getInstance().setSystemMemChartPlot(xyplot);
+               xyPlot = chart.getXYPlot();
+               xyPlot.getRangeAxis().setAutoRange(false);
 
                setChartStyle();
-               xyplot.setForegroundAlpha(1.0f);
+               xyPlot.setForegroundAlpha(1.0f);
                
-               setSeriesRendering(xyplot);
+               setSeriesRendering();
 
                return chart;
        }
@@ -145,6 +145,11 @@ public class SystemMemoryChart extends TimelineChart {
                                        totalInfo.baseSeries.add(xyDataItem);
                                }
                                totalInfo.newXYDataItems.clear();
+                               
+                               if(needUpdateChartRange) {
+                                       xyPlot.getRangeAxis().setRange(new Range(0, chartMaxVal / TempConstants.chartRangeRatio));
+                                       needUpdateChartRange = false;
+                               }
                        }
                });
        }
@@ -155,6 +160,10 @@ public class SystemMemoryChart extends TimelineChart {
                systemInfo.newXYDataItems.clear();
                totalInfo.newXYDataItems.clear();
 
+               xyPlot.getRangeAxis().setRange(new Range(0, 0));
+               chartMaxVal = 0;
+               needUpdateChartRange = false;
+               
                Display.getDefault().asyncExec(new Runnable() {
                        @Override
                        public void run() {
@@ -182,12 +191,8 @@ public class SystemMemoryChart extends TimelineChart {
                }
        }
 
-       private void setSeriesRendering(XYPlot xyplot) {
-               if (null == xyplot) {
-                       return;
-               }
-
-               XYAreaRenderer areaRenderer = (XYAreaRenderer) xyplot.getRenderer();
+       private void setSeriesRendering() {
+               XYAreaRenderer areaRenderer = (XYAreaRenderer) xyPlot.getRenderer();
                areaRenderer.setSeriesPaint(0, COLOR_PROC_RESIDENT);
                areaRenderer.setSeriesPaint(1, COLOR_SYSTEM);
                areaRenderer.setSeriesPaint(2, COLOR_TOTAL);
@@ -245,6 +250,10 @@ public class SystemMemoryChart extends TimelineChart {
 
                        systemInfo.newXYDataItems.add(new XYDataItem(time, usage));
                        totalInfo.newXYDataItems.add(new XYDataItem(time, TempConstants.TOTAL_MEMORY));
+                       if(chartMaxVal < TempConstants.TOTAL_MEMORY) {
+                               chartMaxVal = TempConstants.TOTAL_MEMORY;
+                               needUpdateChartRange = true;
+                       }
                }
        }
 
index 8ae9804..4e85419 100644 (file)
@@ -80,24 +80,11 @@ public abstract class TimelineChart {
                chart.setBorderVisible(false);
                chart.setBackgroundImageAlpha(1F);
 
-//             LegendTitle legend = chart.getLegend();
-//             legend.setPosition(RectangleEdge.TOP);
-//             legend.setHorizontalAlignment(HorizontalAlignment.RIGHT);
-//             legend.setBackgroundPaint(new Color(80, 80, 80));
-//             legend.setItemPaint(Color.LIGHT_GRAY);
-//
-//             legend.setVisible(false);
-
                chart.getTitle().setVisible(false);
                chart.getTitle().setText(""); //$NON-NLS-1$
 
                XYPlot xyplot = (XYPlot) chart.getPlot();
 
-               //FIXME
-//             DateAxis dateaxis = new DateAxis("ms");
-//             dateaxis.setDateFormatOverride(new SimpleDateFormat("mm:ss"));
-//             xyplot.setDomainAxis(dateaxis);
-
                xyplot.setBackgroundAlpha(1f);
                xyplot.setBackgroundImageAlpha(1f);