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.TaxonEditor;
|
13
|
|
14
|
/**
|
15
|
*
|
16
|
* @author pplitzner
|
17
|
* @date Aug 24, 2017
|
18
|
*
|
19
|
*/
|
20
|
public class ContainerFactory {
|
21
|
|
22
|
public static void createOrUpdateAcceptedTaxonsHomotypicGroup(
|
23
|
TaxonEditor taxonEditor) {
|
24
|
|
25
|
if(taxonEditor.getAcceptedGroup() == null){
|
26
|
taxonEditor.setAcceptedGroup(new AcceptedGroup(taxonEditor, taxonEditor.getTaxon().getHomotypicGroup()));
|
27
|
}
|
28
|
else{
|
29
|
taxonEditor.getAcceptedGroup().redraw(taxonEditor.getTaxon().getHomotypicGroup());
|
30
|
}
|
31
|
|
32
|
}
|
33
|
|
34
|
public static void createOrUpdateHeterotypicSynonymyGroups(
|
35
|
TaxonEditor taxonEditor) {
|
36
|
List<HomotypicalSynonymGroup> retainedGroups = new ArrayList<>();
|
37
|
|
38
|
List<HomotypicalSynonymGroup> heterotypicSynonymGroups = taxonEditor.getHeterotypicSynonymGroups();
|
39
|
|
40
|
if (heterotypicSynonymGroups != null) {
|
41
|
|
42
|
for(HomotypicalSynonymGroup group : heterotypicSynonymGroups){
|
43
|
retainedGroups.add(group);
|
44
|
}
|
45
|
}
|
46
|
|
47
|
for(HomotypicalGroup homotypicalGroup : taxonEditor.getTaxon().getHeterotypicSynonymyGroups()){
|
48
|
homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
|
49
|
HomotypicalSynonymGroup group = createOrUpdateHeterotypicSynonymyGroup(taxonEditor, homotypicalGroup);
|
50
|
|
51
|
retainedGroups.remove(group);
|
52
|
}
|
53
|
|
54
|
for(HomotypicalSynonymGroup retainedGroup : retainedGroups){
|
55
|
taxonEditor.removeGroup(retainedGroup);
|
56
|
}
|
57
|
}
|
58
|
|
59
|
|
60
|
public static HomotypicalSynonymGroup createOrUpdateHeterotypicSynonymyGroup(
|
61
|
TaxonEditor taxonEditor, HomotypicalGroup homotypicalGroup){
|
62
|
HomotypicalSynonymGroup group = null;
|
63
|
if(taxonEditor.getHomotypicalGroupContainer(homotypicalGroup) == null){
|
64
|
group = new HomotypicalSynonymGroup(taxonEditor, homotypicalGroup);
|
65
|
taxonEditor.addHeterotypicSynonymGroup(group);
|
66
|
if(taxonEditor.getMisappliedGroup() != null){
|
67
|
group.getControl().moveAbove(taxonEditor.getMisappliedGroup().getControl());
|
68
|
}
|
69
|
}
|
70
|
else{
|
71
|
group = taxonEditor.getHomotypicalGroupContainer(homotypicalGroup);
|
72
|
group.redraw(homotypicalGroup);
|
73
|
}
|
74
|
|
75
|
return group;
|
76
|
}
|
77
|
|
78
|
public static void createOrUpdateMisapplicationsGroup(
|
79
|
TaxonEditor taxonEditor) {
|
80
|
MisappliedGroup group = taxonEditor.getMisappliedGroup();
|
81
|
Taxon taxon = HibernateProxyHelper.deproxy(taxonEditor.getTaxon(), Taxon.class);
|
82
|
|
83
|
if(taxon.getMisappliedNames(true).isEmpty() && taxon.getProParteAndPartialSynonyms().isEmpty()){
|
84
|
taxonEditor.removeGroup(group);
|
85
|
taxonEditor.setMisapplicationsGroup(null);
|
86
|
}else{
|
87
|
if(group == null){
|
88
|
taxonEditor.setMisapplicationsGroup(new MisappliedGroup(taxonEditor));
|
89
|
}else{
|
90
|
group.redraw();
|
91
|
}
|
92
|
}
|
93
|
|
94
|
}
|
95
|
|
96
|
public static void setMenuToAllContainers(TaxonEditor taxonEditor){
|
97
|
if (taxonEditor == null) {
|
98
|
return;
|
99
|
}
|
100
|
if (taxonEditor.getAcceptedGroup() != null){
|
101
|
taxonEditor.getAcceptedGroup().setMenuToGroup();
|
102
|
}
|
103
|
if (taxonEditor.getTaxon() != null){
|
104
|
for(HomotypicalGroup homotypicalGroup : taxonEditor.getTaxon().getHeterotypicSynonymyGroups()){
|
105
|
homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
|
106
|
HomotypicalSynonymGroup group = taxonEditor.getHomotypicalGroupContainer(homotypicalGroup);
|
107
|
if (group != null){
|
108
|
group.setMenuToGroup();
|
109
|
}
|
110
|
}
|
111
|
if (taxonEditor.getMisappliedGroup() != null){
|
112
|
taxonEditor.getMisappliedGroup().setMenuToGroup();
|
113
|
}
|
114
|
}
|
115
|
}
|
116
|
|
117
|
}
|