Merge branch 'develop' into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / key / KeyEditorDataChangeBehaviour.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.editor.key;
12
13 import java.util.Vector;
14
15 import eu.etaxonomy.cdm.model.description.PolytomousKey;
16 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
17 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
18 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
19 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
20 import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
21
22 /**
23 * @author n.hoffmann
24 * @created May 5, 2011
25 * @version 1.0
26 */
27 public class KeyEditorDataChangeBehaviour extends AbstractDataChangeBehaviour {
28
29 private final KeyEditor source;
30 private PolytomousKeyEditorInput input;
31
32 /**
33 * @param keyEditor
34 */
35 public KeyEditorDataChangeBehaviour(KeyEditor keyEditor) {
36 source = keyEditor;
37 }
38
39 /* (non-Javadoc)
40 * @see eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour#reactOnDataChange(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
41 */
42 @Override
43 public void reactOnDataChange(CdmDataChangeMap changeEvents) {
44 input = (PolytomousKeyEditorInput) source.getEditorInput();
45
46 if(changeEvents.sizeByEventType(EventType.UPDATE) > 0){
47 reactOnUpdate(changeEvents.getEvents(EventType.UPDATE));
48 }
49 }
50
51 /** {@inheritDoc} */
52 @Override
53 public void reactOnUpdate(Vector<CdmDataChangeEvent> events){
54
55 for(CdmDataChangeEvent event : events){
56
57 // update editor title
58 if(event.getEntity() instanceof PolytomousKey){
59 if(input.getKey().equals(event.getEntity())){
60 // set the name of the editor window
61 source.setPartName();
62 }
63 }
64 }
65 }
66 }