import java.util.Set;
import org.apache.commons.collections4.map.LinkedMap;
+import org.eclipse.core.runtime.ICoreRunnable;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
+import ca.odell.glazedlists.BasicEventList;
import ca.odell.glazedlists.EventList;
-import ca.odell.glazedlists.GlazedLists;
import ca.odell.glazedlists.SortedList;
import ca.odell.glazedlists.TreeList;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
for (SpecimenOrObservationBase specimen : specimens) {
SpecimenDescription description = getDescriptionForWorkingSet(specimen);
if(!workingSet.getDescriptions().contains(description)){
- CharacterMatrix.this.descriptions.add(new RowWrapper(description));
+ CharacterMatrix.this.descriptions.add(new RowWrapper(description, workingSet));
workingSet.addDescription(description);
hasAdded = true;
}
categoricalFeatureToStateMap.put(feature, supportedStates);
}
});
- descriptions = GlazedLists.eventList(getDescriptions(workingSet));
+ descriptions = new BasicEventList<>();
}
}
- private List<RowWrapper> getDescriptions(WorkingSet workingSet) {
- List<RowWrapper> rowWrappers = new ArrayList<>();
- Set<DescriptionBase> wsDescriptions = workingSet.getDescriptions();
- for (DescriptionBase descriptionBase : wsDescriptions) {
- if(descriptionBase instanceof SpecimenDescription){
- rowWrappers.add(new RowWrapper((SpecimenDescription) descriptionBase));
+
+ public void loadDescriptions(WorkingSet workingSet) {
+ Job job = Job.create("Load character data", (ICoreRunnable) monitor -> {
+ List<RowWrapper> rowWrappers = new ArrayList<>();
+ Set<DescriptionBase> wsDescriptions = workingSet.getDescriptions();
+ for (DescriptionBase descriptionBase : wsDescriptions) {
+ if(descriptionBase instanceof SpecimenDescription){
+ CharacterMatrix.this.descriptions.add(new RowWrapper((SpecimenDescription) descriptionBase, workingSet));
+ }
}
- }
- return rowWrappers;
+ });
+ job.schedule();
}
public List<State> getSupportedStatesForCategoricalFeature(Feature feature){