From c0c7c656988f9f94b4aa011827cdd2a7afc430ca Mon Sep 17 00:00:00 2001 From: Marc-Andre Laperle Date: Thu, 21 Nov 2013 15:08:53 -0500 Subject: [PATCH] tmf: Add Open Trace file, directory under Traces folder Change-Id: I4acb8121c8cb2915117f1bf5a501bc246a93877d Signed-off-by: Marc-Andre Laperle Reviewed-on: https://git.eclipse.org/r/18695 Tested-by: Hudson CI --- .../plugin.properties | 7 +++ org.eclipse.linuxtools.tmf.ui/plugin.xml | 54 +++++++++++++++++++ .../internal/tmf/ui/commands/Messages.java | 37 +++++++++++++ .../tmf}/ui/commands/OpenDirHandler.java | 15 +++--- .../tmf}/ui/commands/OpenFileHandler.java | 14 +++-- .../tmf/ui/commands/TmfHandlerUtil.java | 48 +++++++++++++++++ .../tmf/ui/commands/messages.properties | 14 +++++ .../META-INF/MANIFEST.MF | 1 - .../plugin.properties | 4 -- .../plugin.xml | 22 +------- .../tracing/rcp/ui/messages/Messages.java | 4 -- .../rcp/ui/messages/messages.properties | 2 - 12 files changed, 180 insertions(+), 42 deletions(-) create mode 100644 org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/Messages.java rename {org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp => org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf}/ui/commands/OpenDirHandler.java (70%) rename {org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp => org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf}/ui/commands/OpenFileHandler.java (73%) create mode 100644 org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/TmfHandlerUtil.java create mode 100644 org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/messages.properties diff --git a/org.eclipse.linuxtools.tmf.ui/plugin.properties b/org.eclipse.linuxtools.tmf.ui/plugin.properties index ef4aea26d1..9610bfa1e2 100644 --- a/org.eclipse.linuxtools.tmf.ui/plugin.properties +++ b/org.eclipse.linuxtools.tmf.ui/plugin.properties @@ -107,6 +107,13 @@ command.synchronize_traces.description = Synchronize 2 or more traces ## Trace folder menu # Import, Refresh +command.OpenFile.description = Opens a file +command.OpenFile.name = Open File +command.OpenDirectory.description = Opens a directory +command.OpenDirectory.name = Open Directory +command.OpenFile.label = Open Trace File... +command.OpenDirectory.label = Open Trace Directory... + command.batch_import = Batch Import... command.batch_import.mnemonic = A command.batch_import.description = Batch Import traces into project diff --git a/org.eclipse.linuxtools.tmf.ui/plugin.xml b/org.eclipse.linuxtools.tmf.ui/plugin.xml index 9403911c8a..c2cda58c17 100644 --- a/org.eclipse.linuxtools.tmf.ui/plugin.xml +++ b/org.eclipse.linuxtools.tmf.ui/plugin.xml @@ -335,6 +335,46 @@ point="org.eclipse.ui.menus"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/Messages.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/Messages.java new file mode 100644 index 0000000000..d8d5d4ada3 --- /dev/null +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/Messages.java @@ -0,0 +1,37 @@ +/********************************************************************** + * Copyright (c) 2013 Ericsson + * + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Marc-Andre Laperle - Initial API and implementation + **********************************************************************/ + +package org.eclipse.linuxtools.internal.tmf.ui.commands; + +import org.eclipse.osgi.util.NLS; + +/** + * Messages for commands + * + * @author Marc-Andre Laperle + */ +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.eclipse.linuxtools.internal.tmf.ui.commands.messages"; //$NON-NLS-1$ + + /** Select trace directory */ + public static String OpenDirHandler_SelectTraceDirectory; + /** Select trace file */ + public static String OpenFileHandler_SelectTraceFile; + + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/commands/OpenDirHandler.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenDirHandler.java similarity index 70% rename from org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/commands/OpenDirHandler.java rename to org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenDirHandler.java index f0cf67939d..14a87e6be2 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/commands/OpenDirHandler.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenDirHandler.java @@ -10,18 +10,19 @@ * Matthew Khouzam - Initial API and implementation **********************************************************************/ -package org.eclipse.linuxtools.internal.tracing.rcp.ui.commands; +package org.eclipse.linuxtools.internal.tmf.ui.commands; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; -import org.eclipse.linuxtools.internal.tracing.rcp.ui.TracingRcpPlugin; -import org.eclipse.linuxtools.internal.tracing.rcp.ui.messages.Messages; +import org.eclipse.linuxtools.internal.tmf.ui.Activator; import org.eclipse.linuxtools.tmf.core.TmfCommonConstants; import org.eclipse.linuxtools.tmf.ui.project.model.TmfOpenTraceHelper; import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.handlers.HandlerUtil; /** * Open a directory, not a file @@ -35,16 +36,18 @@ public class OpenDirHandler extends AbstractHandler{ // Open a directory final Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); DirectoryDialog dd = new DirectoryDialog(shell); - dd.setText(Messages.OpenDirHandler_SelectTraceType); + dd.setText(Messages.OpenDirHandler_SelectTraceDirectory); String dir = dd.open(); if (dir == null) { return null; } TmfOpenTraceHelper oth = new TmfOpenTraceHelper(); try { - oth.openTraceFromPath(TmfCommonConstants.DEFAULT_TRACE_PROJECT_NAME, dir, shell); + IProject project = TmfHandlerUtil.getProjectFromSelection(HandlerUtil.getCurrentSelection(event)); + String projectName = project != null ? project.getName() : TmfCommonConstants.DEFAULT_TRACE_PROJECT_NAME; + oth.openTraceFromPath(projectName, dir, shell); } catch (CoreException e) { - TracingRcpPlugin.getDefault().logError(e.getMessage(), e); + Activator.getDefault().logError(e.getMessage(), e); } return null; } diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/commands/OpenFileHandler.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenFileHandler.java similarity index 73% rename from org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/commands/OpenFileHandler.java rename to org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenFileHandler.java index fb781680e3..df4c24048a 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/commands/OpenFileHandler.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenFileHandler.java @@ -10,18 +10,19 @@ * Matthew Khouzam - Initial API and implementation **********************************************************************/ -package org.eclipse.linuxtools.internal.tracing.rcp.ui.commands; +package org.eclipse.linuxtools.internal.tmf.ui.commands; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; -import org.eclipse.linuxtools.internal.tracing.rcp.ui.TracingRcpPlugin; -import org.eclipse.linuxtools.internal.tracing.rcp.ui.messages.Messages; +import org.eclipse.linuxtools.internal.tmf.ui.Activator; import org.eclipse.linuxtools.tmf.core.TmfCommonConstants; import org.eclipse.linuxtools.tmf.ui.project.model.TmfOpenTraceHelper; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.handlers.HandlerUtil; /** * Open file handler, used to open files (not directories) @@ -39,11 +40,14 @@ public class OpenFileHandler extends AbstractHandler { if (filePath == null) { return null; } + TmfOpenTraceHelper oth = new TmfOpenTraceHelper(); try { - oth.openTraceFromPath(TmfCommonConstants.DEFAULT_TRACE_PROJECT_NAME, filePath, shell); + IProject project = TmfHandlerUtil.getProjectFromSelection(HandlerUtil.getCurrentSelection(event)); + String projectName = project != null ? project.getName() : TmfCommonConstants.DEFAULT_TRACE_PROJECT_NAME; + oth.openTraceFromPath(projectName, filePath, shell); } catch (CoreException e) { - TracingRcpPlugin.getDefault().logError(e.getMessage(), e); + Activator.getDefault().logError(e.getMessage(), e); } return null; } diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/TmfHandlerUtil.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/TmfHandlerUtil.java new file mode 100644 index 0000000000..cdc5a00b03 --- /dev/null +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/TmfHandlerUtil.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright (c) 2013 Ericsson + * + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Marc-Andre Laperle - Initial API and implementation + *******************************************************************************/ + +package org.eclipse.linuxtools.internal.tmf.ui.commands; + +import org.eclipse.core.resources.IProject; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.linuxtools.tmf.ui.project.model.ITmfProjectModelElement; + +/** + * Utility methods for handlers + * + * @author Marc-Andre Laperle + */ +public class TmfHandlerUtil { + + /** + * Get the enclosing project from the selection + * + * @param selection + * the selection + * + * @return the enclosing project or null if selection is no enclosed by a + * project + */ + public static IProject getProjectFromSelection(ISelection selection) { + if (selection instanceof IStructuredSelection) { + IStructuredSelection structuredSelection = (IStructuredSelection) selection; + Object firstElement = structuredSelection.getFirstElement(); + if (firstElement instanceof ITmfProjectModelElement) { + ITmfProjectModelElement tmfProjectElement = (ITmfProjectModelElement) firstElement; + return tmfProjectElement.getProject().getResource(); + } + } + + return null; + } +} diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/messages.properties b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/messages.properties new file mode 100644 index 0000000000..911dd9d6eb --- /dev/null +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/messages.properties @@ -0,0 +1,14 @@ +############################################################################### +# Copyright (c) 2013 Ericsson. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Marc-Andre Laperle - initial API and implementation +############################################################################### + +OpenDirHandler_SelectTraceDirectory=Open trace directory +OpenFileHandler_SelectTraceFile=Open trace file \ No newline at end of file diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/META-INF/MANIFEST.MF b/org.eclipse.linuxtools.tracing.rcp.ui/META-INF/MANIFEST.MF index a3b714d3b7..557cabea44 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.linuxtools.tracing.rcp.ui/META-INF/MANIFEST.MF @@ -20,5 +20,4 @@ Require-Bundle: org.eclipse.core.commands, org.eclipse.equinox.p2.ui.sdk Export-Package: org.eclipse.linuxtools.internal.tracing.rcp.ui;x-internal:=true, org.eclipse.linuxtools.internal.tracing.rcp.ui.cli;x-internal:=true, - org.eclipse.linuxtools.internal.tracing.rcp.ui.commands;x-internal:=true, org.eclipse.linuxtools.internal.tracing.rcp.ui.messages;x-internal:=true diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties index 5e8145fa0b..7b1d46cd09 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties +++ b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties @@ -32,10 +32,6 @@ activity.description.resourcePerspective = (Unwanted) Resource Perspective activity.name.resourcePerspective = Unwanted Resource Perspective activity.description.search = (Unwanted) Search Perspective activity.name.search = Unwanted Search Perspective -command.OpenFile.description = Opens a file -command.OpenFile.name = Open File -command.OpenDirectory.description = Opens a directory -command.OpenDirectory.name = Open Directory command.OpenFile.label = Open Trace File... command.OpenDirectory.label = Open Trace Directory... command.batch_import = Batch Import... diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml index abf3cc2d77..f3fb0f7433 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml +++ b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml @@ -10,24 +10,6 @@ - - - - - - - @@ -57,12 +39,12 @@ label="%menu.main.file" mnemonic="%menu.mnemonic"> diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/Messages.java b/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/Messages.java index 4cb958bee8..bb6b25d0d0 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/Messages.java +++ b/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/Messages.java @@ -31,10 +31,6 @@ public class Messages extends NLS { public static String CliParser_MalformedCommand; /** Unkown command */ public static String CliParser_UnknownCommand; - /** Select trace type title */ - public static String OpenDirHandler_SelectTraceType; - /** Select trace file */ - public static String OpenFileHandler_SelectTraceFile; static { // initialize resource bundle diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/messages.properties b/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/messages.properties index 6c04a1fc41..343ebaf983 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/messages.properties +++ b/org.eclipse.linuxtools.tracing.rcp.ui/src/org/eclipse/linuxtools/internal/tracing/rcp/ui/messages/messages.properties @@ -14,5 +14,3 @@ Application_WorkspaceRootNotExistError=Workspace root {0} doesn't exists.\n\nPle Application_WorkspaceRootPermissionError=No permission to create workspace in workspace root {0}\n\nPlease change permission of the workspace root. CliParser_MalformedCommand=malformed command CliParser_UnknownCommand=unknown command -OpenDirHandler_SelectTraceType=Open trace directory -OpenFileHandler_SelectTraceFile=Open trace file \ No newline at end of file -- 2.34.1