tmf: Move TmfWorkspaceModifyOperation to public package
authorAlexandre Montplaisir <alexmonthy@efficios.com>
Fri, 7 Jul 2017 21:00:33 +0000 (17:00 -0400)
committerAlexandre Montplaisir <alexmonthy@efficios.com>
Fri, 7 Jul 2017 21:00:33 +0000 (17:00 -0400)
That way it can be used by actions defined in other plugins.

Change-Id: I561d93211c75344a07f8b649d1561db1af46f781
Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
tmf/org.eclipse.tracecompass.tmf.remote.ui/src/org/eclipse/tracecompass/internal/tmf/remote/ui/wizards/fetch/model/RemoteImportTracesOperation.java
tmf/org.eclipse.tracecompass.tmf.ui/META-INF/MANIFEST.MF
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/parsers/CustomParserUtils.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/ClearTraceOffsetHandler.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/DeleteTraceFolderElementHandler.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/DeleteTraceSupplementaryFilesHandler.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/OffsetTraceHandler.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/TrimTraceHandler.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java [deleted file]
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/importtrace/TraceValidateAndImportOperation.java
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java [new file with mode: 0644]

index 7cfe7ede9ab2b0321cf2ac6060f57973beb6c297..8d4700f2d00c654232d81adca0a5694c13d5ff76 100644 (file)
@@ -48,7 +48,6 @@ import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.tracecompass.internal.tmf.remote.ui.Activator;
 import org.eclipse.tracecompass.internal.tmf.remote.ui.messages.RemoteMessages;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.tracecompass.internal.tmf.ui.project.wizards.importtrace.ArchiveUtil;
 import org.eclipse.tracecompass.internal.tmf.ui.project.wizards.importtrace.FileSystemObjectImportStructureProvider;
 import org.eclipse.tracecompass.internal.tmf.ui.project.wizards.importtrace.IFileSystemObject;
