From 3d04a31445dd219f646c1387c461e0b7e81becbd Mon Sep 17 00:00:00 2001 From: Bernd Hufmann Date: Fri, 30 Jan 2015 15:23:10 -0500 Subject: [PATCH] Fix backwards compatibility issues when copying traces or experiments Change-Id: I6390da1bf9edb324e6659c9031dd661f14792690 Signed-off-by: Bernd Hufmann Reviewed-on: https://git.eclipse.org/r/40920 Reviewed-by: Patrick Tasse Tested-by: Patrick Tasse Reviewed-by: Hudson CI --- .../ui/editors/ITmfEventsEditorConstants.java | 26 +++++++++++++++++++ .../handlers/DropAdapterAssistant.java | 4 +-- .../tmf/ui/editors/TmfEventsEditor.java | 13 ++-------- .../model/TmfCommonProjectElement.java | 7 +++-- 4 files changed, 33 insertions(+), 17 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 index 3ad68c9394..cd35c214ed 100644 --- 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 @@ -11,6 +11,8 @@ package org.eclipse.tracecompass.internal.tmf.ui.editors; +import com.google.common.collect.ImmutableSet; + /** * Constants for the TMF UI components @@ -18,6 +20,7 @@ package org.eclipse.tracecompass.internal.tmf.ui.editors; * @noimplement */ public interface ITmfEventsEditorConstants { + /** * The trace editor input type. */ @@ -27,4 +30,27 @@ public interface ITmfEventsEditorConstants { * The trace editor input type. */ String EXPERIMENT_EDITOR_INPUT_TYPE = "editorInputType.experiment"; //$NON-NLS-1$ + + /** + * Expected editor input type constants for a resource (trace) + * Some constants are there to make it possible to reopen traces + * that were opened using Linux Tools and early Trace Compass + * versions. + */ + ImmutableSet TRACE_INPUT_TYPE_CONSTANTS = + ImmutableSet.of(TRACE_EDITOR_INPUT_TYPE, + "org.eclipse.linuxtools.tmf.core.trace.TmfTrace", //$NON-NLS-1$ + "org.eclipse.tracecompass.tmf.core.trace.TmfTrace"); //$NON-NLS-1$ + /** + * Expected editor input type constants for a resource (experiment) + * Some constants are there to make it possible to reopen traces + * that were opened using Linux Tools and early Trace Compass + * versions. + */ + ImmutableSet EXPERIMENT_INPUT_TYPE_CONSTANTS = + ImmutableSet.of(EXPERIMENT_EDITOR_INPUT_TYPE, + "org.eclipse.linuxtools.tmf.core.trace.TmfExperiment", //$NON-NLS-1$ + "org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment", //$NON-NLS-1$ + "org.eclipse.tracecompass.tmf.core.trace.TmfExperiment"); //$NON-NLS-1$ + } diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/DropAdapterAssistant.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/DropAdapterAssistant.java index a8d4c6ee23..c8089b9409 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/DropAdapterAssistant.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/DropAdapterAssistant.java @@ -46,11 +46,11 @@ import org.eclipse.swt.dnd.FileTransfer; import org.eclipse.swt.dnd.TransferData; import org.eclipse.swt.widgets.MessageBox; 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.TmfTraceImportException; import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType; import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper; -import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.ui.project.model.ITmfProjectModelElement; import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement; import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectElement; @@ -628,7 +628,7 @@ public class DropAdapterAssistant extends CommonDropAdapterAssistant { if (folder.exists()) { try { for (IResource member : folder.members()) { - if (TmfTrace.class.getCanonicalName().equals(TmfTraceType.getTraceTypeId(member))) { + if (ITmfEventsEditorConstants.TRACE_INPUT_TYPE_CONSTANTS.contains(TmfTraceType.getTraceTypeId(member))) { member.delete(true, null); } } 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 5f780a2ec8..dfd2764b2a 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 @@ -88,15 +88,6 @@ 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 TRACE_INPUT_TYPE_CONSTANTS = 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 EXPERIMENT_INPUT_TYPE_CONSTANTS = 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; @@ -132,7 +123,7 @@ public class TmfEventsEditor extends TmfEditor implements ITmfTraceEditor, IReus if (traceTypeId == null) { throw new PartInitException(Messages.TmfOpenTraceHelper_NoTraceType); } - if (EXPERIMENT_INPUT_TYPE_CONSTANTS.contains(traceTypeId)) { + if (ITmfEventsEditorConstants.EXPERIMENT_INPUT_TYPE_CONSTANTS.contains(traceTypeId)) { // Special case: experiment bookmark resource final TmfProjectElement project = TmfProjectRegistry.getProject(fFile.getProject(), true); if (project == null) { @@ -147,7 +138,7 @@ public class TmfEventsEditor extends TmfEditor implements ITmfTraceEditor, IReus return; } } - } else if (TRACE_INPUT_TYPE_CONSTANTS.contains(traceTypeId)) { + } else if (ITmfEventsEditorConstants.TRACE_INPUT_TYPE_CONSTANTS.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 48ba368449..7f4374553d 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 @@ -34,6 +34,7 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; 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.analysis.IAnalysisModuleHelper; import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisManager; @@ -43,9 +44,7 @@ import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler; import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager; import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; -import org.eclipse.tracecompass.tmf.core.trace.TmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; -import org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment; import org.eclipse.ui.IEditorReference; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; @@ -353,9 +352,9 @@ public abstract class TmfCommonProjectElement extends TmfProjectModelElement { IFolder folderTrace = (IFolder) trace; for (IResource member : folderTrace.members()) { String traceTypeId = TmfTraceType.getTraceTypeId(member); - if (TmfTrace.class.getCanonicalName().equals(traceTypeId)) { + if (ITmfEventsEditorConstants.TRACE_INPUT_TYPE_CONSTANTS.contains(traceTypeId)) { member.delete(true, null); - } else if (TmfExperiment.class.getCanonicalName().equals(traceTypeId)) { + } else if (ITmfEventsEditorConstants.EXPERIMENT_INPUT_TYPE_CONSTANTS.contains(traceTypeId)) { member.delete(true, null); } } -- 2.34.1