Revision 01b3ade8
Added by Patrick Plitzner over 9 years ago
- added context menu entry to taxon navigator to open associated derivates in DerivateEditor
- added taxon filter to DerivateSearchView (non-functional) (#4506)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchCompositeController.java | ||
---|---|---|
10 | 10 |
package eu.etaxonomy.taxeditor.view.derivateSearch; |
11 | 11 |
|
12 | 12 |
import java.util.ArrayList; |
13 |
import java.util.Arrays; |
|
14 |
import java.util.LinkedHashMap; |
|
15 | 13 |
import java.util.List; |
16 | 14 |
|
17 | 15 |
import org.eclipse.core.commands.ExecutionException; |
... | ... | |
36 | 34 |
import eu.etaxonomy.cdm.api.service.config.IdentifiableServiceConfiguratorImpl; |
37 | 35 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
38 | 36 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; |
37 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
|
39 | 38 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
40 | 39 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
41 | 40 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
41 |
import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory; |
|
42 | 42 |
import eu.etaxonomy.taxeditor.ui.mvc.combo.EnumTermComboController; |
43 | 43 |
|
44 | 44 |
/** |
... | ... | |
54 | 54 |
private EnumTermComboController<SpecimenOrObservationType> enumTermComboController; |
55 | 55 |
private final DerivateSearchView derivateSearchView; |
56 | 56 |
private DerivateLabelProvider labelProvider; |
57 |
private Taxon selectedTaxon; |
|
58 |
|
|
57 | 59 |
/** |
58 | 60 |
* @param parent |
59 | 61 |
* @param derivateSearchView |
... | ... | |
65 | 67 |
} |
66 | 68 |
|
67 | 69 |
private void init(){ |
68 |
LinkedHashMap<SpecimenOrObservationType, String> orderedTerms = AbstractUtility.orderTerms(Arrays.asList(SpecimenOrObservationType.values())); |
|
69 |
String[] comboItems = new String[orderedTerms.size()]; |
|
70 |
int count = 0; |
|
71 |
for(String termMessage:orderedTerms.values()){ |
|
72 |
comboItems[count] = termMessage; |
|
73 |
count++; |
|
74 |
} |
|
75 |
|
|
70 |
//derivate type combo |
|
76 | 71 |
enumTermComboController = new EnumTermComboController<SpecimenOrObservationType>(derivateSearchComposite.getComboDerivateType(), null, null, SpecimenOrObservationType.class, 0); |
77 | 72 |
enumTermComboController.setSelection(SpecimenOrObservationType.Unknown); |
78 | 73 |
|
74 |
//add listeners |
|
79 | 75 |
derivateSearchComposite.getSearchField().addListener(SWT.KeyDown, this); |
80 | 76 |
derivateSearchComposite.getButtonSearch().addListener(SWT.Selection, this); |
77 |
derivateSearchComposite.getBtnBrowseTaxa().addListener(SWT.Selection, this); |
|
81 | 78 |
|
79 |
|
|
80 |
//result table |
|
82 | 81 |
TableViewer resultViewer = derivateSearchComposite.getResultViewer(); |
83 | 82 |
resultViewer.setContentProvider(new ArrayContentProvider()); |
84 | 83 |
labelProvider = new DerivateLabelProvider(); |
... | ... | |
114 | 113 |
|
115 | 114 |
configurator.setTitleSearchString(derivateSearchComposite.getSearchField().getText()); |
116 | 115 |
SpecimenOrObservationType type = enumTermComboController.getSelection(); |
116 |
|
|
117 |
//filter by taxon |
|
118 |
//TODO implement findOccurrencesByTaxon() |
|
119 |
|
|
117 | 120 |
//filter by specimen type |
118 | 121 |
List<SpecimenOrObservationBase> results = CdmStore.getSearchManager().findOccurrencesByType(configurator, type); |
122 |
|
|
119 | 123 |
//filter out assigned specimens |
120 | 124 |
if(derivateSearchComposite.getBtnFilterUndeterminedSpecimen().getSelection()){ |
121 | 125 |
List<SpecimenOrObservationBase> specimensWithNoDetermination = new ArrayList<SpecimenOrObservationBase>(); |
... | ... | |
139 | 143 |
|| (eventSource == derivateSearchComposite.getSearchField() && event.keyCode == SWT.CR)){ |
140 | 144 |
searchDerivates(); |
141 | 145 |
} |
146 |
else if(eventSource==derivateSearchComposite.getBtnBrowseTaxa()){ |
|
147 |
selectedTaxon = SelectionDialogFactory.getSelectionFromDialog(Taxon.class, derivateSearchView.getSite().getShell(), derivateSearchView.getConversationHolder(), null); |
|
148 |
if(selectedTaxon!=null){ |
|
149 |
derivateSearchComposite.getTextTaxonName().setText(selectedTaxon.getTitleCache()); |
|
150 |
} |
|
151 |
} |
|
142 | 152 |
} |
143 | 153 |
|
144 | 154 |
/** |
... | ... | |
159 | 169 |
derivateSearchComposite.getSearchField().setText(""); |
160 | 170 |
enumTermComboController.setSelection(SpecimenOrObservationType.Unknown); |
161 | 171 |
derivateSearchComposite.getComboDerivateType().deselectAll(); |
172 |
selectedTaxon = null; |
|
162 | 173 |
} |
163 | 174 |
|
164 | 175 |
public TableViewer getResultViewer() { |
Also available in: Unified diff