import org.apache.commons.collections4.map.LinkedMap;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.di.Persist;
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
import org.eclipse.nebula.widgets.nattable.data.ListDataProvider;
import org.eclipse.nebula.widgets.nattable.edit.EditConfigAttributes;
import org.eclipse.nebula.widgets.nattable.edit.editor.IComboBoxDataProvider;
-import org.eclipse.nebula.widgets.nattable.export.command.ExportCommand;
import org.eclipse.nebula.widgets.nattable.export.command.ExportCommandHandler;
import org.eclipse.nebula.widgets.nattable.extension.glazedlists.GlazedListsEventLayer;
import org.eclipse.nebula.widgets.nattable.extension.glazedlists.GlazedListsSortModel;
import ca.odell.glazedlists.SortedList;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.description.CategoricalData;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
+import eu.etaxonomy.cdm.model.description.QuantitativeData;
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.description.WorkingSet;
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.categorical.CategoricalDataCellEditor;
import eu.etaxonomy.taxeditor.editor.workingSet.matrix.categorical.CategoricalDataDisplayConverter;
//get features/columns stored in working set
FeatureTree tree = workingSet.getDescriptiveSystem();
+ if(tree==null){
+ MessagingUtils.informationDialog("Initialization failed", "Working set has no feature tree set.");
+ return;
+ }
List<Feature> features = new ArrayList<>(tree.getDistinctFeatures());
Collections.sort(features);
btnExcelExport.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- natTable.doCommand(
- new ExportCommand(
- natTable.getConfigRegistry(),
- natTable.getShell()));
+ Taxon taxon = Taxon.NewInstance(TaxonName.NewInstance(NomenclaturalCode.ICNAFP, Rank.GENUS(), "Generatus", null, null, null, null, null, null, null), null);
+ TaxonDescription description = TaxonDescription.NewInstance(taxon);
+ new SpecimenGenerator().generate().forEach(specimen ->
+ {
+ IndividualsAssociation association = IndividualsAssociation.NewInstance(specimen);
+ association.setFeature(Feature.SPECIMEN());
+ description.addElement(association);
+ });
+ CdmStore.getService(ITaxonService.class).save(taxon);
+ save(new NullProgressMonitor());
+// natTable.doCommand(
+// new ExportCommand(
+// natTable.getConfigRegistry(),
+// natTable.getShell()));
}
});
for (SpecimenDescription specimenDescription : descriptions) {
Set<Feature> specimenDescriptionFeatures = new HashSet<>();
for (DescriptionElementBase descriptionElementBase : specimenDescription.getElements()) {
- specimenDescriptionFeatures.add(descriptionElementBase.getFeature());
+ specimenDescriptionFeatures.add(HibernateProxyHelper.deproxy(descriptionElementBase.getFeature(), Feature.class));
+ }
+ for(Feature feature:features){
+ eu.etaxonomy.cdm.model.description.Character character = HibernateProxyHelper.deproxy(feature, eu.etaxonomy.cdm.model.description.Character.class);
+ System.out.println();
+
}
if(specimenDescriptionFeatures.containsAll(features)){
return specimenDescription;
//Create new specimen description if no match was found
setDirty();
SpecimenDescription newDesription = SpecimenDescription.NewInstance(specimen);
+ this.indexToFeatureMap.values().forEach(feature ->
+ {
+ if(feature.isSupportsCategoricalData()){
+ newDesription.addElement(CategoricalData.NewInstance(feature));
+ }
+ else if(feature.isSupportsQuantitativeData()){
+ newDesription.addElement(QuantitativeData.NewInstance(feature));
+ }
+ });
newDesription.setTitleCache("WorkingSet "+workingSet.getLabel()+" "+newDesription.generateTitle(), true);
return newDesription;