From 6fb4d8ecc52d8bccbe4a64126e94ef5d422aef87 Mon Sep 17 00:00:00 2001 From: jaeyong lee Date: Thu, 26 May 2016 17:02:38 +0900 Subject: [PATCH] [SRADA-686] Sync processCombo between pages Change-Id: I28406de61c4cbac0555a125e0b262db7df851e2b --- .../widgets/combo/DACustomCombo.java | 4 ++ .../dynamicanalyzer/ui/file/FileChartView.java | 43 +++++++++++++++++++++ .../dynamicanalyzer/ui/memory/MemoryChartView.java | 44 +++++++++++++++++++++- .../ui/network/NetworkChartView.java | 43 +++++++++++++++++++++ .../ui/opengl/chart/GLChartView.java | 43 +++++++++++++++++++++ .../ui/thread/chart/ThreadChartView.java | 43 +++++++++++++++++++++ .../ui/timeline/common/TimelineChartView.java | 44 +++++++++++++++++++++- 7 files changed, 261 insertions(+), 3 deletions(-) diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java index 494d920..078f923 100755 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java @@ -143,6 +143,10 @@ public class DACustomCombo extends Canvas { public void setFontPoint(Point fontPoint) { attr.setFontPoint(fontPoint); } + + public int getSelectionIndex() { + return selection; + } public String getText() { if (selection < 0) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileChartView.java index 91deb55..356c249 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileChartView.java @@ -241,9 +241,51 @@ public class FileChartView extends DAViewComposite { } }); } + + private void updateProcessCombo() { + int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex(); + if(index+1 > processCombo.getItems().size()) { + addProcessListToProcessCombo(); + } + processCombo.select(index); + } + + private void addProcessListToProcessCombo() { + Project project = Global.getProject(); + if (null == project) { + return; + } + + int[] pids = project.getProcessIDs(); + int pcount = pids.length; + + for (int i = 0; i < pcount; i++) { + ProcessInformation process = project.getProcessInformation(pids[i]); + String binName = process.getProcessName(); + if (binName == null || binName.isEmpty()) { + ProcessMemoryMap map = process.getLastProcessMemoryMap(); + if (map != null) { + int bid = map.getMainbinary().getBinaryID(); + String binPath = project.getDeviceStatusInfo().getBinaryInfo(bid) + .getTargetBinaryPath(); + if (null != binPath && !binPath.isEmpty()) { + int index = binPath.lastIndexOf(CommonConstants.SLASH); + binName = binPath.substring(index + 1, binPath.length()); + } + } + } + + StringBuffer buffer = new StringBuffer(); + buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER); + buffer.append(binName); + processCombo.add(buffer.toString()); + Toolbar.INSTANCE.getProcessCombo().add(buffer.toString()); + } + } @Override public void updateView() { + updateProcessCombo(); fileChartBoard.updateChart(); /* @@ -278,6 +320,7 @@ public class FileChartView extends DAViewComposite { @Override public void updateView(DAViewData data) { + updateProcessCombo(); fileChartBoard.updateChart(); if (data instanceof DASelectionData) { DASelectionData selData = (DASelectionData) data; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryChartView.java index ab90e19..70dae5b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryChartView.java @@ -128,6 +128,47 @@ public class MemoryChartView extends DAViewComposite { initProcessCombo(); } + public void updateProcessCombo() { + int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex(); + if(index+1 > processCombo.getItems().size()) { + addProcessListToProcessCombo(); + } + processCombo.select(index); + } + + private void addProcessListToProcessCombo() { + Project project = Global.getProject(); + if (null == project) { + return; + } + + int[] pids = project.getProcessIDs(); + int pcount = pids.length; + + for (int i = 0; i < pcount; i++) { + ProcessInformation process = project.getProcessInformation(pids[i]); + String binName = process.getProcessName(); + if (binName == null || binName.isEmpty()) { + ProcessMemoryMap map = process.getLastProcessMemoryMap(); + if (map != null) { + int bid = map.getMainbinary().getBinaryID(); + String binPath = project.getDeviceStatusInfo().getBinaryInfo(bid) + .getTargetBinaryPath(); + if (null != binPath && !binPath.isEmpty()) { + int index = binPath.lastIndexOf(CommonConstants.SLASH); + binName = binPath.substring(index + 1, binPath.length()); + } + } + } + + StringBuffer buffer = new StringBuffer(); + buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER); + buffer.append(binName); + processCombo.add(buffer.toString()); + Toolbar.INSTANCE.getProcessCombo().add(buffer.toString()); + } + } + private void initializeChart() { memoryChartBoard.initalizeChart(); } @@ -196,7 +237,6 @@ public class MemoryChartView extends DAViewComposite { @Override public void handleEvent(Event event) { - Project project = Global.getProject(); if (null == project) { return; @@ -237,6 +277,7 @@ public class MemoryChartView extends DAViewComposite { @Override public void updateView() { + updateProcessCombo(); /* * In case of Latest status, update visibleStartTime of chartBoard. * Because Chart should be refreshed automatically even Page change. @@ -271,7 +312,6 @@ public class MemoryChartView extends DAViewComposite { UICommonConstants.RANGE_MARKER_INDEX)).setInterval( rangeDataManager.getMarkerStartTime() / TimelineConstants.MEGA_DOUBLE, rangeDataManager.getMarkerEndTime() / TimelineConstants.MEGA_DOUBLE); - } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartView.java index 6dcb34c..db79054 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkChartView.java @@ -154,6 +154,47 @@ public class NetworkChartView extends DAViewComposite { initProcessCombo(); } + private void updateProcessCombo() { + int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex(); + if(index+1 > processCombo.getItems().size()) { + addProcessListToProcessCombo(); + } + processCombo.select(index); + } + + private void addProcessListToProcessCombo() { + Project project = Global.getProject(); + if (null == project) { + return; + } + + int[] pids = project.getProcessIDs(); + int pcount = pids.length; + + for (int i = 0; i < pcount; i++) { + ProcessInformation process = project.getProcessInformation(pids[i]); + String binName = process.getProcessName(); + if (binName == null || binName.isEmpty()) { + ProcessMemoryMap map = process.getLastProcessMemoryMap(); + if (map != null) { + int bid = map.getMainbinary().getBinaryID(); + String binPath = project.getDeviceStatusInfo().getBinaryInfo(bid) + .getTargetBinaryPath(); + if (null != binPath && !binPath.isEmpty()) { + int index = binPath.lastIndexOf(CommonConstants.SLASH); + binName = binPath.substring(index + 1, binPath.length()); + } + } + } + + StringBuffer buffer = new StringBuffer(); + buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER); + buffer.append(binName); + processCombo.add(buffer.toString()); + Toolbar.INSTANCE.getProcessCombo().add(buffer.toString()); + } + } + private DAToolBarCustomCombo makeDACustomCombo(Composite parent) { int PROCESS_COMBO = 2; DAToolBarCustomCombo returnCombo = new DAToolBarCustomCombo(parent, SWT.NONE); @@ -259,6 +300,7 @@ public class NetworkChartView extends DAViewComposite { @Override public void updateView() { + updateProcessCombo(); networkChartBoard.updateChart(); /* @@ -296,6 +338,7 @@ public class NetworkChartView extends DAViewComposite { @Override public void updateView(DAViewData data) { + updateProcessCombo(); networkChartBoard.updateChart(); if (data instanceof DASelectionData == false) { return; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/chart/GLChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/chart/GLChartView.java index 061350f..2693483 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/chart/GLChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/chart/GLChartView.java @@ -369,9 +369,51 @@ public class GLChartView extends DAViewComposite { frameTimeChartBoard.setItemsHeightMode(frameRateChartBoard.isItemMinimized()); updateView(); } + + private void updateProcessCombo() { + int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex(); + if(index+1 > processCombo.getItems().size()) { + addProcessListToProcessCombo(); + } + processCombo.select(index); + } + + private void addProcessListToProcessCombo() { + Project project = Global.getProject(); + if (null == project) { + return; + } + + int[] pids = project.getProcessIDs(); + int pcount = pids.length; + + for (int i = 0; i < pcount; i++) { + ProcessInformation process = project.getProcessInformation(pids[i]); + String binName = process.getProcessName(); + if (binName == null || binName.isEmpty()) { + ProcessMemoryMap map = process.getLastProcessMemoryMap(); + if (map != null) { + int bid = map.getMainbinary().getBinaryID(); + String binPath = project.getDeviceStatusInfo().getBinaryInfo(bid) + .getTargetBinaryPath(); + if (null != binPath && !binPath.isEmpty()) { + int index = binPath.lastIndexOf(CommonConstants.SLASH); + binName = binPath.substring(index + 1, binPath.length()); + } + } + } + + StringBuffer buffer = new StringBuffer(); + buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER); + buffer.append(binName); + processCombo.add(buffer.toString()); + Toolbar.INSTANCE.getProcessCombo().add(buffer.toString()); + } + } @Override public void updateView() { + updateProcessCombo(); if (stackLayout.topControl == frameTimeChartBoard) { frameTimeChartBoard.updateView(); } else { @@ -381,6 +423,7 @@ public class GLChartView extends DAViewComposite { @Override public void updateView(DAViewData vdata) { + updateProcessCombo(); if (vdata instanceof GLSelectionData) { updateViewFromHistory((GLSelectionData) vdata); } else if (vdata instanceof DASelectionData) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java index 54648dd..17afc9d 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java @@ -383,9 +383,51 @@ public class ThreadChartView extends DAViewComposite { contents.layout(); updateView(); } + + private void updateProcessCombo() { + int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex(); + if(index+1 > processCombo.getItems().size()) { + addProcessListToProcessCombo(); + } + processCombo.select(index); + } + + private void addProcessListToProcessCombo() { + Project project = Global.getProject(); + if (null == project) { + return; + } + + int[] pids = project.getProcessIDs(); + int pcount = pids.length; + + for (int i = 0; i < pcount; i++) { + ProcessInformation process = project.getProcessInformation(pids[i]); + String binName = process.getProcessName(); + if (binName == null || binName.isEmpty()) { + ProcessMemoryMap map = process.getLastProcessMemoryMap(); + if (map != null) { + int bid = map.getMainbinary().getBinaryID(); + String binPath = project.getDeviceStatusInfo().getBinaryInfo(bid) + .getTargetBinaryPath(); + if (null != binPath && !binPath.isEmpty()) { + int index = binPath.lastIndexOf(CommonConstants.SLASH); + binName = binPath.substring(index + 1, binPath.length()); + } + } + } + + StringBuffer buffer = new StringBuffer(); + buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER); + buffer.append(binName); + processCombo.add(buffer.toString()); + Toolbar.INSTANCE.getProcessCombo().add(buffer.toString()); + } + } @Override public void updateView() { + updateProcessCombo(); if (stackLayout.topControl == syncChartBoard) { updateTimeLine(syncChartBoard); updateRange(syncChartBoard); @@ -433,6 +475,7 @@ public class ThreadChartView extends DAViewComposite { @Override public void updateView(DAViewData data) { + updateProcessCombo(); if (data instanceof DASelectionData == false) { return; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartView.java index de5b102..a4f7b70 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartView.java @@ -212,7 +212,6 @@ public class TimelineChartView extends DAViewComposite { @Override public void handleEvent(Event event) { - Project project = Global.getProject(); if (null == project) { return; @@ -251,6 +250,47 @@ public class TimelineChartView extends DAViewComposite { }); } + private void addProcessListToProcessCombo() { + Project project = Global.getProject(); + if (null == project) { + return; + } + + int[] pids = project.getProcessIDs(); + int pcount = pids.length; + + for (int i = 0; i < pcount; i++) { + ProcessInformation process = project.getProcessInformation(pids[i]); + String binName = process.getProcessName(); + if (binName == null || binName.isEmpty()) { + ProcessMemoryMap map = process.getLastProcessMemoryMap(); + if (map != null) { + int bid = map.getMainbinary().getBinaryID(); + String binPath = project.getDeviceStatusInfo().getBinaryInfo(bid) + .getTargetBinaryPath(); + if (null != binPath && !binPath.isEmpty()) { + int index = binPath.lastIndexOf(CommonConstants.SLASH); + binName = binPath.substring(index + 1, binPath.length()); + } + } + } + + StringBuffer buffer = new StringBuffer(); + buffer.append(process.getPid()).append(Toolbar.PROCESS_SPLITER); + buffer.append(binName); + processCombo.add(buffer.toString()); + Toolbar.INSTANCE.getProcessCombo().add(buffer.toString()); + } + } + + private void updateProcessCombo() { + int index = Toolbar.INSTANCE.getProcessCombo().getSelectionIndex(); + if(index+1 > processCombo.getItems().size()) { + addProcessListToProcessCombo(); + } + processCombo.select(index); + } + public void ScaleChanged(boolean zoom){ chartBoard.getScale().changeScale(zoom); } @@ -270,6 +310,7 @@ public class TimelineChartView extends DAViewComposite { @Override public void updateView(DAViewData data) { + updateProcessCombo(); if (data instanceof DASelectionData) { DASelectionData selData = (DASelectionData) data; @@ -295,6 +336,7 @@ public class TimelineChartView extends DAViewComposite { @Override public void updateView() { + updateProcessCombo(); timelineChartManager.makeChartSeries(AnalyzerUtil.translateSecToMicroSec(chartBoard.getVisibleStartTime()), AnalyzerUtil.translateSecToMicroSec(chartBoard.getVisibleEndTime())); -- 2.7.4