Project

General

Profile

Download (2.03 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.editor.name.e4.container;
11

    
12
import java.util.ArrayList;
13
import java.util.List;
14

    
15
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
16
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
17
import eu.etaxonomy.cdm.model.taxon.Synonym;
18
import eu.etaxonomy.cdm.model.taxon.Taxon;
19
import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
20

    
21
/**
22
 *
23
 * @author pplitzner
24
 * @date Aug 24, 2017
25
 *
26
 */
27
public abstract class AbstractHomotypicalGroupContainerE4 extends AbstractGroupE4 {
28

    
29
	private HomotypicalGroup group;
30

    
31
	public AbstractHomotypicalGroupContainerE4(TaxonNameEditorE4 editor, HomotypicalGroup group) {
32
		super(editor);
33
		this.group = group;
34

    
35
		createContent();
36
	}
37

    
38
	protected abstract void createSynonymContainer();
39

    
40
	protected List<Synonym> getSynonyms(){
41
		Taxon taxon = getEditor().getTaxon();
42
		return taxon.getSynonymsInGroup(getGroup());
43
	}
44

    
45
	public void setGroup(HomotypicalGroup group) {
46
		this.group = group;
47
	}
48

    
49
	public void redraw(HomotypicalGroup homotypicalGroup){
50
		if(redrawNeeded(homotypicalGroup)){
51
			setGroup(homotypicalGroup);
52
			redraw();
53
		}
54
	}
55

    
56
	protected boolean redrawNeeded(HomotypicalGroup homotypicalGroup) {
57
		Taxon taxon = getEditor().getTaxon();
58
		homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
59
		List<Synonym> synonyms = taxon.getSynonymsInGroup(homotypicalGroup);
60

    
61
		List<Synonym> presentSynonyms = new ArrayList<Synonym>();
62

    
63
		for(AbstractGroupedContainerE4 container : getGroupedContainers()){
64
			if(container.getData() instanceof Synonym){
65
				presentSynonyms.add((Synonym) container.getData());
66
			}
67
		}
68

    
69
		boolean result = ! (presentSynonyms.containsAll(synonyms) && synonyms.containsAll(presentSynonyms));
70

    
71
		return result;
72
	}
73

    
74
	public HomotypicalGroup getGroup() {
75
		return group;
76
	}
77
}
(3-3/10)