From 1aec2e929f788ee0cb100c5448f0488d11164982 Mon Sep 17 00:00:00 2001 From: Bernd Hufmann Date: Fri, 14 Mar 2014 07:22:19 -0400 Subject: [PATCH] tmf: remove open trace directory and use open trace file instead For directory traces like CTF the user has to select one of the files of the directory trace. The open procedure will first verify that the parent directory is a valid directory trace. If yes, then it will be opened with the corresponding trace type. To cover the index file of CTF which is in a subdirectory of the trace directory, also the grandparent directory of the selected file will be checked for a directory trace type. If neither parent or grandparent directory is a valid directory the file will be imported as before. Change-Id: Id6b4d8b177875b5c018cbbed82816f3ba52b067a Signed-off-by: Bernd Hufmann Reviewed-on: https://git.eclipse.org/r/23386 Tested-by: Hudson CI Reviewed-by: Genevieve Bastien Tested-by: Genevieve Bastien Reviewed-by: Bernd Hufmann Tested-by: Bernd Hufmann --- .../doc/User-Guide.mediawiki | 6 +- .../doc/images/OpenTraceFile.png | Bin 27564 -> 8068 bytes .../doc/images/ProjectImportTraceAction.png | Bin 27652 -> 8037 bytes .../images/importImages/importBatchImport.png | Bin 28582 -> 7999 bytes .../plugin.properties | 4 +- org.eclipse.linuxtools.tmf.ui/plugin.xml | 27 --------- .../tmf/ui/commands/OpenDirHandler.java | 53 ------------------ .../tmf/ui/commands/OpenFileHandler.java | 29 +++++++++- .../ui/project/model/TmfOpenTraceHelper.java | 44 +++++++++++++-- .../doc/User-Guide.mediawiki | 12 ++-- .../plugin.properties | 3 +- .../plugin.xml | 5 -- 12 files changed, 78 insertions(+), 105 deletions(-) delete mode 100644 org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenDirHandler.java diff --git a/org.eclipse.linuxtools.lttng.help/doc/User-Guide.mediawiki b/org.eclipse.linuxtools.lttng.help/doc/User-Guide.mediawiki index d5e2ef1f5a..c2709581d1 100644 --- a/org.eclipse.linuxtools.lttng.help/doc/User-Guide.mediawiki +++ b/org.eclipse.linuxtools.lttng.help/doc/User-Guide.mediawiki @@ -190,13 +190,13 @@ Tracing projects have two sub-folders: '''Traces''' which holds the individual t The '''Traces''' folder holds the set of traces available for a tracing project. The following chapters will explain different ways to import traces to the '''Traces''' folder of a tracing project. -==== Open Trace File, Open Trace Directory ==== +==== Opening a Trace ==== -To open a single trace, right-click on the '''Traces''' folder and select '''Open Trace File...''' (for single trace files) or '''Open Trace directory...''' (for directory traces such as Common Trace Format (CTF) traces). +To open a trace, right-click on the '''Traces''' folder and and select '''Open Trace...'''. [[Image:images/OpenTraceFile.png]] -A new dialog will show for selecting a trace to open. Select a trace file or directory and then click on '''OK'''. Now, the trace viewer will attempt to detect the trace types of the selected trace. The auto detection algorithm will validate the trace against all known trace types. If multiple trace types are valid, a trace type is chosen based on a confidence criteria. The validation process and the computation of the confidence level are trace type specific. After successful validation the trace will be linked into the '''Traces''' folder and then opened with the detected trace type. +A new dialog will show for selecting a trace to open. Select a trace file and then click on '''OK'''. Note that for traces that are directories (such as Common Trace Format (CTF) traces) any file in the trace directory can be selected to open the trace. Now, the trace viewer will attempt to detect the trace types of the selected trace. The auto detection algorithm will validate the trace against all known trace types. If multiple trace types are valid, a trace type is chosen based on a confidence criteria. The validation process and the computation of the confidence level are trace type specific. After successful validation the trace will be linked into the '''Traces''' folder and then opened with the detected trace type. Note that a trace type is an extension point of the '''Tracing and Monitoring Framework (TMF)'''. Depending on the which features are loaded, the list of available trace types can vary. diff --git a/org.eclipse.linuxtools.lttng.help/doc/images/OpenTraceFile.png b/org.eclipse.linuxtools.lttng.help/doc/images/OpenTraceFile.png index aee62137275bbe32579ea10daad106d470fb0811..15df2ec0aca81f62035ecfdf4c91bedc3718d24b 100644 GIT binary patch literal 8068 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 diff --git a/org.eclipse.linuxtools.lttng.help/doc/images/importImages/importBatchImport.png b/org.eclipse.linuxtools.lttng.help/doc/images/importImages/importBatchImport.png index 0bb653c3fe0585be66d31619ebba9c3b640be94a..5a2ef1a7b6697a2f9c62c5a3ddd226e9ec00076f 100644 GIT binary patch literal 7999 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 aEN*I#5!sPj2y{<97 - - - - - - - - - - - - - - diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenDirHandler.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenDirHandler.java deleted file mode 100644 index 0c816df8c0..0000000000 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenDirHandler.java +++ /dev/null @@ -1,53 +0,0 @@ -/********************************************************************** - * Copyright (c) 2013, 2014 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: - * Matthew Khouzam - Initial API and implementation - * Patrick Tasse - Add support for folder elements - **********************************************************************/ - -package org.eclipse.linuxtools.internal.tmf.ui.commands; - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.linuxtools.internal.tmf.ui.Activator; -import org.eclipse.linuxtools.tmf.ui.project.model.TmfOpenTraceHelper; -import org.eclipse.linuxtools.tmf.ui.project.model.TmfTraceFolder; -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 - * - * @author Matthew Khouzam - */ -public class OpenDirHandler extends AbstractHandler{ - - @Override - public Object execute(ExecutionEvent event) { - // Open a directory - final Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); - DirectoryDialog dd = new DirectoryDialog(shell); - dd.setText(Messages.OpenDirHandler_SelectTraceDirectory); - String dirPath = dd.open(); - if (dirPath == null) { - return null; - } - - try { - TmfTraceFolder destinationFolder = TmfHandlerUtil.getTraceFolderFromSelection(HandlerUtil.getCurrentSelection(event)); - TmfOpenTraceHelper.openTraceFromPath(destinationFolder, dirPath, shell); - } catch (CoreException 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/OpenFileHandler.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenFileHandler.java index acd99e7f5b..456dd6bbbb 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenFileHandler.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/internal/tmf/ui/commands/OpenFileHandler.java @@ -15,9 +15,16 @@ 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.core.runtime.NullProgressMonitor; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; 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.linuxtools.tmf.ui.project.model.TmfProjectElement; +import org.eclipse.linuxtools.tmf.ui.project.model.TmfProjectRegistry; import org.eclipse.linuxtools.tmf.ui.project.model.TmfTraceFolder; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Shell; @@ -33,6 +40,12 @@ public class OpenFileHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) { + + ISelection currentSelection = HandlerUtil.getCurrentSelection(event); + // Menu Selection is not null for context-sensitive menu + ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event); + + // Get trace path final Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); FileDialog fd = new FileDialog(shell); fd.setText(Messages.OpenFileHandler_SelectTraceFile); @@ -42,7 +55,21 @@ public class OpenFileHandler extends AbstractHandler { } try { - TmfTraceFolder destinationFolder = TmfHandlerUtil.getTraceFolderFromSelection(HandlerUtil.getCurrentSelection(event)); + + TmfTraceFolder destinationFolder; + + if ((menuSelection != null) && (currentSelection instanceof IStructuredSelection)) { + // If handler is called from the context sensitive menu of a tracing project import to + // the traces folder from this project + destinationFolder = TmfHandlerUtil.getTraceFolderFromSelection(currentSelection); + } else { + // If handler is called from file menu import into default tracing project + IProject project = TmfProjectRegistry.createProject( + TmfCommonConstants.DEFAULT_TRACE_PROJECT_NAME, null, new NullProgressMonitor()); + TmfProjectElement projectElement = TmfProjectRegistry.getProject(project, true); + destinationFolder = projectElement.getTracesFolder(); + } + TmfOpenTraceHelper.openTraceFromPath(destinationFolder, filePath, shell); } catch (CoreException e) { Activator.getDefault().logError(e.getMessage(), e); diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/project/model/TmfOpenTraceHelper.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/project/model/TmfOpenTraceHelper.java index fe1e070ac8..6d431c667f 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/project/model/TmfOpenTraceHelper.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/project/model/TmfOpenTraceHelper.java @@ -10,6 +10,7 @@ * Matthew Khouzam - Initial API and implementation * Patrick Tasse - Update open trace and add open experiment * Geneviève Bastien - Merge methods to open trace and experiments + * Bernd Hufmann - Updated handling of directory traces **********************************************************************/ package org.eclipse.linuxtools.tmf.ui.project.model; @@ -32,6 +33,7 @@ import org.eclipse.linuxtools.tmf.core.TmfCommonConstants; import org.eclipse.linuxtools.tmf.core.event.ITmfEvent; import org.eclipse.linuxtools.tmf.core.exceptions.TmfTraceException; import org.eclipse.linuxtools.tmf.core.project.model.TmfTraceImportException; +import org.eclipse.linuxtools.tmf.core.project.model.TmfTraceType; import org.eclipse.linuxtools.tmf.core.project.model.TraceTypeHelper; import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; import org.eclipse.linuxtools.tmf.core.trace.TmfExperiment; @@ -108,21 +110,23 @@ public class TmfOpenTraceHelper { * @since 3.0 */ public static IStatus openTraceFromPath(TmfTraceFolder destinationFolder, String path, Shell shell, String tracetypeHint) throws CoreException { + final String pathToUse = checkTracePath(path); TraceTypeHelper traceTypeToSet = null; try { - traceTypeToSet = TmfTraceTypeUIUtils.selectTraceType(path, null, tracetypeHint); + traceTypeToSet = TmfTraceTypeUIUtils.selectTraceType(pathToUse, null, tracetypeHint); } catch (TmfTraceImportException e) { MessageBox mb = new MessageBox(shell); mb.setMessage(e.getMessage()); mb.open(); return new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage()); } + IFolder folder = destinationFolder.getResource(); - String traceName = getTraceName(path, folder); - if (traceExists(path, folder)) { + String traceName = getTraceName(pathToUse, folder); + if (traceExists(pathToUse, folder)) { return openTraceFromFolder(destinationFolder, traceName); } - final IPath pathString = Path.fromOSString(path); + final IPath pathString = Path.fromOSString(pathToUse); IResource linkedTrace = TmfImportHelper.createLink(folder, pathString, traceName); if (linkedTrace == null || !linkedTrace.exists()) { @@ -130,7 +134,7 @@ public class TmfOpenTraceHelper { Messages.TmfOpenTraceHelper_LinkFailed); } - String sourceLocation = URIUtil.toUnencodedString(new File(path).toURI()); + String sourceLocation = URIUtil.toUnencodedString(pathString.toFile().toURI()); linkedTrace.setPersistentProperty(TmfCommonConstants.SOURCE_LOCATION, sourceLocation); // No trace type was determined. @@ -145,6 +149,36 @@ public class TmfOpenTraceHelper { return ret; } + /** + * Checks whether the parent or grandparent of given path to a file is a + * valid directory trace. If it is a directory trace then return the parent + * or grandparent path. + * + * @param path + * the path to check + * @return path to use for trace type validation. + */ + private static String checkTracePath(String path) { + File file = new File(path); + if (file.exists() && !file.isDirectory()) { + // First check parent + File parent = file.getParentFile(); + String pathToUse = parent.getAbsolutePath(); + if (TmfTraceType.getInstance().isDirectoryTrace(pathToUse)) { + return pathToUse; + } + // Second check grandparent + File grandParent = parent.getParentFile(); + if (grandParent != null) { + pathToUse = grandParent.getAbsolutePath(); + if (TmfTraceType.getInstance().isDirectoryTrace(pathToUse)) { + return pathToUse; + } + } + } + return path; + } + private static boolean traceExists(String path, IFolder folder) { String val = getTraceName(path, folder); return (folder.findMember(val) != null); diff --git a/org.eclipse.linuxtools.tracing.rcp.help/doc/User-Guide.mediawiki b/org.eclipse.linuxtools.tracing.rcp.help/doc/User-Guide.mediawiki index e76d689a86..35dcb41bf7 100644 --- a/org.eclipse.linuxtools.tracing.rcp.help/doc/User-Guide.mediawiki +++ b/org.eclipse.linuxtools.tracing.rcp.help/doc/User-Guide.mediawiki @@ -17,12 +17,12 @@ Now the application can be used as described in the User Guide for Linux Tools LTTng integration (see section [[#References | References]]). = Opening a Trace = -To open a trace, click on the '''File''' menu and select '''Open Trace File...''' -(for single trace files) or '''Open Trace Directory...''' (for directory -traces such as Common Trace Format (CTF) traces). A new dialog will show -for selecting a trace to open. Select a trace file or directory and then -click on '''OK'''. Now, the trace viewer's auto detection algorithm will -validate the trace against all known trace types. If multiple trace types +To open a trace, click on the '''File''' menu and select '''Open Trace...'''. +A new dialog will show for selecting a trace to open. Select a trace file +and then click on '''OK'''. Note that for traces that are directories +(such as Common Trace Format (CTF) traces) any file in the trace directory can +be selected to open the trace. Now, the trace viewer's auto detection algorithm +will validate the trace against all known trace types. If multiple trace types are valid, a trace type is chosen based on a confidence criteria. The validation process and the computation of the confidence level are trace type specific. After successful validation the trace will be opened with the diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties index 626a6eca9f..f1e4ef3495 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties +++ b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.properties @@ -32,8 +32,7 @@ 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.label = Open Trace File... -command.OpenDirectory.label = Open Trace Directory... +command.OpenFile.label = Open Trace... command.import = Import... command.batch_import = Batch Import... menu.mnemonic = F diff --git a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml index 794f48f65a..c870c780fe 100644 --- a/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml +++ b/org.eclipse.linuxtools.tracing.rcp.ui/plugin.xml @@ -43,11 +43,6 @@ label="%command.OpenFile.label" style="push"> - - -- 2.34.1