@@ -68,6 +67,7 @@ import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceTypeUIUtils;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTracesFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
 
 /**
index ea6cf8c762027c487e9e6bead7696efb55c52fcd..b4375ff08375c6d929e216dad8b0211ee55ddf78 100644 (file)
@@ -69,6 +69,7 @@ Export-Package: org.eclipse.tracecompass.internal.tmf.ui;x-friends:="org.eclipse
  org.eclipse.tracecompass.tmf.ui.markers,
  org.eclipse.tracecompass.tmf.ui.project.handlers,
  org.eclipse.tracecompass.tmf.ui.project.model,
+ org.eclipse.tracecompass.tmf.ui.project.operations,
  org.eclipse.tracecompass.tmf.ui.project.wizards,
  org.eclipse.tracecompass.tmf.ui.properties,
  org.eclipse.tracecompass.tmf.ui.signal,
index 5a30a8e9ec77019f6347ff98487a41fa842f2d5e..171da83386902e103db855e6ea24b1d809e6b33a 100644 (file)
@@ -22,12 +22,12 @@ import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.tracecompass.internal.tmf.ui.editors.TmfTableColumnUtils;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.tracecompass.tmf.core.TmfProjectNature;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectRegistry;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.PlatformUI;
 
 /**
index 09515ac2810cb4ed46dc45a35d7547be5484f30c..bdf5a6cad06128d98f507a99ec71db3e53b2c745 100644 (file)
@@ -29,12 +29,12 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.tracecompass.tmf.core.synchronization.TimestampTransformFactory;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
 
index 5959649e303e14c62ad6836a8f026cd4ece71be4..577b9ddc80b4cc31533a3e593a1ddd456c7bf512 100644 (file)
@@ -38,12 +38,12 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.tracecompass.internal.tmf.ui.Activator;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTracesFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.IWorkbenchWindow;
index 44eb81a86e8e2e6ea3ea091a82636702166d69e7..d92c5b40be043f878e8461929e55f7780e0d044f 100644 (file)
@@ -38,11 +38,11 @@ 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.project.dialogs.SelectSupplementaryResourcesDialog;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfCommonProjectElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
index fcef0cc311fea98da532acea729d75a0ac1e90dc..e3ba3c29d30868b8e915743b2b889bddd1cf1d51 100644 (file)
@@ -32,13 +32,13 @@ import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.tracecompass.internal.tmf.ui.project.dialogs.offset.OffsetDialog;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.tracecompass.tmf.core.synchronization.ITmfTimestampTransform;
 import org.eclipse.tracecompass.tmf.core.synchronization.TimestampTransformFactory;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
 
index d44943ab61480c262b9908a5ff3bf6299544e91c..f1f863ab7f161a4d39a7bf1a7275bae2ab9a2943 100644 (file)
@@ -37,7 +37,6 @@ import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.tracecompass.common.core.StreamUtils;
 import org.eclipse.tracecompass.internal.tmf.ui.Activator;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
 import org.eclipse.tracecompass.statesystem.core.Statedump;
 import org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule;
@@ -51,6 +50,7 @@ import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
 
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java
deleted file mode 100644 (file)
index 6fe11e1..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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:
- *   Bernd Hufmann - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.tracecompass.internal.tmf.ui.project.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Operation to modify the workspace that refreshes workspace at the end of the operation.
- *
- * For refreshing periodically use {@link WorkspaceModifyOperation} instead.
- *
- * @author Bernd Hufmann
- *
- */
-public abstract class TmfWorkspaceModifyOperation implements IRunnableWithProgress {
-
-    private ISchedulingRule rule;
-
-    /**
-     * Creates a new operation.
-     */
-    protected TmfWorkspaceModifyOperation() {
-        this(ResourcesPlugin.getWorkspace().getRoot());
-    }
-
-    /**
-     * Creates a new operation that will run using the provided scheduling rule.
-     *
-     * @param rule
-     *            The ISchedulingRule to use or <code>null</code>.
-     */
-    protected TmfWorkspaceModifyOperation(ISchedulingRule rule) {
-        this.rule = rule;
-    }
-
-    @Override
-    public final synchronized void run(IProgressMonitor monitor)
-            throws InvocationTargetException, InterruptedException {
-        final InvocationTargetException[] iteHolder = new InvocationTargetException[1];
-        try {
-            IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable() {
-                @Override
-                public void run(IProgressMonitor pm) throws CoreException {
-                    try {
-                        execute(pm);
-                    } catch (InvocationTargetException e) {
-                        // Pass it outside the workspace runnable
-                        iteHolder[0] = e;
-                    } catch (InterruptedException e) {
-                        // Re-throw as OperationCanceledException, which will be
-                        // caught and re-thrown as InterruptedException below.
-                        throw new OperationCanceledException(e.getMessage());
-                    }
-                    // CoreException and OperationCanceledException are propagated
-                }
-            };
-
-            IWorkspace workspace = ResourcesPlugin.getWorkspace();
-            workspace.run(workspaceRunnable, rule, IWorkspace.AVOID_UPDATE, monitor);
-        } catch (CoreException e) {
-            throw new InvocationTargetException(e);
-        } catch (OperationCanceledException e) {
-            throw new InterruptedException(e.getMessage());
-        }
-        // Re-throw the InvocationTargetException, if any occurred
-        if (iteHolder[0] != null) {
-            throw iteHolder[0];
-        }
-    }
-
-    /**
-     * Performs the steps that are to be treated as a single logical workspace
-     * change.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param monitor
-     *            the progress monitor to use to display progress and field user
-     *            requests to cancel
-     * @exception CoreException
-     *                if the operation fails due to a CoreException
-     * @exception InvocationTargetException
-     *                if the operation fails due to an exception other than
-     *                CoreException
-     * @exception InterruptedException
-     *                if the operation detects a request to cancel, using
-     *                <code>IProgressMonitor.isCanceled()</code>, it should exit
-     *                by throwing <code>InterruptedException</code>. It is also
-     *                possible to throw <code>OperationCanceledException</code>,
-     *                which gets mapped to <code>InterruptedException</code> by
-     *                the <code>run</code> method.
-     */
-    protected abstract void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException;
-}
\ No newline at end of file
index 6a90871db160b94382506aaaed8dcd85635cfd73..f66c1e56c33c06c4c979236de761707dadff34b7 100644 (file)
@@ -42,7 +42,6 @@ import org.eclipse.core.runtime.URIUtil;
 import org.eclipse.jface.operation.ModalContext;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.tracecompass.internal.tmf.ui.Activator;
