Moving editor sources back into trunk
[taxeditor.git] / taxeditor-navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / taxonomictree / TaxonomicTreeViewDataChangeBehaviour.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.taxonomictree;
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 TaxonomicTreeViewDataChangeBehaviour extends AbstractDataChangeBehaviour implements
25 IDataChangeBehavior {
26 private static final Logger logger = Logger
27 .getLogger(TaxonomicTreeViewDataChangeBehaviour.class);
28
29 private TaxonomicTreeView source;
30
31 public TaxonomicTreeViewDataChangeBehaviour(
32 TaxonomicTreeView taxonomicTreeView) {
33 source = taxonomicTreeView;
34 }
35
36
37 /* (non-Javadoc)
38 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
39 */
40 public boolean isRelevant(CdmDataChangeMap events) {
41 // react on everything except load
42 if(events.sizeByEventType(EventType.INSERT) > 0){
43 return true;
44 }else if(events.sizeByEventType(EventType.UPDATE) > 0){
45 return true;
46 }else if(events.sizeByEventType(EventType.DELETE) > 0){
47 return true;
48 }else{
49 return false;
50 }
51 }
52
53
54 /* (non-Javadoc)
55 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
56 */
57 public void reactOnDataChange(CdmDataChangeMap events) {
58
59
60 if(isRelevant(events)){
61
62 source.refresh();
63
64 logger.info("DataStore update caused a refresh of the taxonomic tree");
65
66 }
67 }
68 }