eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/OpenRelatedConceptHandler.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/operation/CreateConceptRelationOperation.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/operation/DeleteConceptRelationOperation.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/BioCaseEditorInput.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/DataImportEditor.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/DataImportEditorInput.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/GbifImportEditor.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/GbifImportEditorInput.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/QueryOriginalRecordCommand.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/QueryType.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SaveSpecimenCommand.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenImportEditor.java -text
-eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenImportEditorInput.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenProviderSelectionWizardPage.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenSearchWizard.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenSearchWizardPage.java -text
id="eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor"
name="Specimen Import Editor">
</editor>
+ <editor
+ class="eu.etaxonomy.taxeditor.editor.view.dataimport.GbifImportEditor"
+ default="false"
+ id="eu.etaxonomy.taxeditor.editor.view.dataimport.GbifImportEditor"
+ name="Gbif Import Editor">
+ </editor>
</extension>
<extension
point="org.eclipse.ui.views">
style="push">
</command>
</menuContribution>
+ <menuContribution
+ locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.GbifImportEditor">
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.view.dataimport.SaveSpecimenCommand"
+ label="Save Specimen"
+ style="push">
+ </command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.view.dataimport.QueryOriginalRecordCommand"
+ label="Query original data record"
+ style="push">
+ </command>
+ </menuContribution>
id="eu.etaxonomy.taxeditor.editor.view.dataimport.SaveSpecimenCommand"
name="Save Specimen">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.view.dataimport.QueryOriginalRecordCommand"
+ id="eu.etaxonomy.taxeditor.editor.view.dataimport.QueryOriginalRecordCommand"
+ name="Query original data record">
+ </command>
</extension>
<extension
import org.apache.http.client.ClientProtocolException;
import org.eclipse.swt.widgets.Display;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
-import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
* @date 25.02.2014
*
*/
-public class SpecimenImportEditorInput extends DataImportEditorInput<SpecimenOrObservationBase<?>> {
+public class BioCaseEditorInput extends DataImportEditorInput<SpecimenOrObservationBase<?>> {
private final OccurenceQuery query;
- private final QueryType queryType;
/**
* @param results
*/
- public SpecimenImportEditorInput(OccurenceQuery query, QueryType queryType) {
+ public BioCaseEditorInput(OccurenceQuery query) {
super();
this.query = query;
- this.queryType = queryType;
}
+ @Override
public void query(){
String errorMessage = "Could not execute query " + query;
Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
try {
InputStream resultStream;
- switch (queryType) {
- case GBIF:
- Collection<DerivedUnitFacade> facades = new GbifQueryServiceWrapper().query(query);
- for(DerivedUnitFacade facade:facades){
- results.add(facade.innerDerivedUnit());
- }
- break;
- case BIOCASE:
- resultStream = new BioCaseQueryServiceWrapper().query(query);
- Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(resultStream, null, false);
- TransientCdmRepository repo =
- new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
- configurator.setCdmAppController(repo);
-
- CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
- importer.invoke(configurator);
- results = repo.getUnits();
- setResults(results);
- break;
- }
+ resultStream = new BioCaseQueryServiceWrapper().query(query);
+ Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(resultStream, null, false);
+ TransientCdmRepository repo =
+ new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
+ configurator.setCdmAppController(repo);
+
+ CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
+ importer.invoke(configurator);
+ results = repo.getUnits();
+ setResults(results);
} catch (ClientProtocolException e) {
logger.error(errorMessage, e);
} catch (IOException e) {
*/
@Override
public String getName() {
- return queryType + " " + query.toString();
+ return "[BioCASE] " + query.toString();
}
/* (non-Javadoc)
*/
@Override
public String getToolTipText() {
- return query.toString();
+ return "[BioCASE] " + query.toString();
}
/* (non-Javadoc)
if (getClass() != obj.getClass()) {
return false;
}
- SpecimenImportEditorInput other = (SpecimenImportEditorInput) obj;
+ BioCaseEditorInput other = (BioCaseEditorInput) obj;
if (query == null) {
if (other.query != null) {
return false;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.IContextListener;
import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
* @date 20.09.2013
*
*/
-public abstract class DataImportEditor<T extends IIdentifiableEntity> extends EditorPart implements IPartContentHasFactualData, IDirtyMarkableSelectionProvider,
+public abstract class DataImportEditor<T> extends EditorPart implements IPartContentHasFactualData, IDirtyMarkableSelectionProvider,
IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener{
private ConversationHolder conversation;
* Constructs a new DataImportEditor and registers it to listen to context changes
*/
public DataImportEditor() {
- CdmStore.getContextManager().addContextListener(this);
}
/* (non-Javadoc)
public void createPartControl(Composite parent) {
Table table = new Table(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
- table.setHeaderVisible(true);//TODO: set header title as BioCase query
+ table.setHeaderVisible(true);//TODO: set header title as query
table.setLinesVisible(true);
tableViewer = new TableViewer(table);
*/
@Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+ CdmStore.getContextManager().addContextListener(this);
setSite(site);
setInput(input);
setPartName(input.getName());
tableViewer.getTable().removeAll();
Collection<T> results = ((DataImportEditorInput<T>) editorInput).getResults();
if(results!=null){
- for(T specimen:results){
+ for(T item:results){
TableItem tableItem = new TableItem(tableViewer.getTable(), SWT.NONE);
- tableItem.setText(specimen.generateTitle());
- tableItem.setData(specimen);
+ tableItem.setText(getTextForTableItem(item));
+ tableItem.setData(item);
}
}
}
}
+ protected abstract String getTextForTableItem(T item);
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.model.IContextListener#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
*/
import org.eclipse.ui.IPersistableElement;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @date 25.02.2014
*
*/
-public abstract class DataImportEditorInput<T extends IIdentifiableEntity> implements IEditorInput {
+public abstract class DataImportEditorInput<T> implements IEditorInput {
protected static Logger logger = Logger.getLogger(DataImportEditorInput.class);
@Override
public abstract boolean equals(Object obj);
+
+
+ public abstract void query();
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.dataimport;
+
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+
+/**
+ * @author pplitzner
+ * @date 27.05.2014
+ *
+ */
+public class GbifImportEditor extends DataImportEditor<GbifResponse>{
+
+ public static final String ID = "eu.etaxonomy.taxeditor.editor.view.dataimport.GbifImportEditor";
+
+ /**
+ * Required for extension point
+ */
+ public GbifImportEditor() {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditor#getTextForTableItem(java.lang.Object)
+ */
+ @Override
+ protected String getTextForTableItem(GbifResponse item) {
+ return item.getDerivedUnitFacade().innerDerivedUnit().generateTitle();
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.dataimport;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+
+/**
+ * @author pplitzner
+ * @date 27.05.2014
+ *
+ */
+public class GbifImportEditorInput extends DataImportEditorInput<GbifResponse> {
+
+ private final OccurenceQuery query;
+
+ /**
+ * @param query
+ */
+ public GbifImportEditorInput(OccurenceQuery query) {
+ super();
+ this.query = query;
+ }
+
+ @Override
+ public void query(){
+ String errorMessage = "Could not execute query " + query;
+// try{
+// Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
+ Collection<GbifResponse> results = new ArrayList<GbifResponse>();
+ DerivedUnitFacade facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+ facade.setLocality("outbanks of seashore");
+ GbifResponse gbifResponse = new GbifResponse(facade, "endPointURL");
+ results.add(gbifResponse);
+ setResults(results);
+// } catch (ClientProtocolException e) {
+// logger.error(errorMessage, e);
+// } catch (IOException e) {
+// logger.error(errorMessage, e);
+// } catch (URISyntaxException e) {
+// logger.error(errorMessage, e);
+// }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getName()
+ */
+ @Override
+ public String getName() {
+ return "[GBIF] " + query.toString();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getToolTipText()
+ */
+ @Override
+ public String getToolTipText() {
+ return "[GBIF] " + query.toString();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((query == null) ? 0 : query.hashCode());
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ GbifImportEditorInput other = (GbifImportEditorInput) obj;
+ if (query == null) {
+ if (other.query != null) {
+ return false;
+ }
+ } else if (!query.equals(other.query)) {
+ return false;
+ }
+ return true;
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.view.dataimport;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+
+public class QueryOriginalRecordCommand extends AbstractHandler {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ final ISelection selection = window.getActivePage().getSelection();
+ if(selection instanceof StructuredSelection){
+ StructuredSelection structuredSelection = (StructuredSelection)selection;
+ if(structuredSelection.size()==1){
+ Object next = structuredSelection.iterator().next();
+ if(next instanceof GbifResponse){
+ String endPoint = ((GbifResponse) next).getEndPointQuery();
+ }
+ }
+ }
+ return null;
+ }
+
+}
if(next instanceof SpecimenOrObservationBase){
IWorkbenchPart activePart = AbstractUtility.getActivePart();
if(activePart instanceof DataImportEditor){
- SpecimenImportEditor dataImportEditor = (SpecimenImportEditor)activePart;
+ DataImportEditor dataImportEditor = (DataImportEditor)activePart;
CdmStore.getService(IOccurrenceService.class).saveOrUpdate((SpecimenOrObservationBase<?>) next);
dataImportEditor.getConversationHolder().commit(true);
}
public static final String ID = "eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor";
/**
- *
+ * Required for extension point
*/
public SpecimenImportEditor() {
super();
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.view.dataimport.DataImportEditor#getTextForTableItem(eu.etaxonomy.cdm.model.common.IIdentifiableEntity)
+ */
+ @Override
+ protected String getTextForTableItem(SpecimenOrObservationBase<?> item) {
+ return item.generateTitle();
+ }
}
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;
+ }
+
+ }
}
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
if(input instanceof TreeNode){
input = ((TreeNode) input).getValue();
}
+ if(input instanceof GbifResponse){
+ input = ((GbifResponse) input).getDerivedUnitFacade();
+ }
if (input.getClass().equals(DerivedUnit.class)) {
DerivedUnit derivedUnit = (DerivedUnit)input;
try {