- added new DataImportEditor for GbifResponses
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / dataimport / SpecimenSearchWizard.java
index 0fd5e8b04d6b069c5d9f35546bb74caecb7d1804..a76a1e7425507bf583f3e3a69d3e65abc44dbf28 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IImportWizard;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPage;
@@ -57,23 +58,26 @@ public class SpecimenSearchWizard extends Wizard implements IImportWizard {
     @Override
     public boolean performFinish() {
         final IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-
-            query = searchPage.getQuery();
-            final SpecimenImportEditorInput input = new SpecimenImportEditorInput(query, providerSelectionPage.getQueryType());
-            Job queryJob = new Job("Query specimen provider") {
-
-                @Override
-                protected IStatus run(IProgressMonitor monitor) {
-                    input.query();
-                    return Status.OK_STATUS;
-                }
-            };
-            queryJob.schedule();
-            try {
-                page.openEditor(input, SpecimenImportEditor.ID, true);
-            } catch ( PartInitException e ) {
-                //Put your exception handler here if you wish to
-            }
+        DataImportEditorInput<?> input = null;
+        String editorId = null;
+        query = searchPage.getQuery();
+        switch (providerSelectionPage.getQueryType()) {
+        case BIOCASE:
+            input = new BioCaseEditorInput(query);
+            editorId = SpecimenImportEditor.ID;
+            break;
+        case GBIF:
+            input = new GbifImportEditorInput(query);
+            editorId = GbifImportEditor.ID;
+            break;
+        }
+        try {
+            page.openEditor(input, editorId, true);
+        } catch ( PartInitException e ) {
+            //Put your exception handler here if you wish to
+        }
+        Job queryJob = new QueryJob("Query specimen provider", input);
+        queryJob.schedule();
         return true;
     }
 
@@ -95,4 +99,33 @@ public class SpecimenSearchWizard extends Wizard implements IImportWizard {
         searchPage = new SpecimenSearchWizardPage("Specimen Search");
     }
 
+    private class QueryJob extends Job{
+
+        private final DataImportEditorInput<?> input;
+
+        /**
+         * @param name
+         */
+        public QueryJob(String name, DataImportEditorInput<?> input) {
+            super(name);
+            this.input = input;
+        }
+
+        /* (non-Javadoc)
+         * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+         */
+        @Override
+        protected IStatus run(IProgressMonitor monitor) {
+            input.query();
+            Display.getDefault().asyncExec(new Runnable() {
+
+                @Override
+                public void run() {
+                    CdmStore.getContextManager().notifyContextRefresh();
+                }
+            });
+            return Status.OK_STATUS;
+        }
+
+    }
 }