Project

General

Profile

« Previous | Next » 

Revision 707b6237

Added by Niels Hoffmann over 12 years ago

Merged with trunk

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java
18 18

  
19 19
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
20 20
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
21
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
22
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
21 23
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
22 24
import eu.etaxonomy.taxeditor.store.StoreUtil;
23 25
import eu.etaxonomy.taxeditor.ui.forms.AbstractCdmFormElement;
......
169 171
			return;
170 172
		}
171 173
		
174
		handleTitleCacheRelevantChange(event);
175
		
172 176
		Object eventSource = event.getSource();
173 177
		
174 178
		if(eventSource instanceof ICdmFormElement){
175 179
			ICdmFormElement eventElement = (ICdmFormElement) eventSource;
176 180
			ICdmFormElement eventElementContainer = eventElement.getParentElement();
181
			
177 182
			if (eventElementContainer == this){
178 183
				if(event instanceof CdmPropertyChangeEvent){
179 184
					if(((CdmPropertyChangeEvent) event).hasException()){
......
181 186
						return;
182 187
					}
183 188
				}
184
				
189
				// call specific handler implementation
185 190
				handleEvent(eventSource);
186
				if(getParentElement() instanceof AbstractCdmDetailSection)
187
					((AbstractCdmDetailSection)getParentElement()).updateTitle();
191
				// refire the event
192
				firePropertyChangeEvent(this, event);
193
				// update possible parents
194
				updateParentSection();
188 195
			}
189 196
		}
190 197
	}
191 198

  
199
	protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
200
		boolean isRelevant = getEntity() instanceof TaxonNameBase || getEntity() instanceof TaxonBase;
201
		isRelevant &= this instanceof AbstractIdentifiableEntityDetailElement; 
202
		
203
		if(isRelevant){
204
			((AbstractIdentifiableEntityDetailElement) this).updateToggleableCacheField();
205
			updateParentSection();
206
		}
207
	}
208
	
209
	private void updateParentSection(){
210
		if(getParentElement() instanceof AbstractCdmDetailSection){
211
			((AbstractCdmDetailSection) getParentElement()).updateTitle();
212
		}
213
	}
214

  
192 215
	/**
193
	 * <p>handleEvent</p>
216
	 * Gets called when the source of the event is a child widget of this widget.
194 217
	 *
195 218
	 * @param eventSource a {@link java.lang.Object} object.
196 219
	 */

Also available in: Unified diff