Revision f12ac52e
Added by Katja Luther about 7 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java | ||
---|---|---|
13 | 13 |
import java.io.FileInputStream; |
14 | 14 |
import java.io.FileNotFoundException; |
15 | 15 |
import java.net.URI; |
16 |
import org.apache.log4j.Logger; |
|
17 | 16 |
|
17 |
import org.apache.log4j.Logger; |
|
18 | 18 |
import org.eclipse.core.runtime.jobs.Job; |
19 | 19 |
import org.eclipse.jface.viewers.IStructuredSelection; |
20 | 20 |
import org.eclipse.jface.viewers.TreeSelection; |
... | ... | |
24 | 24 |
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE; |
25 | 25 |
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator; |
26 | 26 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
27 |
|
|
28 | 27 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
29 | 28 |
|
30 | 29 |
|
... | ... | |
68 | 67 |
} catch (FileNotFoundException e) { |
69 | 68 |
logger.error("Error while reading file" + source.toString()); |
70 | 69 |
} |
71 |
|
|
72 |
Job job = CdmStore.getImportManager().createIOServiceJob(configurator,file , SOURCE_TYPE.INPUTSTREAM);
|
|
70 |
|
|
71 |
Job job = CdmStore.getImportManager().createIOServiceJob(configurator,fis , SOURCE_TYPE.INPUTSTREAM);
|
|
73 | 72 |
CdmStore.getImportManager().run(job); |
74 |
|
|
73 |
|
|
75 | 74 |
return true; |
76 | 75 |
} |
77 | 76 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SaveImportedSpecimenAction.java | ||
---|---|---|
9 | 9 |
import java.util.HashSet; |
10 | 10 |
import java.util.List; |
11 | 11 |
import java.util.Set; |
12 |
import java.util.UUID; |
|
13 | 12 |
|
14 | 13 |
import org.apache.http.client.ClientProtocolException; |
15 | 14 |
import org.apache.log4j.Logger; |
16 | 15 |
import org.eclipse.core.runtime.jobs.Job; |
17 | 16 |
import org.eclipse.jface.action.Action; |
18 |
import org.eclipse.jface.text.source.Annotation; |
|
19 |
import org.eclipse.swt.widgets.Event; |
|
20 | 17 |
import org.eclipse.swt.widgets.Table; |
21 | 18 |
import org.eclipse.swt.widgets.TableItem; |
22 | 19 |
import org.eclipse.ui.IWorkbenchPart; |
... | ... | |
24 | 21 |
import org.eclipse.ui.PlatformUI; |
25 | 22 |
|
26 | 23 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
27 |
import eu.etaxonomy.cdm.api.service.IClassificationService; |
|
28 |
import eu.etaxonomy.cdm.api.service.IOccurrenceService; |
|
29 | 24 |
import eu.etaxonomy.cdm.api.service.ITermService; |
30 | 25 |
import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery; |
31 | 26 |
import eu.etaxonomy.cdm.ext.occurrence.gbif.DataSetResponse; |
... | ... | |
33 | 28 |
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper; |
34 | 29 |
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse; |
35 | 30 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator; |
36 |
import eu.etaxonomy.cdm.io.specimen.gbif.in.*;
|
|
31 |
import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportConfigurator;
|
|
37 | 32 |
import eu.etaxonomy.cdm.model.common.DefinedTermBase; |
38 |
import eu.etaxonomy.cdm.model.common.ICdmBase; |
|
39 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase; |
|
40 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
|
41 |
import eu.etaxonomy.cdm.model.taxon.Classification; |
|
42 | 33 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
43 |
import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory; |
|
44 | 34 |
|
45 | 35 |
public class SaveImportedSpecimenAction extends Action { |
46 | 36 |
|
47 | 37 |
private final Logger logger = Logger.getLogger(SaveImportedSpecimenAction.class); |
48 |
|
|
38 |
|
|
49 | 39 |
private Comparator<GbifResponse> comparator; |
50 | 40 |
|
51 | 41 |
/* (non-Javadoc) |
... | ... | |
63 | 53 |
Set<String[]> unitIdsGbif = new HashSet<String[]>(); |
64 | 54 |
Set<String[]> unitIdsBioCase = new HashSet<String[]>(); |
65 | 55 |
List<GbifResponse> biocaseResponses = new ArrayList<GbifResponse>(); |
66 |
|
|
56 |
|
|
67 | 57 |
for(TableItem item:table.getItems()){ |
68 | 58 |
if(item.getChecked()){ |
69 | 59 |
//Save Specimen |
... | ... | |
77 | 67 |
for (GbifResponse response:checkedResults){ |
78 | 68 |
if (response != null){ |
79 | 69 |
tripleId = response.getTripleID(); |
80 |
|
|
70 |
|
|
81 | 71 |
if (response.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){ |
82 | 72 |
biocaseResponses.add(response); |
83 |
|
|
73 |
|
|
84 | 74 |
}else{ |
85 | 75 |
unitIdsGbif.add(tripleId); |
86 | 76 |
} |
87 |
|
|
88 |
|
|
77 |
|
|
78 |
|
|
89 | 79 |
} |
90 | 80 |
} |
91 |
Collections.sort(biocaseResponses, getComparator());
|
|
81 |
Collections.sort(biocaseResponses, getComparator()); |
|
92 | 82 |
URI dataSetUri = null; |
93 | 83 |
Abcd206ImportConfigurator configuratorAbcd; |
94 |
|
|
84 |
|
|
95 | 85 |
List<Abcd206ImportConfigurator> abcdConfigurators = new ArrayList<Abcd206ImportConfigurator>(); |
96 | 86 |
DataSetResponse dataSetResponse; |
97 | 87 |
OccurenceQuery bioCaseOccurrenceQuery = null; |
... | ... | |
109 | 99 |
if (!response.getDataSetUri().equals(dataSetUri)){ |
110 | 100 |
configuratorAbcd = Abcd206ImportConfigurator.NewInstance(dataSetUri, null, false); |
111 | 101 |
configuratorAbcd.addMediaAsMediaSpecimen(true); |
102 |
configuratorAbcd.setIgnoreAuthorship(true); |
|
103 |
configuratorAbcd.setMoveNewTaxaToDefaultClassification(false); |
|
112 | 104 |
if (configuratorAbcd != null){ |
113 | 105 |
abcdConfigurators.add(configuratorAbcd); |
114 | 106 |
} |
... | ... | |
118 | 110 |
if (dataImportView.getClassification() != null){ |
119 | 111 |
configuratorAbcd.setClassificationUuid(dataImportView.getClassification().getUuid()); |
120 | 112 |
} |
121 |
|
|
113 |
|
|
122 | 114 |
} |
123 | 115 |
tripleId = response.getTripleID(); |
124 | 116 |
unitIdsBioCase.add(tripleId); |
125 | 117 |
} |
126 |
|
|
118 |
|
|
127 | 119 |
OccurenceQuery query = new OccurenceQuery(unitIdsGbif); |
128 | 120 |
GbifImportConfigurator configurator = GbifImportConfigurator.newInstance(query); |
129 | 121 |
configurator.setSourceReferenceTitle("Import Gbif data"); |
130 |
|
|
131 |
|
|
132 |
|
|
122 |
|
|
123 |
|
|
124 |
|
|
133 | 125 |
// configurator.setQuery(query); |
134 |
|
|
126 |
|
|
135 | 127 |
Job bioCaseJob = CdmStore.getImportManager().createIOServiceJob(abcdConfigurators); |
136 | 128 |
CdmStore.getImportManager().run(bioCaseJob); |
137 |
|
|
129 |
|
|
138 | 130 |
Job gbifJob = CdmStore.getImportManager().createIOServiceJob(configurator); |
139 | 131 |
CdmStore.getImportManager().run(gbifJob); |
140 |
|
|
141 |
|
|
142 |
|
|
132 |
|
|
133 |
|
|
134 |
|
|
143 | 135 |
} |
144 | 136 |
} |
145 |
|
|
146 |
|
|
137 |
|
|
138 |
|
|
147 | 139 |
private void persistTerm(DefinedTermBase<?> term, ITermService termService, ConversationHolder conversation){ |
148 | 140 |
if(term!=null){ |
149 | 141 |
//if the term does not exist in the DB save it |
... | ... | |
152 | 144 |
} |
153 | 145 |
} |
154 | 146 |
} |
155 |
|
|
147 |
|
|
156 | 148 |
/* (non-Javadoc) |
157 | 149 |
* @see org.eclipse.jface.action.Action#getText() |
158 | 150 |
*/ |
... | ... | |
160 | 152 |
public String getText() { |
161 | 153 |
return "Import"; |
162 | 154 |
} |
163 |
|
|
155 |
|
|
164 | 156 |
private Comparator<GbifResponse> getComparator(){ |
165 | 157 |
if (comparator == null){ |
166 | 158 |
comparator = new GbifResponseComparator(); |
167 | 159 |
} |
168 | 160 |
return comparator; |
169 | 161 |
} |
170 |
|
|
171 |
|
|
162 |
|
|
163 |
|
|
172 | 164 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenImportView.java | ||
---|---|---|
15 | 15 |
import java.util.Collection; |
16 | 16 |
|
17 | 17 |
import org.apache.http.client.ClientProtocolException; |
18 |
import org.eclipse.core.runtime.jobs.Job; |
|
18 |
import org.w3c.dom.Element; |
|
19 |
import org.w3c.dom.NodeList; |
|
19 | 20 |
|
20 | 21 |
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper; |
21 |
import eu.etaxonomy.cdm.io.common.CdmDefaultImport; |
|
22 |
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE; |
|
22 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206DataHolder; |
|
23 | 23 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator; |
24 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
|
25 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
24 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportParser; |
|
25 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportState; |
|
26 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206XMLFieldGetter; |
|
27 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.AbcdParseUtility; |
|
28 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.UnitAssociationWrapper; |
|
26 | 29 |
|
27 | 30 |
/** |
28 | 31 |
* @author pplitzner |
29 | 32 |
* @date Sep 3, 2014 |
30 | 33 |
* |
31 | 34 |
*/ |
32 |
public class SpecimenImportView extends DataImportView<SpecimenOrObservationBase<?>> {
|
|
35 |
public class SpecimenImportView extends DataImportView<Abcd206DataHolder> {
|
|
33 | 36 |
|
34 | 37 |
public static final String ID = "eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"; //$NON-NLS-1$ |
35 | 38 |
|
... | ... | |
49 | 52 |
* @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#getTextForTableItem(java.lang.Object) |
50 | 53 |
*/ |
51 | 54 |
@Override |
52 |
protected String getTextForTableItem(SpecimenOrObservationBase<?> item) { |
|
53 |
return item.getTitleCache(); |
|
55 |
protected String getTextForTableItem(Abcd206DataHolder item) { |
|
56 |
//TODO: define a suitable toString method |
|
57 |
return item.toString(); |
|
54 | 58 |
} |
55 | 59 |
|
56 | 60 |
/* (non-Javadoc) |
... | ... | |
60 | 64 |
public void query() { |
61 | 65 |
String errorMessage = "Could not execute query " + query; |
62 | 66 |
|
63 |
Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
|
|
67 |
Collection<Abcd206DataHolder> results = new ArrayList<Abcd206DataHolder>();
|
|
64 | 68 |
try { |
65 | 69 |
//FIXME move ABCD import to cdmlib -> this will also get rid of the transient services |
66 | 70 |
InputStream resultStream; |
67 | 71 |
resultStream = new BioCaseQueryServiceWrapper().query(query, endPoint); |
68 | 72 |
Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(null, null); |
69 |
// TransientCdmRepository repo = |
|
73 |
configurator.setSourceUri(endPoint); |
|
74 |
|
|
75 |
// TransientCdmRepository repo = |
|
70 | 76 |
// new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration()); |
71 | 77 |
//configurator.setCdmAppController(repo); |
78 |
|
|
79 |
//TODO: do not query all data but with the selected triple IDs -> see GbifResponseImportView |
|
72 | 80 |
configurator.setAddMediaAsMediaSpecimen(true); |
73 | 81 |
configurator.setAllowReuseOtherClassifications(true); |
74 |
|
|
75 |
Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM); |
|
76 |
CdmStore.getImportManager().run(job); |
|
77 |
|
|
82 |
configurator.setMoveNewTaxaToDefaultClassification(false); |
|
83 |
UnitAssociationWrapper unitAssociationWrapper = AbcdParseUtility.parseUnitsNodeList(resultStream, null); |
|
84 |
NodeList unitsList = unitAssociationWrapper.getAssociatedUnits(); |
|
85 |
Abcd206DataHolder dataHolder = new Abcd206DataHolder(); |
|
86 |
Abcd206XMLFieldGetter abcdFieldGetter = new Abcd206XMLFieldGetter(dataHolder, unitAssociationWrapper.getPrefix()); |
|
87 |
Abcd206ImportState state = new Abcd206ImportState(configurator); |
|
88 |
state.setDataHolder(dataHolder); |
|
89 |
for (int i = 0; i <unitsList.getLength(); i++){ |
|
90 |
Element item = (Element) unitsList.item(i); |
|
91 |
//dataHolder = new Abcd206DataHolder(); |
|
92 |
Abcd206ImportParser.setUnitPropertiesXML(item, abcdFieldGetter, state); |
|
93 |
results.add(dataHolder); |
|
94 |
} |
|
95 |
|
|
96 |
// Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM); |
|
97 |
// CdmStore.getImportManager().run(job); |
|
98 |
|
|
78 | 99 |
setResults(results); |
79 | 100 |
} catch (ClientProtocolException e) { |
80 | 101 |
logger.error(errorMessage, e); |
... | ... | |
82 | 103 |
logger.error(errorMessage, e); |
83 | 104 |
} |
84 | 105 |
|
85 |
setResults(results); |
|
106 |
// setResults(results);
|
|
86 | 107 |
|
87 | 108 |
} |
88 | 109 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenSearchWizard.java | ||
---|---|---|
33 | 33 |
import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery; |
34 | 34 |
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper; |
35 | 35 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator; |
36 |
|
|
37 | 36 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.AbcdParseUtility; |
38 | 37 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.SpecimenImportReport; |
39 | 38 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.UnitAssociationWrapper; |
... | ... | |
80 | 79 |
configurator.setAddMediaAsMediaSpecimen(true); |
81 | 80 |
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE); |
82 | 81 |
configurator.setIgnoreAuthorship(true); |
83 |
|
|
82 |
configurator.setMoveNewTaxaToDefaultClassification(false); |
|
83 |
|
|
84 |
|
|
84 | 85 |
//Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM); |
85 | 86 |
//CdmStore.getImportManager().run(job); |
86 | 87 |
try { |
... | ... | |
96 | 97 |
NodeList nodeList = unitNodesList.getAssociatedUnits(); |
97 | 98 |
String prefix = unitNodesList.getPrefix(); |
98 | 99 |
String associationType = unitNodesList.getAssociationType(); |
99 |
URI uri =AbcdParseUtility.parseFirstUri(nodeList, report); |
|
100 |
String content = AbcdParseUtility.parseFirstTextContent(nodeList); |
|
101 |
System.out.println(content); |
|
100 |
if (nodeList != null){ |
|
101 |
URI uri =AbcdParseUtility.parseFirstUri(nodeList, report); |
|
102 |
String content = AbcdParseUtility.parseFirstTextContent(nodeList); |
|
103 |
System.out.println(content); |
|
104 |
} |
|
105 |
|
|
102 | 106 |
|
103 | 107 |
|
104 | 108 |
SpecimenImportView specimenImportView = new SpecimenImportView(); |
... | ... | |
115 | 119 |
|
116 | 120 |
} else{ |
117 | 121 |
try { |
118 |
|
|
122 |
|
|
119 | 123 |
dataImportView = (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""), IWorkbenchPage.VIEW_ACTIVATE); |
120 |
dataImportView.setQuery(query);
|
|
124 |
dataImportView.setQuery(query); |
|
121 | 125 |
// (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID);getWorkbench().getActiveWorkbenchWindow().getActivePage() |
122 | 126 |
// .showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""),IWorkbenchPage.VIEW_ACTIVATE); |
123 | 127 |
|
... | ... | |
134 | 138 |
e.printStackTrace(); |
135 | 139 |
} |
136 | 140 |
// CdmStore.getImportManager().run(configurator); |
137 |
|
|
141 |
|
|
138 | 142 |
// try { |
139 | 143 |
// switch (providerSelectionPage.getQueryType()) { |
140 | 144 |
// case BIOCASE: |
... | ... | |
162 | 166 |
//// } |
163 | 167 |
//// }); |
164 | 168 |
Job queryJob = new QueryJob("Query specimen provider", dataImportView); |
165 |
queryJob.schedule();
|
|
169 |
queryJob.schedule(); |
|
166 | 170 |
|
167 | 171 |
return true; |
168 | 172 |
} |
Also available in: Unified diff
some changes for specimen import