import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.net.URI;
-import org.apache.log4j.Logger;
+import org.apache.log4j.Logger;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeSelection;
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-
import eu.etaxonomy.taxeditor.store.CdmStore;
} catch (FileNotFoundException e) {
logger.error("Error while reading file" + source.toString());
}
-
- Job job = CdmStore.getImportManager().createIOServiceJob(configurator,file , SOURCE_TYPE.INPUTSTREAM);
+
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator,fis , SOURCE_TYPE.INPUTSTREAM);
CdmStore.getImportManager().run(job);
-
+
return true;
}
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.UUID;
import org.apache.http.client.ClientProtocolException;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.ITermService;
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.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.io.specimen.gbif.in.*;
+import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportConfigurator;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
public class SaveImportedSpecimenAction extends Action {
private final Logger logger = Logger.getLogger(SaveImportedSpecimenAction.class);
-
+
private Comparator<GbifResponse> comparator;
/* (non-Javadoc)
Set<String[]> unitIdsGbif = new HashSet<String[]>();
Set<String[]> unitIdsBioCase = new HashSet<String[]>();
List<GbifResponse> biocaseResponses = new ArrayList<GbifResponse>();
-
+
for(TableItem item:table.getItems()){
if(item.getChecked()){
//Save Specimen
for (GbifResponse response:checkedResults){
if (response != null){
tripleId = response.getTripleID();
-
+
if (response.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
biocaseResponses.add(response);
-
+
}else{
unitIdsGbif.add(tripleId);
}
-
-
+
+
}
}
- Collections.sort(biocaseResponses, getComparator());
+ Collections.sort(biocaseResponses, getComparator());
URI dataSetUri = null;
Abcd206ImportConfigurator configuratorAbcd;
-
+
List<Abcd206ImportConfigurator> abcdConfigurators = new ArrayList<Abcd206ImportConfigurator>();
DataSetResponse dataSetResponse;
OccurenceQuery bioCaseOccurrenceQuery = null;
if (!response.getDataSetUri().equals(dataSetUri)){
configuratorAbcd = Abcd206ImportConfigurator.NewInstance(dataSetUri, null, false);
configuratorAbcd.addMediaAsMediaSpecimen(true);
+ configuratorAbcd.setIgnoreAuthorship(true);
+ configuratorAbcd.setMoveNewTaxaToDefaultClassification(false);
if (configuratorAbcd != null){
abcdConfigurators.add(configuratorAbcd);
}
if (dataImportView.getClassification() != null){
configuratorAbcd.setClassificationUuid(dataImportView.getClassification().getUuid());
}
-
+
}
tripleId = response.getTripleID();
unitIdsBioCase.add(tripleId);
}
-
+
OccurenceQuery query = new OccurenceQuery(unitIdsGbif);
GbifImportConfigurator configurator = GbifImportConfigurator.newInstance(query);
configurator.setSourceReferenceTitle("Import Gbif data");
-
-
-
+
+
+
// configurator.setQuery(query);
-
+
Job bioCaseJob = CdmStore.getImportManager().createIOServiceJob(abcdConfigurators);
CdmStore.getImportManager().run(bioCaseJob);
-
+
Job gbifJob = CdmStore.getImportManager().createIOServiceJob(configurator);
CdmStore.getImportManager().run(gbifJob);
-
-
-
+
+
+
}
}
-
-
+
+
private void persistTerm(DefinedTermBase<?> term, ITermService termService, ConversationHolder conversation){
if(term!=null){
//if the term does not exist in the DB save it
}
}
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.action.Action#getText()
*/
public String getText() {
return "Import";
}
-
+
private Comparator<GbifResponse> getComparator(){
if (comparator == null){
comparator = new GbifResponseComparator();
}
return comparator;
}
-
-
+
+
}
import java.util.Collection;
import org.apache.http.client.ClientProtocolException;
-import org.eclipse.core.runtime.jobs.Job;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
-import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206DataHolder;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportParser;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportState;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206XMLFieldGetter;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.AbcdParseUtility;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.UnitAssociationWrapper;
/**
* @author pplitzner
* @date Sep 3, 2014
*
*/
-public class SpecimenImportView extends DataImportView<SpecimenOrObservationBase<?>> {
+public class SpecimenImportView extends DataImportView<Abcd206DataHolder> {
public static final String ID = "eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"; //$NON-NLS-1$
* @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#getTextForTableItem(java.lang.Object)
*/
@Override
- protected String getTextForTableItem(SpecimenOrObservationBase<?> item) {
- return item.getTitleCache();
+ protected String getTextForTableItem(Abcd206DataHolder item) {
+ //TODO: define a suitable toString method
+ return item.toString();
}
/* (non-Javadoc)
public void query() {
String errorMessage = "Could not execute query " + query;
- Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
+ Collection<Abcd206DataHolder> results = new ArrayList<Abcd206DataHolder>();
try {
//FIXME move ABCD import to cdmlib -> this will also get rid of the transient services
InputStream resultStream;
resultStream = new BioCaseQueryServiceWrapper().query(query, endPoint);
Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(null, null);
-// TransientCdmRepository repo =
+ configurator.setSourceUri(endPoint);
+
+ // TransientCdmRepository repo =
// new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
//configurator.setCdmAppController(repo);
+
+ //TODO: do not query all data but with the selected triple IDs -> see GbifResponseImportView
configurator.setAddMediaAsMediaSpecimen(true);
configurator.setAllowReuseOtherClassifications(true);
-
- Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
- CdmStore.getImportManager().run(job);
-
+ configurator.setMoveNewTaxaToDefaultClassification(false);
+ UnitAssociationWrapper unitAssociationWrapper = AbcdParseUtility.parseUnitsNodeList(resultStream, null);
+ NodeList unitsList = unitAssociationWrapper.getAssociatedUnits();
+ Abcd206DataHolder dataHolder = new Abcd206DataHolder();
+ Abcd206XMLFieldGetter abcdFieldGetter = new Abcd206XMLFieldGetter(dataHolder, unitAssociationWrapper.getPrefix());
+ Abcd206ImportState state = new Abcd206ImportState(configurator);
+ state.setDataHolder(dataHolder);
+ for (int i = 0; i <unitsList.getLength(); i++){
+ Element item = (Element) unitsList.item(i);
+ //dataHolder = new Abcd206DataHolder();
+ Abcd206ImportParser.setUnitPropertiesXML(item, abcdFieldGetter, state);
+ results.add(dataHolder);
+ }
+
+// Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
+// CdmStore.getImportManager().run(job);
+
setResults(results);
} catch (ClientProtocolException e) {
logger.error(errorMessage, e);
logger.error(errorMessage, e);
}
- setResults(results);
+ // setResults(results);
}
import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-
import eu.etaxonomy.cdm.io.specimen.abcd206.in.AbcdParseUtility;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.SpecimenImportReport;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.UnitAssociationWrapper;
configurator.setAddMediaAsMediaSpecimen(true);
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
configurator.setIgnoreAuthorship(true);
-
+ configurator.setMoveNewTaxaToDefaultClassification(false);
+
+
//Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
//CdmStore.getImportManager().run(job);
try {
NodeList nodeList = unitNodesList.getAssociatedUnits();
String prefix = unitNodesList.getPrefix();
String associationType = unitNodesList.getAssociationType();
- URI uri =AbcdParseUtility.parseFirstUri(nodeList, report);
- String content = AbcdParseUtility.parseFirstTextContent(nodeList);
- System.out.println(content);
+ if (nodeList != null){
+ URI uri =AbcdParseUtility.parseFirstUri(nodeList, report);
+ String content = AbcdParseUtility.parseFirstTextContent(nodeList);
+ System.out.println(content);
+ }
+
SpecimenImportView specimenImportView = new SpecimenImportView();
} else{
try {
-
+
dataImportView = (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""), IWorkbenchPage.VIEW_ACTIVATE);
- dataImportView.setQuery(query);
+ dataImportView.setQuery(query);
// (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID);getWorkbench().getActiveWorkbenchWindow().getActivePage()
// .showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""),IWorkbenchPage.VIEW_ACTIVATE);
e.printStackTrace();
}
// CdmStore.getImportManager().run(configurator);
-
+
// try {
// switch (providerSelectionPage.getQueryType()) {
// case BIOCASE:
//// }
//// });
Job queryJob = new QueryJob("Query specimen provider", dataImportView);
- queryJob.schedule();
+ queryJob.schedule();
return true;
}