*/
package org.tizen.dynamicanalyzer.shortcut;
-import java.io.File;
-
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
-import org.tizen.dynamicanalyzer.common.DAResult;
-import org.tizen.dynamicanalyzer.common.DAResult.ErrorCode;
-import org.tizen.dynamicanalyzer.common.DAState;
-import org.tizen.dynamicanalyzer.handlers.CommandAction;
-import org.tizen.dynamicanalyzer.handlers.ReplayManager;
-import org.tizen.dynamicanalyzer.handlers.UIActionHolder;
-import org.tizen.dynamicanalyzer.common.Global;
-import org.tizen.dynamicanalyzer.handlers.CommandAction;
-import org.tizen.dynamicanalyzer.handlers.UIAction;
-import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
import org.tizen.dynamicanalyzer.nl.MenuBarLabels;
-import org.tizen.dynamicanalyzer.project.Project;
-import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry;
-import org.tizen.dynamicanalyzer.ui.range.RangeDataManager;
+import org.tizen.dynamicanalyzer.ui.page.MenuBar;
import org.tizen.dynamicanalyzer.ui.toolbar.AboutDialog;
-import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar;
-import org.tizen.dynamicanalyzer.ui.toolbar.opentrace.OpenTraceProgressManager;
import org.tizen.dynamicanalyzer.util.CommonUtil;
import org.tizen.dynamicanalyzer.util.Logger;
import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
AboutDialog dialog = new AboutDialog(shell);
dialog.open();
} else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 'o') {
- FileDialog dialog = new FileDialog(currentShell, SWT.OPEN);
- dialog.setFilterNames(new String[] { "Zip file" });
- dialog.setFilterExtensions(new String[] { "*.zip" });
- dialog.setText(MenuBarLabels.FILE_LOAD_DIALOG_TITLE);
-
- final Object result = dialog.open();
- if (null != result) {
- Toolbar.INSTANCE.clearMarkerTimeList();
- RangeDataManager.getInstance().clearMarkerTime();
- RangeDataManager.getInstance().clearTimelineMarker();
- Thread loadthread = new Thread(new Runnable() {
-
- @Override
- public void run() {
- String decompresspath = CommandAction.loadFromZip((String) result);
-
- OpenTraceProgressManager.getInstance().setSavePath(decompresspath);
- OpenTraceProgressManager.getInstance().startOpenTraceThread();
- }
- });
-
- loadthread.run();
- }
+ if (MenuBar.getInstance().isMenuItemEnabled(MenuBarLabels.FILE_LOAD))
+ MenuBar.getInstance().showLoadDialog();
} else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 's') {
- Project project = Global.getProject();
- if (project == null) {
- return null;
- }
-
- project.save();
- DataManagerRegistry.saveData();
-
- String savefilename = project.getSavePath()
- .substring(project.getSavePath().lastIndexOf(File.separator) + 1);
-
- FileDialog dialog = new FileDialog(currentShell, SWT.SAVE);
- dialog.setFilterNames(new String[] { "Zip file" });
- dialog.setFilterExtensions(new String[] { "*.zip" });
- dialog.setFileName(savefilename + ".zip");
- dialog.setText(MenuBarLabels.FILE_SAVE_DIALOG_TITLE);
-
- Object result = dialog.open();
- if (null != result) {
- if (!CommandAction.saveToZip((String) result)) {
- UIActionHolder.getUIAction().showWarning(AnalyzerLabels.SAVE_FAILED);
- }
- }
+ if (MenuBar.getInstance().isMenuItemEnabled(MenuBarLabels.FILE_SAVE))
+ MenuBar.getInstance().showSaveDialog();
}
/*
else if (e.keyCode == SWT.F2) {
} else if (menuName.equals(MenuBarLabels.FILE_LOAD)) {
if (showSaveWarning() == true) {
- FileDialog dialog = new FileDialog(currentShell, SWT.OPEN);
- dialog.setFilterNames(new String[] { "Zip file" });
- dialog.setFilterExtensions(new String[] { "*.zip" });
- dialog.setText(MenuBarLabels.FILE_LOAD_DIALOG_TITLE);
- dialog.setFilterPath(PathManager.DA_SAVE_PATH);
-
- final Object result = dialog.open();
- if (null != result) {
- Toolbar.INSTANCE.clearMarkerTimeList();
- RangeDataManager.getInstance().clearMarkerTime();
- RangeDataManager.getInstance().clearTimelineMarker();
- Thread loadthread = new Thread(new Runnable() {
-
- @Override
- public void run() {
- String decompresspath = CommandAction.loadFromZip((String) result);
-
- OpenTraceProgressManager.getInstance().setSavePath(decompresspath);
- OpenTraceProgressManager.getInstance().startOpenTraceThread();
- }
- });
-
- loadthread.run();
- }
+ showLoadDialog();
}
} else if (menuName.equals(MenuBarLabels.FILE_SAVE)) {
showSaveDialog();
return false;
}
+ /**
+ * Checks is menu item specified with menuName enabled.
+ *
+ * @param menuName name of item to check.
+ * @return true if item is enabled and falls otherwise.
+ */
+ public boolean isMenuItemEnabled(String menuName){
+ int i = checkMenuitemStatus(menubar, menuName);
+ // TODO may be we need check for i==-1 here, that means that menu,
+ // specified with menuName, does not exists
+ return i == 1;
+ }
+
+ /**
+ * Looks through menus and sub menus for menu with name equals to menuName
+ * and returns its status: is it enabled or not.
+ *
+ * @param menu menu, that contains a number of items
+ * @param menuName name of item to check.
+ * @return 1 if item enabled, 0 if not, and -1 if item not found.
+ */
+ private int checkMenuitemStatus(Menu menu, String menuName) {
+ for (MenuItem item : menu.getItems()) {
+ if (item.getText().equals(menuName))
+ return item.isEnabled() ? 1 : 0;
+ if (item.getMenu() == null)
+ continue;
+ int res = checkMenuitemStatus(item.getMenu(), menuName);
+ if (res >= 0)
+ return res;
+ }
+ return -1;
+ }
+
private boolean setMenuItemenable(MenuItem menuitem, String menuName, boolean enable) {
if (menuitem.getText().equals(menuName)) {
return clear;
}
-
- private void showSaveDialog() {
+
+ public void showLoadDialog(){
+ FileDialog dialog = new FileDialog(currentShell, SWT.OPEN);
+ dialog.setFilterNames(new String[] { "Zip file" });
+ dialog.setFilterExtensions(new String[] { "*.zip" });
+ dialog.setText(MenuBarLabels.FILE_LOAD_DIALOG_TITLE);
+ dialog.setFilterPath(PathManager.DA_SAVE_PATH);
+
+ final Object result = dialog.open();
+ if (null != result) {
+ Toolbar.INSTANCE.clearMarkerTimeList();
+ RangeDataManager.getInstance().clearMarkerTime();
+ RangeDataManager.getInstance().clearTimelineMarker();
+ Thread loadthread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ String decompresspath = CommandAction.loadFromZip((String) result);
+
+ OpenTraceProgressManager.getInstance().setSavePath(decompresspath);
+ OpenTraceProgressManager.getInstance().startOpenTraceThread();
+ }
+ });
+ loadthread.run();
+ }
+ }
+
+ public void showSaveDialog() {
Project project = Global.getProject();
if (project == null) {
return;