Revision 353f7dda
Added by Patrick Plitzner about 6 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/SpecimenSelectionDialog.java | ||
---|---|---|
9 | 9 |
package eu.etaxonomy.taxeditor.editor.workingSet.matrix; |
10 | 10 |
|
11 | 11 |
import java.util.ArrayList; |
12 |
import java.util.Arrays; |
|
12 | 13 |
import java.util.Collection; |
13 | 14 |
import java.util.List; |
14 | 15 |
import java.util.UUID; |
... | ... | |
17 | 18 |
|
18 | 19 |
import org.eclipse.jface.dialogs.Dialog; |
19 | 20 |
import org.eclipse.jface.layout.GridDataFactory; |
20 |
import org.eclipse.jface.viewers.IStructuredContentProvider;
|
|
21 |
import org.eclipse.jface.viewers.ArrayContentProvider;
|
|
21 | 22 |
import org.eclipse.jface.viewers.IStructuredSelection; |
22 | 23 |
import org.eclipse.jface.viewers.ITableLabelProvider; |
23 | 24 |
import org.eclipse.jface.viewers.LabelProvider; |
... | ... | |
63 | 64 |
*/ |
64 | 65 |
public class SpecimenSelectionDialog extends Dialog { |
65 | 66 |
|
67 |
private static final List<String> NODE_PROPERTY_PATH = Arrays.asList(new String[] { |
|
68 |
"taxon", |
|
69 |
"taxon.name", |
|
70 |
}); |
|
71 |
|
|
66 | 72 |
private static String TEXT_FILTER_DEFAULT = "Enter text filter"; |
67 | 73 |
|
68 | 74 |
private TableViewer list; |
... | ... | |
149 | 155 |
columnSpecimen.getColumn().setMoveable(true); |
150 | 156 |
table.setHeaderVisible(true); |
151 | 157 |
table.setLinesVisible(true); |
152 |
list.setContentProvider(new SpecimenListContentProvider());
|
|
158 |
list.setContentProvider(new ArrayContentProvider());
|
|
153 | 159 |
list.setLabelProvider(new SpecimenListLabelProvider()); |
154 | 160 |
|
155 | 161 |
//gather specimens |
... | ... | |
189 | 195 |
for (UUID uuid : filteredNodes) { |
190 | 196 |
//TODO implement occurrence service for taxon nodes |
191 | 197 |
// let it return UuidAndTitleCache |
192 |
TaxonNode taxonNode = taxonNodeService.load(uuid); |
|
198 |
TaxonNode taxonNode = taxonNodeService.load(uuid, NODE_PROPERTY_PATH);
|
|
193 | 199 |
Taxon taxon = taxonNode.getTaxon(); |
194 | 200 |
if(taxon!=null){ |
195 | 201 |
FindOccurrencesConfigurator config = new FindOccurrencesConfigurator(); |
... | ... | |
225 | 231 |
return selectedSpecimens; |
226 | 232 |
} |
227 | 233 |
|
228 |
private class SpecimenListContentProvider implements IStructuredContentProvider{ |
|
229 |
@Override |
|
230 |
public Object[] getElements(Object inputElement) { |
|
231 |
return ((List<SpecimenWrapper>) inputElement).stream().filter(wrapper -> |
|
232 |
wrapper.getSpecimen().getDescriptions().stream().noneMatch(description -> |
|
233 |
matrix.getWorkingSet().getDescriptions().contains(description))).toArray(); |
|
234 |
} |
|
235 |
} |
|
236 |
|
|
237 | 234 |
private class SpecimenListLabelProvider extends LabelProvider implements ITableLabelProvider{ |
238 | 235 |
|
239 | 236 |
@Override |
... | ... | |
247 | 244 |
SpecimenWrapper wrapper = (SpecimenWrapper)element; |
248 | 245 |
switch (columnIndex) { |
249 | 246 |
case 0: |
250 |
return wrapper.getTaxonNode().getTaxon().getName().getTitleCache();
|
|
247 |
return wrapper.getTaxonNodeLabel();
|
|
251 | 248 |
case 1: |
252 | 249 |
return wrapper.getSpecimen().getTitleCache(); |
253 | 250 |
default: |
Also available in: Unified diff
ref #7095 Increase performance of specimen selection dialog