From 7dfdcdcb929102fb9e0a0f0fe756b46273972b8c Mon Sep 17 00:00:00 2001 From: jaeyong lee Date: Mon, 13 Jun 2016 17:55:52 +0900 Subject: [PATCH] [SRADA-675] Enable Range Analysis at memory page Change-Id: Idc867179c779de1ed6f97d5effde059e8dbe4efa --- .../ui/memory/chart/MemoryChart.java | 48 ++++++-------- .../ui/memory/chart/MemoryChartBoard.java | 77 ++++++++++++---------- .../org/tizen/dynamicanalyzer/ui/page/MenuBar.java | 7 +- .../dynamicanalyzer/ui/range/RangeDataManager.java | 8 ++- .../tizen/dynamicanalyzer/ui/toolbar/Toolbar.java | 6 ++ 5 files changed, 83 insertions(+), 63 deletions(-) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChart.java index 77d256b..2605018 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChart.java @@ -25,20 +25,21 @@ package org.tizen.dynamicanalyzer.ui.memory.chart; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.eclipse.swt.graphics.Image; import org.tizen.dynamicanalyzer.nl.TimelineChartLabels; import org.tizen.dynamicanalyzer.resources.FontResources; import org.tizen.dynamicanalyzer.resources.ImageResources; -import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener; -import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener; -import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener; -import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener; -import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener; +import org.tizen.dynamicanalyzer.ui.common.PopupRangeAnalysisMenuItemListener; +import org.tizen.dynamicanalyzer.ui.range.RangeDataManager; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; import org.tizen.dynamicanalyzer.widgets.chart.DAChart; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotMarker; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip; import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries; import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard; @@ -150,30 +151,23 @@ public class MemoryChart { protected void initPopupMenu(DAChartBoard chartBoard, DAPopupMenu popupMenu) { popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT); - DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu); - startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START); - startItem.addListener(new PopupStartMenuItemClickListener(startItem, - chartBoard)); - - DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu); - endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END); - endItem.addListener(new PopupEndMenuItemClickListener(endItem, - chartBoard)); - - DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu); - fromSelectionItem - .setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION); - fromSelectionItem - .addListener(new PopupFromSelectionMenuItemClickListener( - fromSelectionItem, chartBoard)); - DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu); analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS); - analysisItem.addListener(new PopupAnalysisMenuItemClickListener()); - - DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu); - clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR); - clearItem.addListener(new PopupClearMenuItemClickListener()); + analysisItem.addListener(new PopupRangeAnalysisMenuItemListener(analysisItem, chartBoard) { + @Override + public void widgetSelected(DAPopupMenuItem menuItem) { + double time = menuItem.getDoubleData(); + Collections.sort(RangeDataManager.getInstance().getMarerTimeList()); + RangeDataManager.getInstance().setRangeFromMarkerList((long) (time * TimelineConstants.MEGA_DOUBLE)); + + DAChartPlotMarker marker = chart.getPlot().getMarkers().get(0); + DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) marker; + double startVal = RangeDataManager.getInstance().getMarkerStartTime(); + double endVal = RangeDataManager.getInstance().getMarkerEndTime(); + intervalMarker.setInterval(startVal / TimelineConstants.MEGA_DOUBLE, + endVal / TimelineConstants.MEGA_DOUBLE); + } + }); } public void pushChild(MemoryChart child) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChartBoard.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChartBoard.java index 4b421b0..b17ff45 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChartBoard.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/chart/MemoryChartBoard.java @@ -25,6 +25,7 @@ package org.tizen.dynamicanalyzer.ui.memory.chart; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -45,18 +46,23 @@ import org.tizen.dynamicanalyzer.ui.common.PopupAnalysisMenuItemClickListener; import org.tizen.dynamicanalyzer.ui.common.PopupClearMenuItemClickListener; import org.tizen.dynamicanalyzer.ui.common.PopupEndMenuItemClickListener; import org.tizen.dynamicanalyzer.ui.common.PopupFromSelectionMenuItemClickListener; +import org.tizen.dynamicanalyzer.ui.common.PopupRangeAnalysisMenuItemListener; import org.tizen.dynamicanalyzer.ui.common.PopupStartMenuItemClickListener; import org.tizen.dynamicanalyzer.ui.common.TimeLineChartKeyListener; +import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseEventListener; import org.tizen.dynamicanalyzer.ui.common.TimelineChartMouseTrackAdapter; import org.tizen.dynamicanalyzer.ui.memory.MemoryPage; import org.tizen.dynamicanalyzer.ui.memory.data.MemoryDataManager; import org.tizen.dynamicanalyzer.ui.memory.data.ProcessMemoryDBTable; +import org.tizen.dynamicanalyzer.ui.range.RangeDataManager; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.widgets.chart.DAChart; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotMarker; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotTooltip; import org.tizen.dynamicanalyzer.widgets.chart.DAChartRenderer; import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard; @@ -105,7 +111,7 @@ public class MemoryChartBoard extends DAChartBoard { chartWidget.getPlot().setAxisRangeX(getVisibleStartTime(), getVisibleEndTime()); chartWidget.getPlot().setMarkers(getMarkers()); - MemoryChartMouseEventListener chartMouseEventListener = new MemoryChartMouseEventListener( + TimelineChartMouseEventListener chartMouseEventListener = new TimelineChartMouseEventListener( memoryChart.getPopupMenu(), getTimeline(), MemoryPage.pageID); chartWidget.addMouseListener(chartMouseEventListener); chartWidget.addMouseMoveListener(chartMouseEventListener); @@ -260,8 +266,8 @@ public class MemoryChartBoard extends DAChartBoard { DAChart.CHART_STYLE_NORMAL); DAChart parentDAChart = parentItem.getChart(); - initMemoryChart(parentDAChart); MemoryChart chart = new SystemMemoryChart(MemoryPage.pageID, chartName, parentItem, parentDAChart); + initMemoryChart(chart); chart.setChartStyle(); chart.chart.getPlot().setAxisUnit("B"); chart.chart.getPlot().setAxisUnitType(DAChartPlot.UnitType.BINARY); @@ -276,8 +282,8 @@ public class MemoryChartBoard extends DAChartBoard { parentItem.useExpand(false); DAChart parentDAChart = parentItem.getChart(); - initMemoryChart(parentDAChart); MemoryChart processMemoryChart = new ProcessMemoryChart(MemoryPage.pageID, chartName, parentItem, parentDAChart); + initMemoryChart(processMemoryChart); processMemoryChart.setPid(pid); processMemoryChart.setChartStyle(); processMemoryChart.chart.getPlot().setAxisUnit("B"); @@ -313,9 +319,10 @@ public class MemoryChartBoard extends DAChartBoard { String chartName = MemoryPageLabels.MEMORY_CHART_HEAP_MEMORY; DAChartBoardItem parentItem = new DAChartBoardItem(this, chartName, ImageResources.FEATURE_HEAPALLOC_SMALL, DAChart.CHART_STYLE_NORMAL); DAChart parentDAChart = parentItem.getChart(); - initMemoryChart(parentDAChart); + String libName = getLibNameByID(libId); MemoryChart parentHeapMemoryChart = new HeapMemoryChart(MemoryPage.pageID, chartName, libId, libName, parentItem, parentDAChart); + initMemoryChart(parentHeapMemoryChart); parentHeapMemoryChart.setPid(pid); parentHeapMemoryChart.setChartStyle(); parentHeapMemoryChart.chart.getPlot().setAxisUnit("B"); @@ -332,8 +339,9 @@ public class MemoryChartBoard extends DAChartBoard { DAChartBoardItem parentItem = parent.getChartItem(); DAChartBoardItem childItem = new DAChartBoardItem(parentItem, chartName); DAChart childDAChart = childItem.getChart(); - initMemoryChart(childDAChart); + MemoryChart childHeapMemoryChart = new HeapMemoryChart(MemoryPage.pageID, chartName, libId, libName, childItem, childDAChart); + initMemoryChart(childHeapMemoryChart); childHeapMemoryChart.setPid(pid); childHeapMemoryChart.setChartStyle(); childHeapMemoryChart.chart.getPlot().setAxisUnit("B"); @@ -356,13 +364,13 @@ public class MemoryChartBoard extends DAChartBoard { return libPath.substring(0, index) + "\n" + libPath.substring(index+1); } - private void initMemoryChart(DAChart chart) { + private void initMemoryChart(MemoryChart chart) { if(null == chart) { return; } - chart.setChartRenderer(new DAChartRenderer()); - DAChartPlot plot = chart.getPlot(); + chart.getChart().setChartRenderer(new DAChartRenderer()); + DAChartPlot plot = chart.getChart().getPlot(); if(null == plot) { return; } @@ -375,38 +383,39 @@ public class MemoryChartBoard extends DAChartBoard { tooltip.setFont(FontResources.CHART_TOOLTIP_FONT); plot.setTooltip(tooltip); - DAPopupMenu popupMenu = new DAPopupMenu(chart); + final MemoryChart tmp = chart; + + DAPopupMenu popupMenu = new DAPopupMenu(chart.getChart()); popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT); - DAPopupMenuItem startItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE); - startItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_START); - startItem.addListener(new PopupStartMenuItemClickListener(startItem, this)); - - DAPopupMenuItem endItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE); - endItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_END); - endItem.addListener(new PopupEndMenuItemClickListener(endItem, this)); - - DAPopupMenuItem fromSelectionItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE); - fromSelectionItem.setText(TimelineChartLabels.RANGE_CONTEXT_SET_FROM_SELECTION); - fromSelectionItem.addListener(new PopupFromSelectionMenuItemClickListener( - fromSelectionItem, this)); - - DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE); + DAPopupMenuItem analysisItem = new DAPopupMenuItem(popupMenu); analysisItem.setText(TimelineChartLabels.RANGE_CONTEXT_ANALYSIS); - analysisItem.addListener(new PopupAnalysisMenuItemClickListener()); - - DAPopupMenuItem clearItem = new DAPopupMenuItem(popupMenu, DAPopupMenuItem.NONE); - clearItem.setText(TimelineChartLabels.RANGE_CONTEXT_CLEAR); - clearItem.addListener(new PopupClearMenuItemClickListener()); + analysisItem.addListener(new PopupRangeAnalysisMenuItemListener(analysisItem, this) { + @Override + public void widgetSelected(DAPopupMenuItem menuItem) { + double time = menuItem.getDoubleData(); + Collections.sort(RangeDataManager.getInstance().getMarerTimeList()); + RangeDataManager.getInstance().setRangeFromMarkerList((long) (time * TimelineConstants.MEGA_DOUBLE)); + + DAChartPlotMarker marker = tmp.getChart().getPlot().getMarkers().get(0); + DAChartPlotIntervalMarker intervalMarker = (DAChartPlotIntervalMarker) marker; + double startVal = RangeDataManager.getInstance().getMarkerStartTime(); + double endVal = RangeDataManager.getInstance().getMarkerEndTime(); + intervalMarker.setInterval(startVal / TimelineConstants.MEGA_DOUBLE, + endVal / TimelineConstants.MEGA_DOUBLE); + } + }); + + chart.popupMenu = popupMenu; - MemoryChartMouseEventListener memoryChartMouseEventListener = new MemoryChartMouseEventListener( - popupMenu, getTimeline(), MemoryPage.pageID); - chart.addMouseListener(memoryChartMouseEventListener); - chart.addMouseMoveListener(memoryChartMouseEventListener); - chart.addMouseTrackListener(new TimelineChartMouseTrackAdapter(getTimeline())); + TimelineChartMouseEventListener memoryChartMouseEventListener = new TimelineChartMouseEventListener( + chart.getPopupMenu(), getTimeline(), MemoryPage.pageID); + chart.getChart().addMouseListener(memoryChartMouseEventListener); + chart.getChart().addMouseMoveListener(memoryChartMouseEventListener); + chart.getChart().addMouseTrackListener(new TimelineChartMouseTrackAdapter(getTimeline())); ///Add Keylistener 0215 TimeLineChartKeyListener timelineKeyListener = new TimeLineChartKeyListener(this); - chart.addKeyListener(timelineKeyListener); + chart.getChart().addKeyListener(timelineKeyListener); plot.setMarkers(getMarkers()); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java index f95963e..fccf355 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java @@ -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 diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java index 3f65503..5d32504 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java @@ -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(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java index 63def0b..68d8d7a 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java @@ -146,6 +146,12 @@ public enum Toolbar { private List markerTimeList = new ArrayList(); + public void clearMarkerTimeList() { + if(markerTimeList != null) { + markerTimeList.clear(); + } + } + public void addMarkerTime(double time) { if(markerTimeList != null && !markerTimeList.contains(time)) { markerTimeList.add(time); -- 2.7.4