X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/97b8f096d2d679e63ca4274ab0aa6d1a20cff3ed..5da618cbbd8e4123fd1aa0b7e6e75650d3e88d6b:/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/QueryOriginalRecordCommand.java diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/QueryOriginalRecordCommand.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/QueryOriginalRecordCommand.java index 9580c5cba..3587615d5 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/QueryOriginalRecordCommand.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/QueryOriginalRecordCommand.java @@ -1,15 +1,32 @@ package eu.etaxonomy.taxeditor.editor.view.dataimport; +import java.io.IOException; + +import org.apache.http.client.ClientProtocolException; +import org.apache.log4j.Logger; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; +import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery; +import eu.etaxonomy.cdm.ext.occurrence.gbif.DataSetResponse; +import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper; +import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse; +import eu.etaxonomy.taxeditor.editor.EditorUtil; + public class QueryOriginalRecordCommand extends AbstractHandler { + private final Logger logger = Logger.getLogger(QueryOriginalRecordCommand.class); + /* (non-Javadoc) * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent) */ @@ -21,10 +38,28 @@ public class QueryOriginalRecordCommand extends AbstractHandler { StructuredSelection structuredSelection = (StructuredSelection)selection; if(structuredSelection.size()==1){ Object next = structuredSelection.iterator().next(); -// if(next instanceof GbifResponse){ -// InputStream inputStream = new GbifQueryServiceWrapper().queryForOriginalRecord((GbifResponse)next); -// BioCaseEditorInput input = new BioCaseEditorInput(query); -// } + if(next instanceof GbifResponse){ + try{ + DataSetResponse response = new GbifQueryServiceWrapper().queryOriginalDataSet((GbifResponse)next); + final BioCaseEditorInput input = new BioCaseEditorInput(new OccurenceQuery(response.getUnitId()), response.getEndpoint()); + EditorUtil.open(input); + Job queryJob = new Job("Querying for original record...") { + + @Override + protected IStatus run(IProgressMonitor monitor) { + input.query(); + return Status.OK_STATUS; + } + }; + queryJob.schedule(); + } catch (ClientProtocolException e) { + logger.error("Query for single record failed.", e); + } catch (IOException e) { + logger.error("Query for single record failed.", e); + } catch (PartInitException e) { + logger.error("Could not open editor.", e); + } + } } } return null;