[SRADA-675] Enable Range Analysis at memory page
authorjaeyong lee <jae-yong.lee@samsung.com>
Mon, 13 Jun 2016 08:55:52 +0000 (17:55 +0900)
committerdongkyu6 lee <dongkyu6.lee@samsung.com>
Tue, 14 Jun 2016 09:46:23 +0000 (18:46 +0900)
Change-Id: Idc867179c779de1ed6f97d5effde059e8dbe4efa

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChart.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChartBoard.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java

index 77d256b..2605018 100644 (file)
 package org.tizen.dynamicanalyzer.ui.memory.chart;\r
 \r
 import java.util.ArrayList;\r
+import java.util.Collections;\r
 import java.util.List;\r
 \r
 import org.eclipse.swt.graphics.Image;\r
 import org.tizen.dynamicanalyzer.nl.TimelineChartLabels;\r
 import org.tizen.dynamicanalyzer.resources.FontResources;\r
 import org.tizen.dynamicanalyzer.resources.ImageResources;\r
-import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener;\r
-import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener;\r
-import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener;\r
-import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener;\r
-import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener;\r
+import org.tizen.dynamicanalyzer.ui.common.PopupRangeAnalysisMenuItemListener;\r
+import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;\r
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChart;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType;\r
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;\r
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotMarker;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries;\r
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;\r
@@ -150,30 +151,23 @@ public class MemoryChart {
        \r
        protected void initPopupMenu(DAChartBoard chartBoard, DAPopupMenu popupMenu) {\r
                popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT);\r
-               DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu);\r
-               startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START);\r
-               startItem.addListener(new PopupStartMenuItemClickListener(startItem,\r
-                               chartBoard));\r
-\r
-               DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu);\r
-               endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END);\r
-               endItem.addListener(new PopupEndMenuItemClickListener(endItem,\r
-                               chartBoard));\r
-\r
-               DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu);\r
-               fromSelectionItem\r
-                               .setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION);\r
-               fromSelectionItem\r
-                               .addListener(new PopupFromSelectionMenuItemClickListener(\r
-                                               fromSelectionItem, chartBoard));\r
-\r
                DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu);\r
                analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS);\r
