2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.navigation
.navigator
;
12 import org
.apache
.log4j
.Logger
;
14 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeMap
;
15 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeEvent
.EventType
;
16 import eu
.etaxonomy
.taxeditor
.store
.model
.AbstractDataChangeBehaviour
;
17 import eu
.etaxonomy
.taxeditor
.store
.model
.IDataChangeBehavior
;
24 public class TaxonNavigatorDataChangeBehavior
extends AbstractDataChangeBehaviour
implements
26 private static final Logger logger
= Logger
27 .getLogger(TaxonNavigatorDataChangeBehavior
.class);
29 private TaxonNavigator source
;
31 public TaxonNavigatorDataChangeBehavior(TaxonNavigator taxonNavigator
) {
32 source
= taxonNavigator
;
37 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
39 public boolean isRelevant(CdmDataChangeMap events
) {
40 // react on everything except load
41 if(events
.sizeByEventType(EventType
.INSERT
) > 0){
43 }else if(events
.sizeByEventType(EventType
.UPDATE
) > 0){
45 }else if(events
.sizeByEventType(EventType
.DELETE
) > 0){
54 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
56 public void reactOnDataChange(CdmDataChangeMap events
) {
59 if(isRelevant(events
)){
61 source
.getCommonViewer().refresh();
63 logger
.info("DataStore update caused a refresh of the taxonomic tree");