From a28b089c5a2e167c337a8b3fcaccb5d48903366d Mon Sep 17 00:00:00 2001 From: jooyoul_lee Date: Mon, 16 Dec 2013 15:48:15 +0900 Subject: [PATCH] [Title] Fix progress popup state [Desc.] [Issue] --- .../swap/channel/data/ProcessInfo.java | 1 - .../swap/logparser/MessageParser.java | 28 +++++------ .../swap/logparser/SWAPLogParser.java | 4 +- .../tizen/dynamicanalyzer/swap/model/DATime.java | 7 +++ .../platform/ui/BinarySettingProgressManager.java | 3 +- .../tizen/dynamicanalyzer/ui/page/BaseView.java | 1 - .../ui/toolbar/StartProcessManager.java | 3 +- .../ui/toolbar/StopProcessManager.java | 3 +- .../dynamicanalyzer/ui/toolbar/ToolbarArea.java | 58 ++-------------------- .../opentrace/OpenTraceProgressManager.java | 3 +- .../tizen/dynamicanalyzer/ui/widgets/DADialog.java | 4 -- .../dynamicanalyzer/ui/widgets/ProgressDialog.java | 52 +++++++++++++++++-- .../tizen/dynamicanalyzer/utils/AnalyzerUtil.java | 13 ++++- 13 files changed, 91 insertions(+), 89 deletions(-) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfo.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfo.java index 09d9250..e0900c8 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfo.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/channel/data/ProcessInfo.java @@ -95,7 +95,6 @@ public class ProcessInfo { } public BinaryInfo getTargetBinary(long pcAddr) { - BinaryInfo binInfo = null; if (pcAddr >= getLowestAddress() && pcAddr <= getHighestAddress()) { String pkgId = DACommunicator.getSelectedApp().getPackageId(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java index b0d6823..c3df94d 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java @@ -204,7 +204,7 @@ public class MessageParser { index += LONG_SIZE; String libPath = ByteUtils.getString(data, index); // remove \0 char -// libPath = libPath.substring(0, libPath.length() - 1); + // libPath = libPath.substring(0, libPath.length() - 1); index += ByteUtils.getStringLength(data, index); libObj.setLowestAddress(lowestAddr); libObj.setHighestAddress(highestAddr); @@ -239,8 +239,8 @@ public class MessageParser { pInfo.setStartTime(startTime); pInfo.setLowestAddress(lowAddr); pInfo.setHighestAddress(highAddr); -// targetBinaryPath = new String(targetBinaryPath.substring(0, -// targetBinaryPath.length() - 1)); + // targetBinaryPath = new String(targetBinaryPath.substring(0, + // targetBinaryPath.length() - 1)); pInfo.setMainTargetBinaryPath(targetBinaryPath); pInfo.setDepLibCount(dependantLibCount); @@ -531,23 +531,23 @@ public class MessageParser { case DataChannelConstants.MSG_DATA_ERROR: // process error message break; - + case DataChannelConstants.MSG_DATA_SYSTEM: Runtime runtime = Runtime.getRuntime(); -// System.out.println("used : " -// + (runtime.totalMemory() - runtime.freeMemory()) -// + " commit : " + runtime.totalMemory() + " max : " -// + runtime.maxMemory()); + // System.out.println("used : " + // + (runtime.totalMemory() - runtime.freeMemory()) + // + " commit : " + runtime.totalMemory() + " max : " + // + runtime.maxMemory()); if ((runtime.totalMemory() - runtime.freeMemory()) >= runtime .maxMemory() * 0.8) { ToolbarArea.getInstance().stopTrace(); Display.getDefault().asyncExec(new Runnable() { @Override public void run() { - final Shell shell = AnalyzerUtil - .getWorkbenchWindow().getShell(); - DADialog dialog = new DADialog(shell, SWT.NONE, - 550, 153); + final Shell shell = AnalyzerUtil.getWorkbenchWindow() + .getShell(); + DADialog dialog = new DADialog(shell, SWT.NONE, 550, + 153); dialog.setIcon(ImageResources.DIALOG_WARNING_ICON); dialog.setMessage(AnalyzerLabels.HEAP_MEMORY_WARNING_PRE + AnalyzerPaths.DYNAMIC_ANALYZER_INSTALL_PATH @@ -556,10 +556,10 @@ public class MessageParser { } }); } - - case DataChannelConstants.MSG_DATA_SAMPLE: + case DataChannelConstants.MSG_FUNCTION_ENTRY: case DataChannelConstants.MSG_FUNCTION_EXIT: + case DataChannelConstants.MSG_DATA_SAMPLE: case DataChannelConstants.MSG_CONTEXT_SWITCH_ENTRY: case DataChannelConstants.MSG_CONTEXT_SWITCH_EXIT: case DataChannelConstants.MSG_DATA_RECORD: diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java index 6f3c07a..00f618e 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java @@ -156,13 +156,15 @@ public class SWAPLogParser implements Runnable { if (null == apiName || apiName.isEmpty() || apiName.equals("_end")) { //$NON-NLS-1$ apiName = AnalyzerUtil.getFuncName(pData); - if (apiName.equals("")) { + if (apiName == null || apiName.equals("")) { // necessary? pData.setApiName(apiName); continue; } else { pData.setApiName(apiName); } } + + System.out.println("api name : " + apiName + " time : " + pData.getTime()); if (isDropCallTraceLog()) { apiName = pData.getApiName(); if (apiName.contains(OSP_MAIN)) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java index 8536312..c80b664 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java @@ -62,4 +62,11 @@ public class DATime { nano = Integer.parseInt(splitData[1]); } + public long getLongTime() { + long ret = 0; + long secLong = sec* 1000000; + long nanoLong = nano/1000; + ret = secLong + nanoLong; + return ret; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/BinarySettingProgressManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/BinarySettingProgressManager.java index 5907b33..12d0814 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/BinarySettingProgressManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/BinarySettingProgressManager.java @@ -1,6 +1,5 @@ package org.tizen.dynamicanalyzer.swap.platform.ui; -import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; @@ -18,7 +17,7 @@ public class BinarySettingProgressManager { public void startProcessStart(String waitMessage) { Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell(); - dialog = new ProgressDialog(shell, SWT.ON_TOP); + dialog = new ProgressDialog(shell); if (null != dialog) { dialog.open(); dialog.setProgressMessage(waitMessage); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java index 53cb9b8..4d26426 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java @@ -34,7 +34,6 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.ui.part.ViewPart; import org.tizen.dynamicanalyzer.model.DAView; import org.tizen.dynamicanalyzer.ui.file.FilePage; -import org.tizen.dynamicanalyzer.ui.kernel.KernelPage; import org.tizen.dynamicanalyzer.ui.network.NetworkPage; import org.tizen.dynamicanalyzer.ui.opengl.ui.GLPage; import org.tizen.dynamicanalyzer.ui.summary.SummaryPage; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StartProcessManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StartProcessManager.java index c83fa2f..92180aa 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StartProcessManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StartProcessManager.java @@ -1,6 +1,5 @@ package org.tizen.dynamicanalyzer.ui.toolbar; -import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.common.AnalyzerManager; @@ -20,7 +19,7 @@ public class StartProcessManager implements Runnable { public void startProcessStart(String waitMessage) { Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell(); - dialog = new ProgressDialog(shell, SWT.ON_TOP); + dialog = new ProgressDialog(shell); if (null != dialog) { dialog.open(); dialog.setProgressMessage(waitMessage); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopProcessManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopProcessManager.java index 5229db1..9ea616e 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopProcessManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopProcessManager.java @@ -26,7 +26,6 @@ */ package org.tizen.dynamicanalyzer.ui.toolbar; -import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.common.AnalyzerManager; @@ -57,7 +56,7 @@ public class StopProcessManager { state = STOP_PROCESS_START; AnalyzerManager.setRunningState(false); Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell(); - dialog = new ProgressDialog(shell, SWT.ON_TOP); + dialog = new ProgressDialog(shell); if (null != dialog) { dialog.open(); dialog.setProgressMessage(EndMessage); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java index cf9a773..126a93f 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java @@ -27,7 +27,6 @@ package org.tizen.dynamicanalyzer.ui.toolbar; -import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -69,7 +68,6 @@ import org.tizen.dynamicanalyzer.ui.toolbar.replayEditor.ReplayEditDialog; import org.tizen.dynamicanalyzer.ui.widgets.DADialog; import org.tizen.dynamicanalyzer.ui.widgets.TitleComboPopupRenderer; import org.tizen.dynamicanalyzer.ui.widgets.TitleComboRenderer; -import org.tizen.dynamicanalyzer.uirecorder.RecorderXml; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.widgets.button.DACustomButton; import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener; @@ -359,12 +357,12 @@ public class ToolbarArea { @Override public void selectionEvent(DACustomCombo combo) { - BaseView baseView = (BaseView) AnalyzerUtil.getViewPart(BaseView.ID); + BaseView baseView = (BaseView) AnalyzerUtil + .getViewPart(BaseView.ID); baseView.getTopComposite().updatePage(); } }); - processCombo.addListener(SWT.MouseDown, new Listener() { @Override @@ -484,58 +482,8 @@ public class ToolbarArea { @Override public void handleClickEvent(DACustomButton button) { - // ReplayData replayData = - // SqlManager.getInstance().getReplayLogs(); - // DATime startTime = - // AnalyzerManager.getProject().getStartTime(); - // int count = replayData.getObjectCount(); - // byte[] eventObjs = null; - // for (int i = 0; i < count; i++) { - // eventObjs = ByteUtils.concatByteArray(eventObjs, - // replayData - // .getRecordEvent().get(i).getByteValues()); - // } - // byte[] replayEvent = ByteUtils.getByte(1, - // startTime.getSec(), - // startTime.getNano(), count, eventObjs); - // System.out.println(); // TODO : use for test code... - // String path = - // "/home/casval/work/testApp/DATizenTestApp/Dynamic Analyzer/DATizenTestApp.exe"; - // ElfSymbolExtractManager.getInstance().makeSymbol(path); - // Long[] result = ElfSymbolExtractManager.getInstance() - // .getSymbolAddress(); - // - // HashMap symbolMap = - // ElfSymbolExtractManager - // .getInstance().symbolMap(); - // List symbols = new ArrayList(); - // symbols.addAll(symbolMap.values()); - // - // for (String s : symbols) { - // String symbol = SymbolManager - // .demanglingFunctionName(s); - // System.out.println("test : " + symbol); - // } - // DACommunicator.getLocalhost(); - // System.out.println(CommonConstants.LOCAL_HOST); - - /** for disconnect test **/ - // DACommunicator.testDisConnected(); - - /** for theme test **/ - // if (toggle.isToggled()) { - // AnalyzerManager.setTheme(DAThemeBlack.getInstance()); - // } else { - // AnalyzerManager.setTheme(DAThemeWhite.getInstance()); - // } - // BaseView view = (BaseView) - // AnalyzerUtil.getView(BaseView.ID); - // FilePage filePage = new - // FilePage(view.getMainTab().getContentComposite(), - // SWT.NONE); - // view.getMainTab().addView(filePage, - // AnalyzerLabels.COOLBAR_AREA_FILE); + } }); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceProgressManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceProgressManager.java index fa88747..9c5553a 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceProgressManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceProgressManager.java @@ -25,7 +25,6 @@ */ package org.tizen.dynamicanalyzer.ui.toolbar.opentrace; -import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; @@ -95,7 +94,7 @@ public class OpenTraceProgressManager implements Runnable { public void run() { state = OPEN_TRACE_PROCESS_START; Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell(); - dialog = new ProgressDialog(shell, SWT.APPLICATION_MODAL); + dialog = new ProgressDialog(shell); if (null != dialog) { dialog.open(); dialog.setProgressMessage(EndMessage); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DADialog.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DADialog.java index bb4ea5e..76fc127 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DADialog.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DADialog.java @@ -54,8 +54,6 @@ public class DADialog { private String message = null; private boolean returnType = false; private String titleText = AnalyzerLabels.DA_WARNING; - private int width = 446; - private int height = 153; private Image iconImage = ImageResources.DYNANMIC_ANALYZER_ICON; @@ -74,8 +72,6 @@ public class DADialog { public DADialog(Shell parent, int style, int width, int height) { this(parent, style); - this.width = width; - this.height = height; } public boolean open() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/ProgressDialog.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/ProgressDialog.java index 79f5044..96c2639 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/ProgressDialog.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/ProgressDialog.java @@ -27,7 +27,10 @@ package org.tizen.dynamicanalyzer.ui.widgets; import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea; import org.tizen.dynamicanalyzer.widgets.helper.ColorResources; @@ -39,13 +42,52 @@ public class ProgressDialog { private Shell shell = null; private Progress progress = null; - public ProgressDialog(Shell parent, int style) { - shell = new Shell(parent, style); + private Listener shellMouseListener = new Listener() { + boolean down = false; + Point downPoint = new Point(0, 0); + + @Override + public void handleEvent(Event event) { + int id = event.type; + if (event.widget instanceof Progress) { + + Shell shell = (Shell) ((Progress) event.widget).getParent(); + switch (id) { + case SWT.MouseDown: + downPoint.x = event.x; + downPoint.y = event.y; + down = true; + break; + case SWT.MouseUp: + down = false; + break; + case SWT.MouseMove: + if (down) { + System.out.println("mouse move " + event.x + " " + + event.y); + Point p = shell.getLocation(); + System.out.println("point : " + p); + + p.x = p.x + (event.x - downPoint.x); + p.y = p.y + (event.y - downPoint.y); + shell.setLocation(p); + } + break; + default: + break; + } + } else { + down = false; + } + } + }; + + public ProgressDialog(Shell parent) { + shell = new Shell(parent, SWT.APPLICATION_MODAL); shell.setSize(300, 100); shell.setLayout(new FillLayout()); progress = new Progress(shell, SWT.NONE, Progress.PROGRESS_STYLE_ALL); - progress.setBarStartColor(ColorResources.STOP_PROGRESS_BAR_START_COLOR); progress.setBarEndColor(ColorResources.STOP_PROGRESS_BAR_END_COLOR); progress.setBarStartBackgroundColor(ColorResources.STOP_PROGRESS_BAR_BG_START_COLOR); @@ -60,6 +102,10 @@ public class ProgressDialog { progress.setBarBackgroundColor(ColorResources.STOP_PROGRESS_BACKGROUND_COLOR); WidgetUtils.setCenter(shell); + + shell.getDisplay().addFilter(SWT.MouseDown, shellMouseListener); + shell.getDisplay().addFilter(SWT.MouseUp, shellMouseListener); + shell.getDisplay().addFilter(SWT.MouseMove, shellMouseListener); } public void open() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/AnalyzerUtil.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/AnalyzerUtil.java index ac95214..6b4be84 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/AnalyzerUtil.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/AnalyzerUtil.java @@ -639,8 +639,17 @@ public class AnalyzerUtil { .getProcessInfo(input.getTime()); /** for debug */ - // BinaryInfo binInfo1 = processInfo.getTargetBinary(input.getPcAddr()); - // String binPath1 =binInfo1.getTargetBinaryPath(); + BinaryInfo binInfo1 = processInfo.getTargetBinary(input.getPcAddr()); + if (binInfo1 == null) { + System.out.println("msg id : " + toHexdecimal(input.getId()) + + " pid : " + processInfo.getPid() + " low : " + + toHexdecimal(processInfo.getLowestAddress()) + + " input addr : " + toHexdecimal(input.getPcAddr()) + + " high : " + + toHexdecimal(processInfo.getHighestAddress())); + return null; + } + // String binPath1 = binInfo1.getTargetBinaryPath(); // System.out.print("binary : " + binPath1 + " ==> "); // AnalyzerUtil.printHexdecimal(processInfo.getLowestAddress()); // System.out.print(" < "); -- 2.7.4