tmf: Enable the finish button when default target project is selected
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / project / wizards / importtrace / ImportTraceWizardPageOptions.java
index ae8a5bdb05a3c9c8239dfe546282f48789babe06..f1b6c9848c851f1bb62dd2984482d176f1e9b852 100644 (file)
@@ -8,6 +8,7 @@
  *
  * Contributors:
  *   Matthew Khouzam - Initial API and implementation
+ *   Marc-Andre Laperle - Use common method to get opened tmf projects
  *******************************************************************************/
 
 package org.eclipse.linuxtools.tmf.ui.project.wizards.importtrace;
@@ -17,10 +18,8 @@ import java.util.Map;
 
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.linuxtools.tmf.core.TmfProjectNature;
+import org.eclipse.linuxtools.tmf.ui.project.model.TraceUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -66,50 +65,48 @@ public class ImportTraceWizardPageOptions extends AbstractImportTraceWizardPage
         optionPane.setLayout(new GridLayout());
         optionPane.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true));
 
-        IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-
-        fProjects = new List(optionPane, SWT.NONE);
+        fProjects = new List(optionPane, SWT.V_SCROLL);
         fProjects.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
-        for (IProject project : projects) {
-            try {
-                if (project.getNature(TmfProjectNature.ID) != null) {
-                    final String name = project.getName();
-                    fProjectsMap.put(name, project);
-                    fProjects.add(name);
-                }
-            } catch (CoreException e) {
-                // TODO: add a logger to activator and then log it
-            }
+        for (IProject project : TraceUtils.getOpenedTmfProjects()) {
+            final String name = project.getName();
+            fProjectsMap.put(name, project);
+            fProjects.add(name);
         }
 
         fProjects.getSelection();
         fProjects.addSelectionListener(new SelectionListener() {
 
-            private static final String TRACE = "Traces"; //$NON-NLS-1$
-
             @Override
             public void widgetSelected(SelectionEvent e) {
-                final String listItem = fProjects.getSelection()[0];
-                IFolder folder = fProjectsMap.get(listItem).getFolder(TRACE);
-                getBatchWizard().setTraceFolder(folder);
-                ImportTraceWizardPageOptions.this.setErrorMessage(null);
+                updateWithSelection();
             }
 
             @Override
             public void widgetDefaultSelected(SelectionEvent e) {
-                final String listItem = fProjects.getSelection()[0];
-                IFolder folder = fProjectsMap.get(listItem).getFolder(TRACE);
-                getBatchWizard().setTraceFolder(folder);
-                ImportTraceWizardPageOptions.this.setErrorMessage(null);
+                updateWithSelection();
             }
         });
         if (proj != null) {
             fProjects.setSelection(fProjects.indexOf(proj.getName()));
-            this.setErrorMessage(null);
-        } else {
-            this.setErrorMessage(Messages.SharedSelectProject);
+        } else if (fProjects.getItemCount() > 0) {
+            fProjects.setSelection(0);
         }
+        updateWithSelection();
+        setMessage(Messages.SharedSelectProject);
         this.setTitle(Messages.ImportTraceWizardPageOptionsTitle);
     }
+
+    private void updateWithSelection() {
+        final String TRACE = "Traces"; //$NON-NLS-1$
+        String[] selection = fProjects.getSelection();
+        if (selection.length > 0) {
+            final String listItem = selection[0];
+            IFolder folder = fProjectsMap.get(listItem).getFolder(TRACE);
+            getBatchWizard().setTraceFolder(folder);
+            ImportTraceWizardPageOptions.this.setErrorMessage(null);
+        } else {
+            ImportTraceWizardPageOptions.this.setErrorMessage(Messages.SharedSelectProject);
+        }
+    }
 }
This page took 0.025637 seconds and 5 git commands to generate.