import org.apache.commons.math3.stat.Frequency;
import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
/**
* @author pplitzner
private Feature feature;
private Frequency frequency;
- private List<State> states;
+ private List<DefinedTermBase<?>> states;
public CategoricalDataHistogram(Feature feature) {
this.feature = feature;
.forEach(state->states.add(state)));
}
- public void addState(State state){
+ public void addState(DefinedTermBase<?> state){
frequency.addValue(state.getLabel());
}
- public long getCount(State state){
+ public long getCount(DefinedTermBase<?> state){
return frequency.getCount(state.getLabel());
}
- public List<State> getStates() {
+ public List<DefinedTermBase<?>> getStates() {
return states;
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
+import java.util.EnumSet;
import java.util.List;
import org.eclipse.jface.util.PropertyChangeEvent;
private Comparator<VOC> vocComparator;
- private final TermType termType;
+ private final EnumSet<TermType> termTypes;
public VocabularyComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, TermType termType, String labelString,
+ ICdmFormElement parentElement, TermType termType, String labelString,
+ VOC selection, int style){
+ this(formFactory, parentElement, EnumSet.of(termType), labelString, selection, style);
+ }
+
+ public VocabularyComboElement(CdmFormFactory formFactory,
+ ICdmFormElement parentElement, EnumSet<TermType> termTypes, String labelString,
VOC selection, int style) {
super(formFactory, parentElement);
- this.termType = termType;
+ this.termTypes = termTypes;
populateTerms(getVocabularies());
}
public VocabularyComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, TermType termType, String labelString,
+ ICdmFormElement parentElement, EnumSet<TermType> termTypes, String label,
TermVocabularyDto selection, int style) {
super(formFactory, parentElement);
- this.termType = termType;
+ this.termTypes = termTypes;
populateTerms(getVocabularies());
}
protected List<VOC> getVocabularies(){
- List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType, null);
+ List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termTypes, null);
return (List<VOC>) list;
}
import java.util.ArrayList;
import java.util.Comparator;
+import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.description.QuantitativeData;
-import eu.etaxonomy.cdm.model.description.State;
import eu.etaxonomy.cdm.model.description.StateData;
import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
}
public <TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>> VocabularyComboElement<TERM, VOC> createVocabularyDtoComboElement(
- TermType termType, String label, TermVocabularyDto selection, ICdmFormElement parentElement, int style) {
- VocabularyComboElement<TERM, VOC> element = new VocabularyComboElement<TERM, VOC>(this, parentElement, termType, label, selection, style);
+ EnumSet<TermType> termTypes, String label, TermVocabularyDto selection, ICdmFormElement parentElement, int style) {
+ VocabularyComboElement<TERM, VOC> element = new VocabularyComboElement<TERM, VOC>(this, parentElement, termTypes, label, selection, style);
adapt(element);
parentElement.addElement(element);
return element;
TermVocabulary<?> termVocabulary = (TermVocabulary<?>)entity;
switch (termVocabulary.getTermType()) {
case State:
- element = new StateVocabularyCollectionElement(this, parentElement, (TermVocabulary<State>) entity, removeListener, backgroundColor, style);
+ element = new StateVocabularyCollectionElement(this, parentElement, termVocabulary, removeListener, backgroundColor, style);
break;
case Modifier:
element = new RecommendedModifierVocabulariesElement(this, parentElement, (TermVocabulary<DefinedTerm>) entity, removeListener, backgroundColor, style);
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.cdm.model.description.State;
import eu.etaxonomy.cdm.model.description.StateData;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
*/
public class StateDataElement extends AbstractEntityCollectionElement<StateData> {
- private TermComboElement<State> combo_state;
+ private TermComboElement<DefinedTermBase<?>> combo_state;
private ModifierSection section_modifiers;
private TextWithLabelElement text_modifyingText;
@Override
public void createControls(ICdmFormElement element, int style) {
if (getEntity() != null){
- List<State> stateTerms = new ArrayList<>();
- Set<TermVocabulary<State>> stateVocabularies = getEntity().getCategoricalData().getFeature().getSupportedCategoricalEnumerations();
- for (TermVocabulary<State> termVocabulary : stateVocabularies) {
- stateTerms.addAll(termVocabulary.getTerms());
+ List<DefinedTermBase<?>> stateTerms = new ArrayList<>();
+ Set<TermVocabulary<?>> stateVocabularies = getEntity().getCategoricalData().getFeature().getSupportedCategoricalEnumerations();
+ for (TermVocabulary<?> termVocabulary : stateVocabularies) {
+ stateTerms.addAll((Set)termVocabulary.getTerms());
}
combo_state = formFactory.createDefinedTermComboElement(stateTerms, element, "State", null, style);
}else{
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.FeatureState;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
*/
public abstract class AbstractApplicableElement extends AbstractEntityCollectionElement<FeatureState> {
- private TermComboElement<State> comboState;
+ private TermComboElement<DefinedTermBase<?>> comboState;
private EntitySelectionElement<Feature> selectFeature;
public AbstractApplicableElement(CdmFormFactory formFactory, AbstractFormSection<?> section, FeatureState entity,
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.cdm.api.service.ITermNodeService;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.FeatureState;
-import eu.etaxonomy.cdm.model.description.State;
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermNode;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
private Button btnSelectState;
private TermNodeDto termNode;
- private State selectedState = null;
+ private DefinedTermBase<?> selectedState = null;
private List<TermVocabularyDto> stateVocabulariesDtos = new ArrayList<>();
private Text text;
if (dialog.open() == IStatus.OK) {
Collection<DefinedTermBase> additionalTerms = wizard.getAdditionalFeatures();
if(additionalTerms.size()==1){
- selectedState = (State) additionalTerms.iterator().next();
+ selectedState = additionalTerms.iterator().next();
text.setText(selectedState.getLabel());
FeatureStateWizardPage.this.getWizard().getContainer().updateButtons();
}
text.setText("");
selectedState = null;
if(feature!=null){
- Set<TermVocabulary<State>> stateVocabularies = feature.getSupportedCategoricalEnumerations();
- for (TermVocabulary<State> termVocabulary : stateVocabularies) {
+ Set<TermVocabulary<? extends DefinedTermBase>> stateVocabularies = feature.getSupportedCategoricalEnumerations();
+ for (TermVocabulary<? extends DefinedTermBase> termVocabulary : stateVocabularies) {
stateVocabulariesDtos.add(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType(), termVocabulary.getTitleCache(), termVocabulary.isAllowDuplicates(), termVocabulary.isOrderRelevant(), termVocabulary.isFlat()));
}
}
}
getWizard().getContainer().updateButtons();
}
-
-}
+}
\ No newline at end of file
import org.eclipse.swt.events.SelectionEvent;\r
import org.eclipse.swt.events.SelectionListener;\r
\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
import eu.etaxonomy.cdm.model.common.Marker;\r
String testString = statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText();\r
if(testString.equals(comboCategory)) {\r
if(statedata.getState() !=null) {\r
- return statedata.getState();\r
+ return CdmBase.deproxy(statedata.getState(), State.class);\r
}\r
}\r
}\r
}\r
}\r
}\r
-\r
}\r
}\r
}\r
import java.util.Collection;
import java.util.Comparator;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
@Override
public TermVocabularyDto createNewElement() {
- TermVocabulary<State> voc = TermVocabulary.NewInstance(TermType.Modifier);
+ TermVocabulary<DefinedTerm> voc = TermVocabulary.NewInstance(TermType.Modifier);
return new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType(), voc.getTitleCache(), voc.isAllowDuplicates(), voc.isOrderRelevant(), voc.isFlat());
}
import org.eclipse.swt.graphics.Color;
import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
* @author pplitzner
* @date Apr 27, 2015
*/
-public class StateVocabularyCollectionElement extends AbstractEntityCollectionElement<TermVocabulary<State>> {
+public class StateVocabularyCollectionElement<T extends DefinedTermBase<T>>
+ extends AbstractEntityCollectionElement<TermVocabulary<T>> {
+ private VocabularyComboElement<T, TermVocabulary<T>> comboStateVocabulary;
- private VocabularyComboElement<State, TermVocabulary<State>> comboStateVocabulary;
-
- public StateVocabularyCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabulary<State> entity,
+ public StateVocabularyCollectionElement(CdmFormFactory formFactory, AbstractFormSection<T> section, TermVocabulary<T> entity,
SelectionListener removeListener, Color backgroundColor, int style) {
super(formFactory, section, entity, removeListener, backgroundColor, style);
}
}
@Override
- public void setEntity(TermVocabulary<State> entity) {
+ public void setEntity(TermVocabulary<T> entity) {
this.entity = entity;
if(entity.getId()!=0 && comboStateVocabulary != null){
comboStateVocabulary.setSelection(entity);
StateVocabularyCollectionSection parentElement = (StateVocabularyCollectionSection) getParentElement();
Feature feature = parentElement.getEntity();
feature.removeSupportedCategoricalEnumeration(entity);
- TermVocabulary<State> vocabulary = comboStateVocabulary.getSelection();
+ TermVocabulary<T> vocabulary = comboStateVocabulary.getSelection();
feature.addSupportedCategoricalEnumeration(vocabulary);
entity = vocabulary;
//update the parent section to re-set the listeners to the persisted measurement unit
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
* @author pplitzner
* @date Apr 27, 2015
*/
-public class StateVocabularyCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<State>> {
+public class StateVocabularyCollectionSection
+ extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<? extends DefinedTermBase>> {
public StateVocabularyCollectionSection(CdmFormFactory formFactory,
ICdmFormElement parentElement, int style) {
}
@Override
- protected Collection<TermVocabulary<State>> getEntityCollection(Feature entity) {
+ protected Collection<TermVocabulary<? extends DefinedTermBase>> getEntityCollection(Feature entity) {
return entity.getSupportedCategoricalEnumerations();
}
@Override
- public Comparator<TermVocabulary<State>> getComparator() {
+ public Comparator<TermVocabulary<? extends DefinedTermBase>> getComparator() {
return new DefaultCdmBaseComparator<>();
}
@Override
public TermVocabulary<State> createNewElement() {
+ //FIXME 10196
return TermVocabulary.NewInstance(TermType.State);
}
@Override
- public void addElement(TermVocabulary<State> element) {
+ public void addElement(TermVocabulary<? extends DefinedTermBase> element) {
//never gets called
}
@Override
- public void removeElement(TermVocabulary<State> element) {
+ public void removeElement(TermVocabulary<? extends DefinedTermBase> element) {
getEntity().removeSupportedCategoricalEnumeration(element);
}
*/
package eu.etaxonomy.taxeditor.ui.section.vocabulary;
+import java.util.EnumSet;
+
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.term.TermVocabulary;
import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
* @author pplitzner
* @date Apr 27, 2015
*/
-public class StateVocabularyDtoCollectionElement extends AbstractEntityCollectionElement<TermVocabularyDto> {
-
+public class StateVocabularyDtoCollectionElement<T extends DefinedTermBase<T>>
+ extends AbstractEntityCollectionElement<TermVocabularyDto> {
- private VocabularyComboElement<State, TermVocabulary<State>> comboStateVocabulary;
+ private VocabularyComboElement<T, TermVocabulary<T>> comboStateVocabulary;
public StateVocabularyDtoCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabularyDto entity,
SelectionListener removeListener, Color backgroundColor, int style) {
@Override
public void createControls(ICdmFormElement element, int style) {
- comboStateVocabulary = formFactory.createVocabularyDtoComboElement(TermType.State, "State vocabulary", null, element, style);
+ //for now we allow State and Structure here
+ comboStateVocabulary = formFactory.createVocabularyDtoComboElement(EnumSet.of(TermType.State, TermType.Structure), "State vocabulary", null, element, style);
if (entity != null){
setEntity(entity);
}
}
}
feature.getSupportedCategoricalEnumerations().remove(remove);
- TermVocabulary<State> vocabulary = comboStateVocabulary.getSelection();
+ TermVocabulary<T> vocabulary = comboStateVocabulary.getSelection();
TermVocabularyDto dto = new TermVocabularyDto(vocabulary.getUuid(), vocabulary.getRepresentations(), vocabulary.getTermType(), vocabulary.getTitleCache(), vocabulary.isAllowDuplicates(), vocabulary.isOrderRelevant(), vocabulary.isFlat());
feature.getSupportedCategoricalEnumerations().add(dto);
entity = dto;
@Override
public TermVocabularyDto createNewElement() {
+ //FIXME 10196
TermVocabulary<State> voc = TermVocabulary.NewInstance(TermType.State);
return new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType(), voc.getTitleCache(), voc.isAllowDuplicates(), voc.isOrderRelevant(), voc.isFlat());
}