- fixed TransientObjectException when adding and saving a scope for a TaxonDescripti...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / description / ScopeElement.java
index e72d020348a855f895eea8dfedcc5c413af3db9b..8a576ef93f40c0b6b4d56d82efab4e349ade518a 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -50,7 +51,9 @@ public class ScopeElement extends AbstractEntityCollectionElement<DefinedTerm> {
        @Override
        public void setEntity(DefinedTerm entity) {
                this.entity = entity;
-               combo_scope.setSelection(entity);
+               if(!entity.getLabel().isEmpty()){
+                   combo_scope.setSelection(entity);
+               }
        }
 
        /** {@inheritDoc} */
@@ -62,8 +65,15 @@ public class ScopeElement extends AbstractEntityCollectionElement<DefinedTerm> {
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-
+           DefinedTerm scopeTerm = combo_scope.getSelection();
+           if(eventSource==combo_scope && scopeTerm!=null){
+               if(getParentElement() instanceof ScopeSection){
+                   TaxonDescription taxonDescription = ((ScopeSection)getParentElement()).getEntity();
+                   taxonDescription.removeScope(entity);
+                taxonDescription.addScope(scopeTerm);
+                entity = scopeTerm;
+               }
+           }
        }
 
-
 }