From feffb0897b4f280b8d2ab37f0d3818841bb6fea4 Mon Sep 17 00:00:00 2001 From: "ggh1933.go" Date: Tue, 31 May 2016 11:07:21 +0900 Subject: [PATCH] [SRADA-707]Making restart program, when StopTrace in deadLock. - Add restart DA method in AnalyzerUtil. - When StopTrace DeadLock (in "while" over 10 secs), Wanning Dialog popup. - Select RestartDA call restart DA method. - + Fix ToolBar swtException Error issue, When Multi device connected and any device AppList Empty. - + AppList Empty noty text Change-Id: I19384c05c53f8eafce22db59769b51a699fe234c --- .../dynamicanalyzer/control/StopTraceManager.java | 37 +++++++++++++++++ .../ui/toolbar/DAToolBarCustomCombo.java | 1 + .../tizen/dynamicanalyzer/ui/toolbar/Toolbar.java | 47 ++-------------------- .../tizen/dynamicanalyzer/utils/AnalyzerUtil.java | 13 ++++++ 4 files changed, 55 insertions(+), 43 deletions(-) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/control/StopTraceManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/control/StopTraceManager.java index 4297d10..eca0d75 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/control/StopTraceManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/control/StopTraceManager.java @@ -25,7 +25,10 @@ */ package org.tizen.dynamicanalyzer.control; +import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.tizen.dynamicanalyzer.common.DALogExport; import org.tizen.dynamicanalyzer.common.DAResult; import org.tizen.dynamicanalyzer.common.Global; import org.tizen.dynamicanalyzer.common.DAState; @@ -34,6 +37,7 @@ import org.tizen.dynamicanalyzer.handlers.ReplayManager; import org.tizen.dynamicanalyzer.handlers.UIAction; import org.tizen.dynamicanalyzer.nl.MenuBarLabels; import org.tizen.dynamicanalyzer.project.Project; +import org.tizen.dynamicanalyzer.resources.ImageResources; import org.tizen.dynamicanalyzer.setting.Feature; import org.tizen.dynamicanalyzer.setting.SettingDataManager; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; @@ -51,6 +55,10 @@ import org.tizen.dynamicanalyzer.ui.timeline.dlog.DLogDataManager; import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar; import org.tizen.dynamicanalyzer.util.Logger; import org.tizen.dynamicanalyzer.util.WorkbenchUtil; +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; +import org.tizen.dynamicanalyzer.widgets.button.DACustomButton; +import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener; +import org.tizen.dynamicanalyzer.widgets.da.base.DADialog; import org.tizen.dynamicanalyzer.widgets.da.base.ProgressDialog; public class StopTraceManager implements Runnable { @@ -212,6 +220,8 @@ public class StopTraceManager implements Runnable { checkCompleted = stopThreadCompleted; } + long startTime = System.currentTimeMillis(); + while(checkCompleted==false){ try { Thread.sleep(10); @@ -223,6 +233,26 @@ public class StopTraceManager implements Runnable { synchronized(stopThreadCompleted){ checkCompleted = stopThreadCompleted; } + + long elapsedTime = System.currentTimeMillis() - startTime; + if(elapsedTime > 10000){ + + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + Shell shell = WorkbenchUtil.getWorkbenchWindow().getShell(); + DADialog dialog = new DADialog(shell, SWT.NONE); + dialog.setIcon(ImageResources.DIALOG_WARNING_ICON); + dialog.setMessage("DA unsafely Stopped, If you want to another trace Select restart DA"); + dialog.setDialog(true); + dialog.getExportButton().setText("restart DA"); + dialog.getExportButton().addClickListener(reStartListener); + dialog.open(); + } + }); + + break; + } } // set shortcut and toolbar UI as DA state ShortCutManager.getInstance().setEnabled(true); @@ -243,4 +273,11 @@ public class StopTraceManager implements Runnable { enableToolBar.start(); } } + + private static DACustomButtonClickEventListener reStartListener = new DACustomButtonClickEventListener() { + @Override + public void handleClickEvent(DACustomButton button) { + AnalyzerUtil.forcedRestartDA(); + } + }; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/DAToolBarCustomCombo.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/DAToolBarCustomCombo.java index fc6c66e..4f19b01 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/DAToolBarCustomCombo.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/DAToolBarCustomCombo.java @@ -517,6 +517,7 @@ public class DAToolBarCustomCombo extends Canvas { public void upEvent() { if (isShowSelectedText()) { if (getItems().size() > 0) { + if(itemIndex + selection < 0) return; setText(getItems().get(itemIndex + selection)); } } else if (null != attr.getText()) { 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 055e44e..8b470f9 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 @@ -1045,49 +1045,10 @@ public enum Toolbar { String appLabel = pkglist.get(i).getMainApp().getLabel(); appCombo.add(appLabel); } - // Tooltip Disabled - // set tooltip - /* - appCombo.setTooltip(new DACustomComboTooltip() { - - @Override - public boolean makeTooltipInfo() { - Map> map = getTooltipTextListMap(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - - for (int i = 0; i < pkglist.size(); i++) { - PackageInfo pkg = pkglist.get(i); - AppInfo app = pkg.getMainApp(); - if (AnalyzerConstants.RUNNING_PROCESS_LABEL.equals(app.getLabel()) - || AnalyzerConstants.COMMON_EXECUTABLE_LABEL.equals(app.getLabel()) - || AnalyzerConstants.WITHOUT_EXECUTABLE_LABEL.equals(app.getLabel())) { - continue; - } - - // set information - List info = new ArrayList(); - info.add(AnalyzerLabels.DETAIL_INFORMATION_PACKAGE_NAME - + pkg.getPackageId()); - info.add(AnalyzerLabels.DETAIL_INFORMATION_PACKAGE_VERSION - + pkg.getVersion()); - info.add(AnalyzerLabels.DETAIL_INFORMATION_PACKAGE_INSTALL_TIME - + dateFormat.format(new Date(pkg.getInstallTime() * 1000))); - info.add(AnalyzerLabels.DETAIL_INFORMATION_APPLICATION_NAME - + app.getLabel()); - info.add(AnalyzerLabels.DETAIL_INFORMATION_APPLICATION_EXEC_PATH - + app.getExecPath()); - - map.put(app.getLabel(), info); - } - return true; - } - }); - */ + redrawAppcombo(); } else { - ShowAppComboTitle(); - //appCombo.select(0); - } - redrawAppcombo(); + appCombo.add("===[App List Empty]==="); + } } @UIMethod @@ -1263,7 +1224,7 @@ public enum Toolbar { if (oldPackageName == null || (appCombo.getItems().indexOf(oldPackageName) < 0)) { // there is no such item - selectAppCombo(0); + ShowAppComboTitle(); } else { appCombo.setText(oldPackageName); } 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 574959c..1dfadb6 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/AnalyzerUtil.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/AnalyzerUtil.java @@ -507,4 +507,17 @@ public class AnalyzerUtil { public static void setLatestTraceMode(String pageID, boolean isOn) { latestTraceModeMap.put(pageID, isOn); } + + /// DA program restart forcely + public static void forcedRestartDA(){ + Display.getDefault().syncExec(new Runnable(){ + + @Override + public void run() { + // TODO Auto-generated method stub + PlatformUI.getWorkbench().restart(); + } + + }); + } } -- 2.7.4