1 package eu
.etaxonomy
.taxeditor
.view
.dataimport
;
3 import java
.util
.Collection
;
4 import java
.util
.HashSet
;
7 import org
.apache
.log4j
.Logger
;
8 import org
.eclipse
.core
.runtime
.jobs
.Job
;
9 import org
.eclipse
.jface
.action
.Action
;
10 import org
.eclipse
.swt
.widgets
.Table
;
11 import org
.eclipse
.swt
.widgets
.TableItem
;
12 import org
.eclipse
.ui
.IWorkbenchPart
;
13 import org
.eclipse
.ui
.IWorkbenchWindow
;
14 import org
.eclipse
.ui
.PlatformUI
;
16 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
17 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
18 import eu
.etaxonomy
.cdm
.api
.service
.ITermService
;
19 import eu
.etaxonomy
.cdm
.ext
.occurrence
.OccurenceQuery
;
20 import eu
.etaxonomy
.cdm
.ext
.occurrence
.gbif
.GbifDataSetProtocol
;
21 import eu
.etaxonomy
.cdm
.ext
.occurrence
.gbif
.GbifResponse
;
22 import eu
.etaxonomy
.cdm
.io
.dwca
.in
.DwcaImportConfigurator
;
23 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
24 import eu
.etaxonomy
.cdm
.model
.common
.ICdmBase
;
25 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameBase
;
26 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationBase
;
27 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
29 public class SaveImportedSpecimenAction
extends Action
{
31 private final Logger logger
= Logger
.getLogger(SaveImportedSpecimenAction
.class);
34 * @see org.eclipse.jface.action.Action#run()
38 final IWorkbenchWindow window
= PlatformUI
.getWorkbench().getActiveWorkbenchWindow();
39 IWorkbenchPart activePart
= window
.getActivePage().getActivePart();
40 if(activePart
instanceof DataImportView
<?
>){
41 DataImportView
<?
> dataImportView
= (DataImportView
<?
>)activePart
;
42 Table table
= dataImportView
.getTable();
43 Collection
<GbifResponse
> checkedResults
= new HashSet
<GbifResponse
>();
45 Set
<String
[]> unitIds
= new HashSet
<String
[]>();
46 for(TableItem item
:table
.getItems()){
47 if(item
.getChecked()){
49 data
= item
.getData();
50 if(data
instanceof GbifResponse
){
51 checkedResults
.add((GbifResponse
)item
.getData());
55 for (GbifResponse response
:checkedResults
){
56 if (response
!= null){
57 System
.err
.println("response: " + response
.getDataSetUri() + " " + response
.getDataSetProtocol());
59 String
[] tripleId
= response
.getTripleID();
60 unitIds
.add(tripleId
);
65 DwcaImportConfigurator configurator
= DwcaImportConfigurator
.NewInstance(null, null);
66 OccurenceQuery query
= new OccurenceQuery(unitIds
);
67 configurator
.setQuery(query
);
69 Job job
= CdmStore
.getImportManager().createIOServiceJob(configurator
);
70 CdmStore
.getImportManager().run(job
);
77 private void persistTerm(DefinedTermBase
<?
> term
, ITermService termService
, ConversationHolder conversation
){
79 //if the term does not exist in the DB save it
80 if(termService
.find(term
.getUuid())==null){
81 termService
.saveOrUpdate(term
);
88 * @see org.eclipse.jface.action.Action#getText()
91 public String
getText() {