import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.forms.AbstractCdmFormElement;
return;
}
+ handleTitleCacheRelevantChange(event);
+
Object eventSource = event.getSource();
if(eventSource instanceof ICdmFormElement){
}
handleEvent(eventSource);
- if(getParentElement() instanceof AbstractCdmDetailSection)
- ((AbstractCdmDetailSection)getParentElement()).updateTitle();
+
+ updateParentSection();
}
}
}
+ protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
+ boolean isRelevant = getEntity() instanceof TaxonNameBase || getEntity() instanceof TaxonBase;
+ isRelevant &= this instanceof AbstractIdentifiableEntityDetailElement;
+
+ if(isRelevant){
+ ((AbstractIdentifiableEntityDetailElement) this).updateToggleableCacheField();
+ updateParentSection();
+ }
+ }
+
+ private void updateParentSection(){
+ if(getParentElement() instanceof AbstractCdmDetailSection){
+ ((AbstractCdmDetailSection) getParentElement()).updateTitle();
+ }
+ }
+
/**
* <p>handleEvent</p>
*