*/
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;
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;
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 {
checkCompleted = stopThreadCompleted;
}
+ long startTime = System.currentTimeMillis();
+
while(checkCompleted==false){
try {
Thread.sleep(10);
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);
enableToolBar.start();
}
}
+
+ private static DACustomButtonClickEventListener reStartListener = new DACustomButtonClickEventListener() {
+ @Override
+ public void handleClickEvent(DACustomButton button) {
+ AnalyzerUtil.forcedRestartDA();
+ }
+ };
}
String appLabel = pkglist.get(i).getMainApp().getLabel();
appCombo.add(appLabel);
}
- // Tooltip Disabled
- // set tooltip
- /*
- appCombo.setTooltip(new DACustomComboTooltip() {
-
- @Override
- public boolean makeTooltipInfo() {
- Map<String, List<String>> 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<String> info = new ArrayList<String>();
- 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
if (oldPackageName == null || (appCombo.getItems().indexOf(oldPackageName) < 0)) {
// there is no such item
- selectAppCombo(0);
+ ShowAppComboTitle();
} else {
appCombo.setText(oldPackageName);
}