import java.util.Collections;
import java.util.List;
import java.util.Set;
+import java.util.UUID;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
+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;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
import eu.etaxonomy.taxeditor.featuretree.AvailableFeaturesWizard;
import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.AbstractEntityCollectionElementWizardPage;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
private TermComboElement<Feature> comboFeature;
private Button btnSelectState;
- private TermNode<? extends Feature> termNode;
+ private TermNodeDto<? extends Feature> termNode;
private State selectedState = null;
private List<TermVocabularyDto> stateVocabulariesDtos = new ArrayList<>();
private Text text;
- protected FeatureStateWizardPage(String pageName, TermNode<? extends Feature> termNode, CdmFormFactory formFactory) {
+ protected FeatureStateWizardPage(String pageName, TermNodeDto<? extends Feature> termNode, CdmFormFactory formFactory) {
super(pageName, formFactory);
this.termNode = termNode;
setTitle("Create Feature State");
if(additionalTerms.size()==1){
selectedState = (State) additionalTerms.iterator().next();
text.setText(selectedState.getLabel());
+ FeatureStateWizardPage.this.getWizard().getContainer().updateButtons();
}
}
}
private void updateFeatureCombo(){
List<Feature> features = new ArrayList<>();
- TermNode<? extends Feature> parent = termNode.getParent();
- while(parent!=null){
- Feature parentTerm = parent.getTerm();
- if(parentTerm!=null
- && parentTerm.isSupportsCategoricalData()
- && !parentTerm.getSupportedCategoricalEnumerations().isEmpty()){
- features.add(parentTerm);
+ UUID parentUuid = termNode.getParentUuid();
+ if (parentUuid != null){
+ TermNode<? extends Feature> parent = CdmStore.getService(ITermNodeService.class).load(parentUuid);
+ while(parent!=null){
+ Feature parentTerm = parent.getTerm();
+ if(parentTerm!=null
+ && parentTerm.isSupportsCategoricalData()
+ && !parentTerm.getSupportedCategoricalEnumerations().isEmpty()){
+ features.add(parentTerm);
+ }
+ parent = parent.getParent();
}
- parent = parent.getParent();
}
comboFeature.setTerms(features);
if(features.size()==1){
Feature feature = features.get(0);
comboFeature.setSelection(feature);
updateStateCombo(feature);
+ comboFeature.removeEmptyElement();
}
}
if(feature!=null){
Set<TermVocabulary<State>> stateVocabularies = feature.getSupportedCategoricalEnumerations();
for (TermVocabulary<State> termVocabulary : stateVocabularies) {
- stateVocabulariesDtos.add(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType()));
+ stateVocabulariesDtos.add(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType(), termVocabulary.getTitleCache(), termVocabulary.isAllowDuplicates(), termVocabulary.isOrderRelevant(), termVocabulary.isFlat()));
}
}
}
if(event.getSource()==comboFeature){
Feature feature = comboFeature.getSelection();
updateStateCombo(feature);
+ comboFeature.removeEmptyElement();
}
getWizard().getContainer().updateButtons();
}