-               analysisItem.addListener(new PopupAnalysisMenuItemClickListener());\r
-\r
-               DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu);\r
-               clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR);\r
-               clearItem.addListener(new PopupClearMenuItemClickListener());\r
+               analysisItem.addListener(new PopupRangeAnalysisMenuItemListener(analysisItem, chartBoard) {\r
+                       @Override\r
+                       public void widgetSelected(DAPopupMenuItem menuItem) {\r
+                               double time = menuItem.getDoubleData();\r
+                               Collections.sort(RangeDataManager.getInstance().getMarerTimeList());\r
+                               RangeDataManager.getInstance().setRangeFromMarkerList((long) (time * TimelineConstants.MEGA_DOUBLE));\r
+                               \r
+                               DAChartPlotMarker marker = chart.getPlot().getMarkers().get(0);\r
+                               DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) marker;\r
+                               double startVal = RangeDataManager.getInstance().getMarkerStartTime();\r
+                               double endVal = RangeDataManager.getInstance().getMarkerEndTime();\r
+                               intervalMarker.setInterval(startVal / TimelineConstants.MEGA_DOUBLE, \r
+                                               endVal / TimelineConstants.MEGA_DOUBLE);\r
+                       }\r
+               });\r
        }\r
        \r
        public void pushChild(MemoryChart child) {\r
index 4b421b0..b17ff45 100644 (file)
@@ -25,6 +25,7 @@
 package org.tizen.dynamicanalyzer.ui.memory.chart;\r
 \r
 import java.util.ArrayList;\r
+import java.util.Collections;\r
 import java.util.Iterator;\r
 import java.util.List;\r
 import java.util.Map;\r
@@ -45,18 +46,23 @@ import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener;
 import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener;\r
 import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener;\r
 import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener;\r
+import org.tizen.dynamicanalyzer.ui.common.PopupRangeAnalysisMenuItemListener;\r
 import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener;\r
 import org.tizen.dynamicanalyzer.ui.common.TimeLineChartKeyListener;\r
+import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener;\r
 import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter;\r
 import org.tizen.dynamicanalyzer.ui.memory.MemoryPage;\r
 import org.tizen.dynamicanalyzer.ui.memory.data.MemoryDataManager;\r
 import org.tizen.dynamicanalyzer.ui.memory.data.ProcessMemoryDBTable;\r
+import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;\r
 import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager;\r
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;\r
 import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar;\r
 import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChart;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker;\r
+import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotMarker;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip;\r
 import org.tizen.dynamicanalyzer.widgets.chart.DAChartRenderer;\r
 import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard;\r
@@ -105,7 +111,7 @@ public class MemoryChartBoard extends DAChartBoard {
                        chartWidget.getPlot().setAxisRangeX(getVisibleStartTime(), getVisibleEndTime());\r
 \r
                        chartWidget.getPlot().setMarkers(getMarkers());\r
-                       MemoryChartMouseEventListener chartMouseEventListener = new MemoryChartMouseEventListener(\r
+                       TimelineChartMouseEventListener chartMouseEventListener = new TimelineChartMouseEventListener(\r
                                        memoryChart.getPopupMenu(), getTimeline(), MemoryPage.pageID);\r
                        chartWidget.addMouseListener(chartMouseEventListener);\r
                        chartWidget.addMouseMoveListener(chartMouseEventListener);\r
@@ -260,8 +266,8 @@ public class MemoryChartBoard extends DAChartBoard {
                                DAChart.CHART_STYLE_NORMAL);\r
                DAChart parentDAChart = parentItem.getChart();\r
 \r
-               initMemoryChart(parentDAChart);\r
                MemoryChart chart = new SystemMemoryChart(MemoryPage.pageID, chartName, parentItem, parentDAChart);\r
+               initMemoryChart(chart);\r
                chart.setChartStyle();\r
                chart.chart.getPlot().setAxisUnit("B");\r
                chart.chart.getPlot().setAxisUnitType(DAChartPlot.UnitType.BINARY);\r
@@ -276,8 +282,8 @@ public class MemoryChartBoard extends DAChartBoard {
                parentItem.useExpand(false);\r
                DAChart parentDAChart = parentItem.getChart();\r
                \r
-               initMemoryChart(parentDAChart);\r
                MemoryChart processMemoryChart = new ProcessMemoryChart(MemoryPage.pageID, chartName, parentItem, parentDAChart);\r
+               initMemoryChart(processMemoryChart);\r
                processMemoryChart.setPid(pid);\r
                processMemoryChart.setChartStyle();\r
                processMemoryChart.chart.getPlot().setAxisUnit("B");\r
@@ -313,9 +319,10 @@ public class MemoryChartBoard extends DAChartBoard {
                String chartName = MemoryPageLabels.MEMORY_CHART_HEAP_MEMORY;\r
                DAChartBoardItem parentItem = new DAChartBoardItem(this, chartName, ImageResources.FEATURE_HEAPALLOC_SMALL, DAChart.CHART_STYLE_NORMAL);\r
                DAChart parentDAChart = parentItem.getChart();\r
-               initMemoryChart(parentDAChart);\r
+               \r
                String libName = getLibNameByID(libId);\r
                MemoryChart parentHeapMemoryChart = new HeapMemoryChart(MemoryPage.pageID, chartName, libId, libName, parentItem, parentDAChart);\r
+               initMemoryChart(parentHeapMemoryChart);\r
                parentHeapMemoryChart.setPid(pid);\r
                parentHeapMemoryChart.setChartStyle();\r
                parentHeapMemoryChart.chart.getPlot().setAxisUnit("B");\r
@@ -332,8 +339,9 @@ public class MemoryChartBoard extends DAChartBoard {
                DAChartBoardItem parentItem = parent.getChartItem();\r
                DAChartBoardItem childItem = new DAChartBoardItem(parentItem, chartName);\r
                DAChart childDAChart = childItem.getChart();\r
-               initMemoryChart(childDAChart);\r
+               \r
                MemoryChart childHeapMemoryChart = new HeapMemoryChart(MemoryPage.pageID, chartName, libId, libName, childItem, childDAChart);\r
+               initMemoryChart(childHeapMemoryChart);\r
                childHeapMemoryChart.setPid(pid);\r
                childHeapMemoryChart.setChartStyle();\r
                childHeapMemoryChart.chart.getPlot().setAxisUnit("B");\r
@@ -356,13 +364,13 @@ public class MemoryChartBoard extends DAChartBoard {
                return libPath.substring(0, index) + "\n" + libPath.substring(index+1);\r
        }\r
        \r
-       private void initMemoryChart(DAChart chart) {\r
+       private void initMemoryChart(MemoryChart chart) {\r
                if(null == chart) {\r
                        return;\r
                }\r
                \r
-               chart.setChartRenderer(new DAChartRenderer());\r
-               DAChartPlot plot = chart.getPlot();\r
+               chart.getChart().setChartRenderer(new DAChartRenderer());\r
+               DAChartPlot plot = chart.getChart().getPlot();\r
                if(null == plot) {\r
                        return;\r
                }\r
@@ -375,38 +383,39 @@ public class MemoryChartBoard extends DAChartBoard {
                tooltip.setFont(FontResources.CHART_TOOLTIP_FONT);\r
                plot.setTooltip(tooltip);\r
 \r
-               DAPopupMenu popupMenu = new DAPopupMenu(chart);\r
+               final MemoryChart tmp = chart;\r
+               \r
+               DAPopupMenu popupMenu = new DAPopupMenu(chart.getChart());\r
                popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT);\r
-               DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE);\r
-               startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START);\r
-               startItem.addListener(new PopupStartMenuItemClickListener(startItem, this));\r
-\r
-               DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE);\r
-               endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END);\r
-               endItem.addListener(new PopupEndMenuItemClickListener(endItem, this));\r
-\r
-               DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE);\r
-               fromSelectionItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION);\r
-               fromSelectionItem.addListener(new PopupFromSelectionMenuItemClickListener(\r
-                               fromSelectionItem, this));\r
-\r
-               DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE);\r
+               DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu);\r
                analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS);\r
