tmf/lttng: Update 2014 copyrights
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.ui / src / org / eclipse / linuxtools / internal / lttng2 / ui / views / control / handlers / ImportHandler.java
index 32b7a8b7bd661974513a4cfc15fb7e5210a0b726..61ca39605c311ef79a59e7f03286ba628b6e39c4 100644 (file)
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2012, 2013 Ericsson
+ * Copyright (c) 2012, 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
@@ -17,15 +17,16 @@ import java.util.List;
 
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
@@ -39,12 +40,12 @@ import org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.ImportFil
 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.TraceControlDialogFactory;
 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
 import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceSessionComponent;
-import org.eclipse.linuxtools.internal.tmf.ui.project.model.TmfImportHelper;
+import org.eclipse.linuxtools.tmf.core.project.model.TmfTraceType;
+import org.eclipse.linuxtools.tmf.core.project.model.TraceTypeHelper;
 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.linuxtools.tmf.ui.project.model.TmfTraceType;
-import org.eclipse.linuxtools.tmf.ui.project.model.TraceTypeHelper;
+import org.eclipse.linuxtools.tmf.ui.project.model.TmfTraceTypeUIUtils;
 import org.eclipse.linuxtools.tmf.ui.project.wizards.importtrace.BatchImportTraceWizard;
 import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
 import org.eclipse.rse.services.files.IFileService;
@@ -101,18 +102,16 @@ public class ImportHandler extends BaseControlViewHandler {
 
             // create default project
             IProject project = TmfProjectRegistry.createProject(DEFAULT_REMOTE_PROJECT_NAME, null, null);
-            TmfImportHelper.forceFolderRefresh(project.getFolder(TmfTraceFolder.TRACE_FOLDER_NAME));
 
             if (param.getSession().isStreamedTrace()) {
                 // Streamed trace
-                TmfProjectElement projectElement = TmfProjectRegistry.getProject(project);
+                TmfProjectElement projectElement = TmfProjectRegistry.getProject(project, true);
                 TmfTraceFolder traceFolder = projectElement.getTracesFolder();
 
                 BatchImportTraceWizard wizard = new BatchImportTraceWizard();
                 wizard.init(PlatformUI.getWorkbench(), new StructuredSelection(traceFolder));
                 WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
                 dialog.open();
-                traceFolder.refresh();
                 return null;
             }
 
@@ -136,12 +135,17 @@ public class ImportHandler extends BaseControlViewHandler {
                         try {
                             ImportFileInfo remoteFile = iterator.next();
 
-                            downloadTrace(remoteFile, selectedProject);
+                            downloadTrace(remoteFile, selectedProject, monitor);
 
                             // Set trace type
                             IFolder traceFolder = selectedProject.getFolder(TmfTraceFolder.TRACE_FOLDER_NAME);
-                            TmfImportHelper.forceFolderRefresh(traceFolder);
-                            IFile file = traceFolder.getFile(remoteFile.getLocalTraceName());
+
+                            if (monitor.isCanceled()) {
+                                status.add(Status.CANCEL_STATUS);
+                                break;
+                            }
+
+                            IResource file = traceFolder.findMember(remoteFile.getLocalTraceName());
 
                             TraceTypeHelper helper = null;
 
@@ -152,7 +156,7 @@ public class ImportHandler extends BaseControlViewHandler {
                             }
 
                             if (helper != null) {
-                                status.add(TmfTraceType.setTraceType(file.getFullPath(), helper));
+                                status.add(TmfTraceTypeUIUtils.setTraceType(file, helper));
                             }
                         } catch (ExecutionException e) {
                             status.add(new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.TraceControl_ImportFailure, e));
@@ -220,9 +224,11 @@ public class ImportHandler extends BaseControlViewHandler {
      *            - trace information of trace to import
      * @param project
      *            - project to import to
+     * @param monitor
+     *            - a progress monitor
      * @throws ExecutionException
      */
-    private static void downloadTrace(ImportFileInfo trace, IProject project)
+    private static void downloadTrace(ImportFileInfo trace, IProject project, IProgressMonitor monitor)
             throws ExecutionException {
         try {
             IRemoteFileSubSystem fsss = trace.getImportFile().getParentRemoteFileSubSystem();
@@ -243,16 +249,18 @@ public class ImportHandler extends BaseControlViewHandler {
             }
 
             IRemoteFile[] sources = fsss.list(trace.getImportFile(), IFileService.FILE_TYPE_FILES, new NullProgressMonitor());
+            SubMonitor subMonitor = SubMonitor.convert(monitor, sources.length);
+            subMonitor.beginTask(Messages.TraceControl_DownloadTask, sources.length);
 
-            String[] destinations = new String[sources.length];
-            String[] encodings = new String[sources.length];
             for (int i = 0; i < sources.length; i++) {
-                destinations[i] = folder.getLocation().addTrailingSeparator().append(sources[i].getName()).toString();
-                encodings[i] = null;
+                if (subMonitor.isCanceled()) {
+                    monitor.setCanceled(true);
+                    return;
+                }
+                String destination = folder.getLocation().addTrailingSeparator().append(sources[i].getName()).toString();
+                subMonitor.setTaskName(Messages.TraceControl_DownloadTask + ' '  + traceName + '/' +sources[i].getName());
+                fsss.download(sources[i], destination, null, subMonitor.newChild(1));
             }
-
-            fsss.downloadMultiple(sources, destinations, encodings, new NullProgressMonitor());
-
         } catch (SystemMessageException e) {
             throw new ExecutionException(e.toString(), e);
         } catch (CoreException e) {
This page took 0.031811 seconds and 5 git commands to generate.