point="org.eclipse.ui.bindings">\r
<scheme\r
id="myscheme"\r
- name="ignoreKeybinding"\r
+ name="shortcutKeybinding"\r
parentId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
</scheme>\r
- <key\r
- commandId="mycommand"\r
- contextId="org.eclipse.ui.contexts.window"\r
- schemeId="myscheme"\r
- sequence="CTRL+3">\r
- </key>\r
- </extension>\r
- <extension\r
- point="org.eclipse.ui.commands">\r
- <command\r
- defaultHandler="org.tizen.dynamicanalyzer.workbench.DefaultKeyBindingHandler"\r
- id="mycommand"\r
- name="name">\r
- </command>\r
</extension>\r
\r
</plugin>\r
+++ /dev/null
-package org.tizen.dynamicanalyzer.workbench;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-public class DefaultKeyBindingHandler extends AbstractHandler {
-
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- System.out.println("binding key ctrl + 3 ignore");
- return null;
- }
-}
id="org.tizen.dynamicanalyzer.handlers.StartHandler"
name="Start">
</command>
+ <command
+ defaultHandler="org.tizen.dynamicanalyzer.shortcut.ShortCutKeyBindingHandler"
+ id="Shortcut"
+ name="Shortcut">
+ </command>
</extension>
<extension
point="org.eclipse.ui.handlers">
name="views">
</category>
</extension>
+ <extension
+ point="org.eclipse.ui.bindings">
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="F1">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="F2">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="F3">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+1">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+2">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+3">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+4">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+5">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+6">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+7">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+8">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+9">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+G">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+O">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+S">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+P">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+R">
+ </key>
+ <key
+ commandId="Shortcut"
+ contextId="org.eclipse.ui.contexts.window"
+ schemeId="myscheme"
+ sequence="M1+E">
+ </key>
+ </extension>
</plugin>
import java.io.File;\r
import java.util.List;\r
\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.widgets.Event;\r
-import org.eclipse.swt.widgets.Listener;\r
+\r
import org.eclipse.ui.IPartService;\r
import org.eclipse.ui.IWorkbench;\r
import org.eclipse.ui.IWorkbenchListener;\r
import org.osgi.framework.BundleContext;\r
import org.tizen.dynamicanalyzer.listeners.AnalyzerPartListener;\r
import org.tizen.dynamicanalyzer.listeners.AnalyzerPerspectiveListener;\r
-import org.tizen.dynamicanalyzer.shortcut.ShortCutManager;\r
import org.tizen.dynamicanalyzer.sql.SqlManager;\r
import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;\r
\r
\r
AnalyzerPartListener partListener = new AnalyzerPartListener();\r
partService.addPartListener(partListener);\r
-\r
- AnalyzerUtil.getWorkbenchWindow().getShell().getDisplay()\r
- .addFilter(SWT.KeyUp, new Listener() {\r
-\r
- @Override\r
- public void handleEvent(Event event) {\r
- ShortCutManager.getInstance()\r
- .handleShortCutEvent(event);\r
- }\r
- });\r
-\r
}\r
\r
@Override\r
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Heeyoung Hwang <heeyoung1008.hwang@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+package org.tizen.dynamicanalyzer.shortcut;
+
+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.Shell;
+import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
+import org.tizen.dynamicanalyzer.common.AnalyzerManager;
+import org.tizen.dynamicanalyzer.handlers.ReplayTraceHandler;
+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.range.RangeDataManager;
+import org.tizen.dynamicanalyzer.ui.range.RangePage;
+import org.tizen.dynamicanalyzer.ui.summary.SummaryPage;
+import org.tizen.dynamicanalyzer.ui.thread.ThreadPage;
+import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
+import org.tizen.dynamicanalyzer.ui.toolbar.AboutDialog;
+import org.tizen.dynamicanalyzer.ui.toolbar.SaveAsDialog;
+import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
+import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialog;
+import org.tizen.dynamicanalyzer.ui.toolbar.opentrace.OpenTraceDialog;
+import org.tizen.dynamicanalyzer.ui.toolbar.replayEditor.ReplayEditDialog;
+import org.tizen.dynamicanalyzer.ui.userinterface.UIPage;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
+import org.tizen.dynamicanalyzer.widgets.button.toggle.DACustomToggleButton;
+
+public class ShortCutKeyBindingHandler extends AbstractHandler {
+ private int CTRL_STATE_MASK = SWT.CTRL;
+
+ private static int KEY_1 = 49;
+ private static int KEY_2 = 50;
+ private static int KEY_3 = 51;
+ private static int KEY_4 = 52;
+ private static int KEY_5 = 53;
+ private static int KEY_6 = 54;
+ private static int KEY_7 = 55;
+ private static int KEY_8 = 56;
+ private static int KEY_9 = 57;
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ Event e = (Event)event.getTrigger();
+ ShortCutManager instance = ShortCutManager.getInstance();
+ boolean enabled = instance.isEnabled();
+ if (AnalyzerUtil.isMac()) {
+ CTRL_STATE_MASK = SWT.COMMAND;
+ }
+
+ if (!enabled) {
+ return null;
+ }
+
+ if (e.keyCode == SWT.F1) {
+ System.out.println("about");
+ Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
+ AboutDialog dialog = new AboutDialog(shell);
+ dialog.open();
+ } else if (e.keyCode == SWT.F2) {
+ System.out.println("configuration");
+ Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
+ ConfigurationDialog dialog = new ConfigurationDialog(shell);
+ dialog.open();
+ } else if (e.keyCode == SWT.F3) {
+ System.out.println("view source toggle");
+ DACustomToggleButton button = (DACustomToggleButton) ToolbarArea
+ .getInstance().getButton(ToolbarArea.SOURCE_BUTTON);
+ button.setToggled(!button.isToggled());
+ }
+ // ctrl + number 1 ~ 6 page
+ else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_1) {
+ System.out.println("timeline page");
+ AnalyzerUtil.changePage(TimelinePage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_4) {
+ System.out.println("file page");
+ AnalyzerUtil.changePage(FilePage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_3) {
+ System.out.println("NetworkPage page");
+ AnalyzerUtil.changePage(NetworkPage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_2) {
+ System.out.println("thread page");
+ AnalyzerUtil.changePage(ThreadPage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_6) {
+ System.out.println("ui page");
+ AnalyzerUtil.changePage(UIPage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_5) {
+ System.out.println("Graphics page");
+ AnalyzerUtil.changePage(GLPage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_7) {
+ System.out.println("Kernel page");
+ AnalyzerUtil.changePage(KernelPage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_8) {
+ System.out.println("summary page");
+ AnalyzerUtil.changePage(SummaryPage.ID);
+ } else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == KEY_9) {
+ System.out.println("range page");
+ AnalyzerUtil.changePage(RangePage.ID);
+ }
+ // ctrl + t = 116
+ // 103 -> g
+ else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 103) {
+ if (!AnalyzerManager.isRunning()) {
+ System.out.println("start trace");
+ enabled = false;
+ System.out.println("start trace start");
+ ToolbarArea.getInstance().startTrace();
+ System.out.println("start trace end");
+ } else {
+ System.out.println("stop trace");
+ enabled = false;
+ ToolbarArea.getInstance().stopTrace();
+ }
+ }
+ // o
+ else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 111) {
+ System.out.println("open trace");
+ if (!AnalyzerManager.isRunning()) {
+ Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
+ OpenTraceDialog dialog = new OpenTraceDialog(shell);
+ dialog.open();
+ }
+ }
+ // s
+ else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 115) {
+ System.out.println("save trace");
+ if (ToolbarArea.getInstance().getButton(ToolbarArea.SAVE_BUTTON)
+ .isButtonEnabled()) {
+ Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
+ SaveAsDialog dialog = new SaveAsDialog(shell);
+ Object result = dialog.open();
+ if (result != null) {
+ ToolbarArea.getInstance()
+ .getButton(ToolbarArea.SAVE_BUTTON)
+ .setButtonEnabled(false);
+ }
+ }
+ }
+ // p
+ else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 112) {
+ System.out.println("replay ");
+ if (!AnalyzerManager.isRunning()) {
+ DACustomButton button = (DACustomButton) ToolbarArea
+ .getInstance().getButton(ToolbarArea.REPLAY_BUTTON);
+ if (button.isButtonEnabled()) {
+ if (AnalyzerUtil.executeCommand(ReplayTraceHandler.ID) == AnalyzerConstants.SUCCESS) {
+ ToolbarArea.getInstance().startTrace();
+ }
+ }
+ }
+ }
+ // r
+ else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 114) {
+ System.out.println("range ");
+ if (RangeDataManager.getInstance().isBeingAnalyzed()) {
+ RangeDataManager.getInstance().initRange();
+ } else {
+ if (RangeDataManager.getInstance().isAnalyzable()) {
+ RangeDataManager.getInstance().startRangeAnalysis();
+ }
+ }
+ }
+ // e
+ else if (e.stateMask == CTRL_STATE_MASK && e.keyCode == 101) {
+ System.out.println("replay Edit");
+ if (!AnalyzerManager.isRunning()) {
+ Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
+ ReplayEditDialog dialog = new ReplayEditDialog(shell);
+ dialog.open();
+ }
+ }
+
+ return null;
+
+ }
+}
*/
package org.tizen.dynamicanalyzer.shortcut;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.AnalyzerManager;
-import org.tizen.dynamicanalyzer.handlers.ReplayTraceHandler;
import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
-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.range.RangeDataManager;
-import org.tizen.dynamicanalyzer.ui.range.RangePage;
-import org.tizen.dynamicanalyzer.ui.summary.SummaryPage;
-import org.tizen.dynamicanalyzer.ui.thread.ThreadPage;
-import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
-import org.tizen.dynamicanalyzer.ui.toolbar.AboutDialog;
-import org.tizen.dynamicanalyzer.ui.toolbar.SaveAsDialog;
-import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
-import org.tizen.dynamicanalyzer.ui.toolbar.configuration.ConfigurationDialog;
-import org.tizen.dynamicanalyzer.ui.toolbar.opentrace.OpenTraceDialog;
-import org.tizen.dynamicanalyzer.ui.toolbar.replayEditor.ReplayEditDialog;
-import org.tizen.dynamicanalyzer.ui.userinterface.UIPage;
import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
-import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
-import org.tizen.dynamicanalyzer.widgets.button.toggle.DACustomToggleButton;
+
public class ShortCutManager {
private static ShortCutManager instance = null;
private boolean enabled = true;
- private int CTRL_STATE_MASK = SWT.CTRL;
-
- private static int KEY_1 = 49;
- private static int KEY_2 = 50;
- private static int KEY_3 = 51;
- private static int KEY_4 = 52;
- private static int KEY_5 = 53;
- private static int KEY_6 = 54;
- private static int KEY_7 = 55;
- private static int KEY_8 = 56;
- private static int KEY_9 = 57;
public static String START_TRACE = null;
public static String STOP_TRACE = null;
return instance;
}
- private ShortCutManager() {
- if (AnalyzerUtil.isMac()) {
- CTRL_STATE_MASK = SWT.COMMAND;
- }
- }
-
- // for normal listener
- public void handleShortCutEvent(Event event) {
- if (!enabled) {
- return;
- }
- if (event.keyCode == SWT.F1) {
- System.out.println("about");
- Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
- AboutDialog dialog = new AboutDialog(shell); // FIXME
- dialog.open();
- } else if (event.keyCode == SWT.F2) {
- System.out.println("configuration");
- Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
- ConfigurationDialog dialog = new ConfigurationDialog(shell); // FIXME
- dialog.open();
- } else if (event.keyCode == SWT.F3) {
- System.out.println("view source toggle");
- DACustomToggleButton button = (DACustomToggleButton) ToolbarArea
- .getInstance().getButton(ToolbarArea.SOURCE_BUTTON);
- button.setToggled(!button.isToggled());
- }
- // ctrl + number 1 ~ 6 page
- else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_1) {
- System.out.println("timeline page");
- AnalyzerUtil.changePage(TimelinePage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_4) {
- System.out.println("file page");
- AnalyzerUtil.changePage(FilePage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_3) {
- System.out.println("NetworkPage page");
- AnalyzerUtil.changePage(NetworkPage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_2) {
- System.out.println("thread page");
- AnalyzerUtil.changePage(ThreadPage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_6) {
- System.out.println("ui page");
- AnalyzerUtil.changePage(UIPage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_5) {
- System.out.println("Graphics page");
- AnalyzerUtil.changePage(GLPage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_7) {
- System.out.println("Kernel page");
- AnalyzerUtil.changePage(KernelPage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_8) {
- System.out.println("summary page");
- AnalyzerUtil.changePage(SummaryPage.ID);
- } else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == KEY_9) {
- System.out.println("range page");
- AnalyzerUtil.changePage(RangePage.ID);
- }
- // ctrl + t = 116
- // 103 -> g
- else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == 103) {
- if (!AnalyzerManager.isRunning()) {
- System.out.println("start trace");
- enabled = false;
- System.out.println("start trace start");
- ToolbarArea.getInstance().startTrace();
- System.out.println("start trace end");
- } else {
- System.out.println("stop trace");
- enabled = false;
- ToolbarArea.getInstance().stopTrace();
- }
- }
- // o
- else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == 111) {
- System.out.println("open trace");
- if (!AnalyzerManager.isRunning()) {
- Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
- OpenTraceDialog dialog = new OpenTraceDialog(shell);
- dialog.open();
- }
- }
- // s
- else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == 115) {
- System.out.println("save trace");
- if (ToolbarArea.getInstance().getButton(ToolbarArea.SAVE_BUTTON)
- .isButtonEnabled()) {
- Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
- SaveAsDialog dialog = new SaveAsDialog(shell);
- Object result = dialog.open();
- if (result != null) {
- ToolbarArea.getInstance()
- .getButton(ToolbarArea.SAVE_BUTTON)
- .setButtonEnabled(false);
- }
- }
- }
- // p
- else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == 112) {
- System.out.println("replay ");
- if (!AnalyzerManager.isRunning()) {
- DACustomButton button = (DACustomButton) ToolbarArea
- .getInstance().getButton(ToolbarArea.REPLAY_BUTTON);
- if (button.isButtonEnabled()) {
- if (AnalyzerUtil.executeCommand(ReplayTraceHandler.ID) == AnalyzerConstants.SUCCESS) {
- ToolbarArea.getInstance().startTrace();
- }
- }
- }
- }
- // r
- else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == 114) {
- System.out.println("range ");
- if (RangeDataManager.getInstance().isBeingAnalyzed()) {
- RangeDataManager.getInstance().initRange();
- } else {
- if (RangeDataManager.getInstance().isAnalyzable()) {
- RangeDataManager.getInstance().startRangeAnalysis();
- }
- }
- }
- // e
- else if (event.stateMask == CTRL_STATE_MASK && event.keyCode == 101) {
- System.out.println("replay Edit");
- if (!AnalyzerManager.isRunning()) {
- Shell shell = AnalyzerUtil.getWorkbenchWindow().getShell();
- ReplayEditDialog dialog = new ReplayEditDialog(shell);
- dialog.open();
- }
- }
- }
-
public void setEnabled(boolean enabled) {
this.enabled = enabled;
if (enabled) {
});
}
}
+
+
+ public boolean isEnabled() {
+ return enabled;
+ }
}