-import org.eclipse.tracecompass.internal.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 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;
@@ -51,6 +50,7 @@ import org.eclipse.tracecompass.tmf.core.util.Pair;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceTypeUIUtils;
 import org.eclipse.tracecompass.tmf.ui.project.model.TraceUtils;
+import org.eclipse.tracecompass.tmf.ui.project.operations.TmfWorkspaceModifyOperation;
 import org.eclipse.ui.dialogs.FileSystemElement;
 import org.eclipse.ui.dialogs.IOverwriteQuery;
 import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java
new file mode 100644 (file)
index 0000000..d89d31d
--- /dev/null
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 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:
+ *   Bernd Hufmann - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.tmf.ui.project.operations;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+/**
+ * Operation to modify the workspace that refreshes workspace at the end of the operation.
+ *
+ * For refreshing periodically use {@link WorkspaceModifyOperation} instead.
+ *
+ * @author Bernd Hufmann
+ * @since 2.3
+ */
+public abstract class TmfWorkspaceModifyOperation implements IRunnableWithProgress {
+
+    private ISchedulingRule rule;
+
+    /**
+     * Creates a new operation.
+     */
+    protected TmfWorkspaceModifyOperation() {
+        this(ResourcesPlugin.getWorkspace().getRoot());
+    }
+
+    /**
+     * Creates a new operation that will run using the provided scheduling rule.
+     *
+     * @param rule
+     *            The ISchedulingRule to use or <code>null</code>.
+     */
+    protected TmfWorkspaceModifyOperation(ISchedulingRule rule) {
+        this.rule = rule;
+    }
+
+    @Override
+    public final synchronized void run(IProgressMonitor monitor)
+            throws InvocationTargetException, InterruptedException {
+        final InvocationTargetException[] iteHolder = new InvocationTargetException[1];
+        try {
+            IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable() {
+                @Override
+                public void run(IProgressMonitor pm) throws CoreException {
+                    try {
+                        execute(pm);
+                    } catch (InvocationTargetException e) {
+                        // Pass it outside the workspace runnable
+                        iteHolder[0] = e;
+                    } catch (InterruptedException e) {
+                        // Re-throw as OperationCanceledException, which will be
+                        // caught and re-thrown as InterruptedException below.
+                        throw new OperationCanceledException(e.getMessage());
+                    }
+                    // CoreException and OperationCanceledException are propagated
+                }
+            };
+
+            IWorkspace workspace = ResourcesPlugin.getWorkspace();
+            workspace.run(workspaceRunnable, rule, IWorkspace.AVOID_UPDATE, monitor);
+        } catch (CoreException e) {
+            throw new InvocationTargetException(e);
+        } catch (OperationCanceledException e) {
+            throw new InterruptedException(e.getMessage());
+        }
+        // Re-throw the InvocationTargetException, if any occurred
+        if (iteHolder[0] != null) {
+            throw iteHolder[0];
+        }
+    }
+
+    /**
+     * Performs the steps that are to be treated as a single logical workspace
+     * change.
+     * <p>
+     * Subclasses must implement this method.
+     * </p>
+     *
+     * @param monitor
+     *            the progress monitor to use to display progress and field user
+     *            requests to cancel
+     * @exception CoreException
+     *                if the operation fails due to a CoreException
+     * @exception InvocationTargetException
+     *                if the operation fails due to an exception other than
+     *                CoreException
+     * @exception InterruptedException
+     *                if the operation detects a request to cancel, using
+     *                <code>IProgressMonitor.isCanceled()</code>, it should exit
+     *                by throwing <code>InterruptedException</code>. It is also
+     *                possible to throw <code>OperationCanceledException</code>,
+     *                which gets mapped to <code>InterruptedException</code> by
+     *                the <code>run</code> method.
+     */
+    protected abstract void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException;
+}
\ No newline at end of file
This page took 0.031462 seconds and 5 git commands to generate.