-               analysisItem.addListener(new PopupAnalysisMenuItemClickListener());\r
-\r
-               DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE);\r
-               clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR);\r
-               clearItem.addListener(new PopupClearMenuItemClickListener());\r
+               analysisItem.addListener(new PopupRangeAnalysisMenuItemListener(analysisItem, this) {\r
+                       @Override\r
+                       public void widgetSelected(DAPopupMenuItem menuItem) {\r
+                               double time = menuItem.getDoubleData();\r
+                               Collections.sort(RangeDataManager.getInstance().getMarerTimeList());\r
+                               RangeDataManager.getInstance().setRangeFromMarkerList((long) (time * TimelineConstants.MEGA_DOUBLE));\r
+                               \r
+                               DAChartPlotMarker marker = tmp.getChart().getPlot().getMarkers().get(0);\r
+                               DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) marker;\r
+                               double startVal = RangeDataManager.getInstance().getMarkerStartTime();\r
+                               double endVal = RangeDataManager.getInstance().getMarkerEndTime();\r
+                               intervalMarker.setInterval(startVal / TimelineConstants.MEGA_DOUBLE, \r
+                                               endVal / TimelineConstants.MEGA_DOUBLE);\r
+                       }\r
+               });\r
+               \r
+               chart.popupMenu = popupMenu;\r
 \r
-               MemoryChartMouseEventListener memoryChartMouseEventListener = new MemoryChartMouseEventListener(\r
-                               popupMenu, getTimeline(), MemoryPage.pageID);\r
-               chart.addMouseListener(memoryChartMouseEventListener);\r
-               chart.addMouseMoveListener(memoryChartMouseEventListener);\r
-               chart.addMouseTrackListener(new TimelineChartMouseTrackAdapter(getTimeline()));\r
+               TimelineChartMouseEventListener memoryChartMouseEventListener = new TimelineChartMouseEventListener(\r
+                               chart.getPopupMenu(), getTimeline(), MemoryPage.pageID);\r
+               chart.getChart().addMouseListener(memoryChartMouseEventListener);\r
+               chart.getChart().addMouseMoveListener(memoryChartMouseEventListener);\r
+               chart.getChart().addMouseTrackListener(new TimelineChartMouseTrackAdapter(getTimeline()));\r
                \r
                ///Add Keylistener 0215\r
                TimeLineChartKeyListener timelineKeyListener = new TimeLineChartKeyListener(this);\r
-               chart.addKeyListener(timelineKeyListener);\r
+               chart.getChart().addKeyListener(timelineKeyListener);\r
                \r
                plot.setMarkers(getMarkers());\r
        }\r
index f95963e..fccf355 100644 (file)
@@ -51,6 +51,7 @@ import org.tizen.dynamicanalyzer.ui.network.NetworkChartView;
 import org.tizen.dynamicanalyzer.ui.network.NetworkPage;
 import org.tizen.dynamicanalyzer.ui.opengl.GLPage;
 import org.tizen.dynamicanalyzer.ui.opengl.chart.GLChartView;
+import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
 import org.tizen.dynamicanalyzer.ui.thread.ThreadPage;
 import org.tizen.dynamicanalyzer.ui.thread.chart.ThreadChartView;
 import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
@@ -241,7 +242,9 @@ public class MenuBar {
 
                        if (menuName.equals(MenuBarLabels.FILE_NEW)) {
                                CommonAction.clear();
-
+                               Toolbar.INSTANCE.clearMarkerTimeList();
+                               RangeDataManager.getInstance().clearMarkerTime();
+                               
                                // change UI state
                                Toolbar.INSTANCE.changeUIState(DAState.INIT);
                                Toolbar.INSTANCE.setScaleSelection(DAScale.DEFAULT_SCALE_INDEX);
@@ -256,6 +259,8 @@ public class MenuBar {
 
                                final Object result = dialog.open();
                                if (null != result) {
+                                       Toolbar.INSTANCE.clearMarkerTimeList();
+                                       RangeDataManager.getInstance().clearMarkerTime();
                                        Thread loadthread = new Thread(new Runnable() {
 
                                                @Override
index 3f65503..5d32504 100644 (file)
@@ -243,7 +243,13 @@ public class RangeDataManager implements Runnable {
        public void setMarkerEndTime(long endTime) {
                markerEndTime = endTime;
                if (endTime < markerStartTime) {
-                       markerStartTime = endTime;
+                       markerStartTime = endTime;      
+               }
+       }
+       
+       public void clearMarkerTime() {
+               if(markerTimeList != null) {
+                       markerTimeList.clear();
                }
        }
        
index 63def0b..68d8d7a 100644 (file)
@@ -146,6 +146,12 @@ public enum Toolbar {
        
        private List<Double> markerTimeList = new ArrayList<Double>();
        
+       public void clearMarkerTimeList() {
+               if(markerTimeList != null) {
+                       markerTimeList.clear();
+               }
+       }
+       
        public void addMarkerTime(double time) {
                if(markerTimeList != null && !markerTimeList.contains(time)) {
                        markerTimeList.add(time);