Project

General

Profile

Download (2.96 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.editor.name.e4.container;
5

    
6
import java.util.ArrayList;
7
import java.util.List;
8

    
9
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
10
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
11
import eu.etaxonomy.cdm.model.taxon.Taxon;
12
import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
13

    
14
/**
15
 *
16
 * @author pplitzner
17
 * @date Aug 24, 2017
18
 *
19
 */
20
public class ContainerFactoryE4 {
21

    
22
	public static void createOrUpdateAcceptedTaxonsHomotypicGroup(
23
	        TaxonNameEditorE4 taxonNameEditor) {
24

    
25
		if(taxonNameEditor.getAcceptedGroup() == null){
26
			taxonNameEditor.setAcceptedGroup(new AcceptedGroupE4(taxonNameEditor, taxonNameEditor.getTaxon().getHomotypicGroup()));
27
		}
28
		else{
29
			taxonNameEditor.getAcceptedGroup().redraw(taxonNameEditor.getTaxon().getHomotypicGroup());
30
		}
31

    
32
	}
33

    
34
	public static void createOrUpdateHeterotypicSynonymyGroups(
35
			TaxonNameEditorE4 taxonNameEditor) {
36
		List<HomotypicalSynonymGroupE4> retainedGroups = new ArrayList<>();
37

    
38
		List<HomotypicalSynonymGroupE4> heterotypicSynonymGroups = taxonNameEditor.getHeterotypicSynonymGroups();
39

    
40
		if (heterotypicSynonymGroups != null) {
41

    
42
			for(HomotypicalSynonymGroupE4 group : heterotypicSynonymGroups){
43
				retainedGroups.add(group);
44
			}
45
		}
46

    
47
		for(HomotypicalGroup homotypicalGroup : taxonNameEditor.getTaxon().getHeterotypicSynonymyGroups()){
48
		    homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
49
		    HomotypicalSynonymGroupE4 group = createOrUpdateHeterotypicSynonymyGroup(taxonNameEditor, homotypicalGroup);
50

    
51
			retainedGroups.remove(group);
52
		}
53

    
54
		for(HomotypicalSynonymGroupE4 retainedGroup : retainedGroups){
55
			taxonNameEditor.removeGroup(retainedGroup);
56
		}
57
	}
58

    
59

    
60
	public static HomotypicalSynonymGroupE4 createOrUpdateHeterotypicSynonymyGroup(
61
	        TaxonNameEditorE4 taxonNameEditor, HomotypicalGroup homotypicalGroup){
62
	    HomotypicalSynonymGroupE4 group = null;
63
		if(taxonNameEditor.getHomotypicalGroupContainer(homotypicalGroup) == null){
64
			group = new HomotypicalSynonymGroupE4(taxonNameEditor, homotypicalGroup);
65
			taxonNameEditor.addHeterotypicSynonymGroup(group);
66
			if(taxonNameEditor.getMisappliedGroup() != null){
67
				group.getControl().moveAbove(taxonNameEditor.getMisappliedGroup().getControl());
68
			}
69
		}
70
		else{
71
			group = taxonNameEditor.getHomotypicalGroupContainer(homotypicalGroup);
72
			group.redraw(homotypicalGroup);
73
		}
74

    
75
		return group;
76
	}
77

    
78
	public static void createOrUpdateMisapplicationsGroup(
79
	        TaxonNameEditorE4 taxonNameEditor) {
80
		MisappliedGroupE4 group = taxonNameEditor.getMisappliedGroup();
81
		Taxon taxon = HibernateProxyHelper.deproxy(taxonNameEditor.getTaxon(), Taxon.class);
82
		if(taxon.getMisappliedNames(true).isEmpty() && taxon.getProParteSynonyms().isEmpty()){
83
			taxonNameEditor.removeGroup(group);
84
			taxonNameEditor.setMisapplicationsGroup(null);
85
		}else{
86
			if(group == null){
87
				taxonNameEditor.setMisapplicationsGroup(new MisappliedGroupE4(taxonNameEditor));
88
			}else{
89
				group.redraw();
90
			}
91
		}
92

    
93
	}
94

    
95
}
(7-7/11)