93e34aa6d9338308200de241b59bfdf58687a1d6
[taxeditor.git] / taxeditor-navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / TaxonNavigatorDataChangeBehavior.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9
10 package eu.etaxonomy.taxeditor.navigation.navigator;
11
12 import org.apache.log4j.Logger;
13
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;
18
19 /**
20 * @author n.hoffmann
21 * @created 01.04.2009
22 * @version 1.0
23 */
24 public class TaxonNavigatorDataChangeBehavior extends AbstractDataChangeBehaviour implements
25 IDataChangeBehavior {
26 private static final Logger logger = Logger
27 .getLogger(TaxonNavigatorDataChangeBehavior.class);
28
29 private TaxonNavigator source;
30
31 public TaxonNavigatorDataChangeBehavior(TaxonNavigator taxonNavigator) {
32 source = taxonNavigator;
33 }
34
35
36 /* (non-Javadoc)
37 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
38 */
39 public boolean isRelevant(CdmDataChangeMap events) {
40 // react on everything except load
41 if(events.sizeByEventType(EventType.INSERT) > 0){
42 return true;
43 }else if(events.sizeByEventType(EventType.UPDATE) > 0){
44 return true;
45 }else if(events.sizeByEventType(EventType.DELETE) > 0){
46 return true;
47 }else{
48 return false;
49 }
50 }
51
52
53 /* (non-Javadoc)
54 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
55 */
56 public void reactOnDataChange(CdmDataChangeMap events) {
57
58
59 if(isRelevant(events)){
60
61 source.getCommonViewer().refresh();
62
63 logger.info("DataStore update caused a refresh of the taxonomic tree");
64
65 }
66 }
67 }