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;
@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;
}
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;
+ }
+
+ }
}