import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
*/
@Override
public void changed(Object element) {
- if (element instanceof CdmBase) {
+ if(element instanceof DerivedUnitFacade){
+ DerivedUnit derivedUnit = ((DerivedUnitFacade) element).innerDerivedUnit();
+ if(derivedUnit!=null){
+ getEditorInput().addSaveCandidate(derivedUnit);
+ }
+ FieldUnit fieldUnit = ((DerivedUnitFacade) element).innerFieldUnit();
+ if(fieldUnit!=null){
+ getEditorInput().addSaveCandidate(fieldUnit);
+ }
+ }
+ else if (element instanceof CdmBase) {
getEditorInput().addSaveCandidate((CdmBase)element);
}
dirty.setDirty(true);
combo_specorobstype.setEnabled(showSpecimenType);
selection_country = formFactory.createSelectionElement(NamedArea.class, //getConversationHolder(),
formElement, "Country",
- entity.getCountry(), EntitySelectionElement.NOTHING, style);
+ entity.getCountry(), EntitySelectionElement.DELETABLE, style);
if(PreferencesUtil.isCollectingAreaInGeneralSection()){
section_collectingAreas = formFactory.createCollectingAreasDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
@Override
protected void markViewPartDirty() {
if (getInput() instanceof DerivedUnitFacade) {
- DerivedUnitFacade facade = (DerivedUnitFacade) getInput();
- if(facade.innerDerivedUnit()!=null){
- part.changed(facade.innerDerivedUnit());
+ if(part instanceof IDerivedUnitFacadePart){
+ part.changed(getInput());
}
- else if(facade.innerFieldUnit()!=null){
- part.changed(facade.innerFieldUnit());
+ else{
+ DerivedUnitFacade facade = (DerivedUnitFacade) getInput();
+ if(facade.innerDerivedUnit()!=null){
+ part.changed(facade.innerDerivedUnit());
+ }
+ else if(facade.innerFieldUnit()!=null){
+ part.changed(facade.innerFieldUnit());
+ }
}
}
else{