diff options
author | Marc-Andre Laperle | 2015-01-27 00:30:53 +0000 |
---|---|---|
committer | Marc-Andre Laperle | 2015-01-28 20:43:07 +0000 |
commit | 58ffe0790a0327c0b6d58b026fafeae8fbd7abc8 (patch) | |
tree | 2c25b0601038ce670a83c3bdd4ff527a3cdc4c20 /org.eclipse.tracecompass.tmf.ui | |
parent | c9151600aa015195fefc6588d56b46c4cd90a569 (diff) | |
download | org.eclipse.tracecompass-58ffe0790a0327c0b6d58b026fafeae8fbd7abc8.tar.gz org.eclipse.tracecompass-58ffe0790a0327c0b6d58b026fafeae8fbd7abc8.tar.xz org.eclipse.tracecompass-58ffe0790a0327c0b6d58b026fafeae8fbd7abc8.zip |
Bug 448502 - Problem opening experiments and CTF traces after restart
Change-Id: I5ff2aaf0335626eef1f1fc60b22737eb7f974d59
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/40414
Reviewed-by: Hudson CI
Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com>
Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
Diffstat (limited to 'org.eclipse.tracecompass.tmf.ui')
5 files changed, 54 insertions, 14 deletions
diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/editors/ITmfEventsEditorConstants.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/editors/ITmfEventsEditorConstants.java new file mode 100644 index 0000000000..3ad68c9394 --- /dev/null +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/editors/ITmfEventsEditorConstants.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2015 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.tracecompass.internal.tmf.ui.editors; + + +/** + * Constants for the TMF UI components + * + * @noimplement + */ +public interface ITmfEventsEditorConstants { + /** + * The trace editor input type. + */ + String TRACE_EDITOR_INPUT_TYPE = "editorInputType.trace"; //$NON-NLS-1$ + + /** + * The trace editor input type. + */ + String EXPERIMENT_EDITOR_INPUT_TYPE = "editorInputType.experiment"; //$NON-NLS-1$ +} diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/editors/TmfEventsEditor.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/editors/TmfEventsEditor.java index 5d40407023..a2c284a723 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/editors/TmfEventsEditor.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/editors/TmfEventsEditor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2014 Ericsson, École Polytechnique de Montréal + * Copyright (c) 2010, 2015 Ericsson, École Polytechnique de Montréal * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -41,6 +41,7 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.tracecompass.internal.tmf.ui.Activator; +import org.eclipse.tracecompass.internal.tmf.ui.editors.ITmfEventsEditorConstants; import org.eclipse.tracecompass.tmf.core.TmfCommonConstants; import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect; import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler; @@ -50,7 +51,6 @@ import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal; import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal; import org.eclipse.tracecompass.tmf.core.trace.ITmfContext; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; -import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment; import org.eclipse.tracecompass.tmf.ui.project.model.Messages; import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement; @@ -88,6 +88,15 @@ public class TmfEventsEditor extends TmfEditor implements ITmfTraceEditor, IReus /** ID for this class */ public static final String ID = "org.eclipse.linuxtools.tmf.ui.editors.events"; //$NON-NLS-1$ + /** + * Expected editor input type constants for a resource (trace or + * experiment). Some constants are there to make it possible to reopen + * traces that were opened using Linux Tools and early Trace Compass + * versions. + */ + private static final ImmutableSet<String> traceInputTypeConstants = ImmutableSet.of(ITmfEventsEditorConstants.TRACE_EDITOR_INPUT_TYPE, "org.eclipse.linuxtools.tmf.core.trace.TmfTrace", "org.eclipse.tracecompass.tmf.core.trace.TmfTrace"); //$NON-NLS-1$//$NON-NLS-2$ + private static final ImmutableSet<String> experimentInputTypeConstants = ImmutableSet.of(ITmfEventsEditorConstants.EXPERIMENT_EDITOR_INPUT_TYPE, "org.eclipse.linuxtools.tmf.core.trace.TmfExperiment", "org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment"); //$NON-NLS-1$ //$NON-NLS-2$ + private TmfEventsTable fEventsTable; private IFile fFile; private ITmfTrace fTrace; @@ -123,7 +132,7 @@ public class TmfEventsEditor extends TmfEditor implements ITmfTraceEditor, IReus if (traceTypeId == null) { throw new PartInitException(Messages.TmfOpenTraceHelper_NoTraceType); } - if (traceTypeId.equals(TmfExperiment.class.getCanonicalName())) { + if (experimentInputTypeConstants.contains(traceTypeId)) { // Special case: experiment bookmark resource final TmfProjectElement project = TmfProjectRegistry.getProject(fFile.getProject(), true); if (project == null) { @@ -138,7 +147,7 @@ public class TmfEventsEditor extends TmfEditor implements ITmfTraceEditor, IReus return; } } - } else if (traceTypeId.equals(TmfTrace.class.getCanonicalName())) { + } else if (traceInputTypeConstants.contains(traceTypeId)) { // Special case: trace bookmark resource final TmfProjectElement project = TmfProjectRegistry.getProject(fFile.getProject(), true); for (final TmfTraceElement traceElement : project.getTracesFolder().getTraces()) { diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfCommonProjectElement.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfCommonProjectElement.java index 1b797a5412..48ba368449 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfCommonProjectElement.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfCommonProjectElement.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2014 Ericsson, École Polytechnique de Montréal + * Copyright (c) 2010, 2015 Ericsson, École Polytechnique de Montréal * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -253,13 +253,13 @@ public abstract class TmfCommonProjectElement extends TmfProjectModelElement { * * @param bookmarksFolder * Folder where to put the bookmark file - * @param traceType - * The canonical name to set as tracetype + * @param editorInputType + * The editor input type to set (trace or experiment) * @return The bookmark file * @throws CoreException * if the bookmarks file cannot be created */ - protected IFile createBookmarksFile(IFolder bookmarksFolder, String traceType) throws CoreException { + protected IFile createBookmarksFile(IFolder bookmarksFolder, String editorInputType) throws CoreException { IFile file = getBookmarksFile(); if (!file.exists()) { final IFile bookmarksFile = bookmarksFolder.getFile(BOOKMARKS_HIDDEN_FILE); @@ -270,7 +270,7 @@ public abstract class TmfCommonProjectElement extends TmfProjectModelElement { bookmarksFile.setHidden(true); file.createLink(bookmarksFile.getLocation(), IResource.REPLACE, null); file.setHidden(true); - file.setPersistentProperty(TmfCommonConstants.TRACETYPE, traceType); + file.setPersistentProperty(TmfCommonConstants.TRACETYPE, editorInputType); } return file; } diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfExperimentElement.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfExperimentElement.java index a744202c08..4928d309a5 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfExperimentElement.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfExperimentElement.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2014 Ericsson, École Polytechnique de Montréal + * Copyright (c) 2010, 2015 Ericsson, École Polytechnique de Montréal * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -38,6 +38,7 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.osgi.util.NLS; import org.eclipse.tracecompass.internal.tmf.ui.Activator; +import org.eclipse.tracecompass.internal.tmf.ui.editors.ITmfEventsEditorConstants; import org.eclipse.tracecompass.tmf.core.TmfCommonConstants; import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType; import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper; @@ -332,7 +333,7 @@ public class TmfExperimentElement extends TmfCommonProjectElement implements IPr @Override public IFile createBookmarksFile() throws CoreException { - return createBookmarksFile(getProject().getExperimentsFolder().getResource(), TmfExperiment.class.getCanonicalName()); + return createBookmarksFile(getProject().getExperimentsFolder().getResource(), ITmfEventsEditorConstants.EXPERIMENT_EDITOR_INPUT_TYPE); } @Override diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java index 00180c9fe9..4de73ea566 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfTraceElement.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2014 Ericsson, École Polytechnique de Montréal + * Copyright (c) 2010, 2015 Ericsson, École Polytechnique de Montréal * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -40,6 +40,7 @@ import org.eclipse.core.runtime.URIUtil; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Display; import org.eclipse.tracecompass.internal.tmf.ui.Activator; +import org.eclipse.tracecompass.internal.tmf.ui.editors.ITmfEventsEditorConstants; import org.eclipse.tracecompass.tmf.core.TmfCommonConstants; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomTxtEvent; @@ -54,7 +55,6 @@ import org.eclipse.tracecompass.tmf.core.synchronization.TimestampTransformFacto import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestampFormat; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.ITmfTraceProperties; -import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; import org.eclipse.tracecompass.tmf.ui.editors.TmfEventsEditor; import org.eclipse.tracecompass.tmf.ui.properties.ReadOnlyTextPropertyDescriptor; @@ -342,7 +342,7 @@ public class TmfTraceElement extends TmfCommonProjectElement implements IActionF public IFile createBookmarksFile() throws CoreException { IFile file = getBookmarksFile(); if (fResource instanceof IFolder) { - return createBookmarksFile(getProject().getTracesFolder().getResource(), TmfTrace.class.getCanonicalName()); + return createBookmarksFile(getProject().getTracesFolder().getResource(), ITmfEventsEditorConstants.TRACE_EDITOR_INPUT_TYPE); } return file; } |