Project

General

Profile

Download (1.93 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(4-4/4)