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
;
13 import org
.eclipse
.ui
.navigator
.CommonViewer
;
15 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeMap
;
16 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeEvent
.EventType
;
17 import eu
.etaxonomy
.taxeditor
.model
.AbstractDataChangeBehaviour
;
18 import eu
.etaxonomy
.taxeditor
.model
.IDataChangeBehavior
;
25 public class TaxonNavigatorDataChangeBehavior
extends AbstractDataChangeBehaviour
implements
27 private static final Logger logger
= Logger
28 .getLogger(TaxonNavigatorDataChangeBehavior
.class);
30 private TaxonNavigator source
;
32 public TaxonNavigatorDataChangeBehavior(TaxonNavigator taxonNavigator
) {
33 source
= taxonNavigator
;
38 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
40 public boolean isRelevant(CdmDataChangeMap events
) {
41 // react on everything except load
42 if(events
.sizeByEventType(EventType
.INSERT
) > 0){
44 }else if(events
.sizeByEventType(EventType
.UPDATE
) > 0){
46 }else if(events
.sizeByEventType(EventType
.DELETE
) > 0){
55 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
57 public void reactOnDataChange(CdmDataChangeMap events
) {
59 if(isRelevant(events
)){
61 CommonViewer viewer
= source
.getCommonViewer();
65 logger
.info("DataStore update caused a refresh of the taxonomic tree");