4 package eu
.etaxonomy
.taxeditor
.editor
.name
.container
;
6 import java
.util
.ArrayList
;
7 import java
.util
.HashSet
;
11 import eu
.etaxonomy
.cdm
.model
.name
.HomotypicalGroup
;
12 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationship
;
13 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationshipType
;
14 import eu
.etaxonomy
.taxeditor
.editor
.name
.TaxonNameEditor
;
17 * <p>ContainerFactory class.</p>
22 public class ContainerFactory
{
25 * @param taxonNameEditor
27 public static void createOrUpdateAcceptedTaxonsHomotypicGroup(
28 TaxonNameEditor taxonNameEditor
) {
30 if(taxonNameEditor
.getAcceptedGroup() == null){
31 taxonNameEditor
.setAcceptedGroup(new AcceptedGroup(taxonNameEditor
, taxonNameEditor
.getTaxon().getHomotypicGroup()));
34 taxonNameEditor
.getAcceptedGroup().redraw(taxonNameEditor
.getTaxon().getHomotypicGroup());
40 * @param taxonNameEditor
42 public static void createOrUpdateHeterotypicSynonymyGroups(
43 TaxonNameEditor taxonNameEditor
) {
44 List
<HomotypicalSynonymGroup
> retainedGroups
= new ArrayList
<HomotypicalSynonymGroup
>();
46 List
<HomotypicalSynonymGroup
> heterotypicSynonymGroups
= taxonNameEditor
.getHeterotypicSynonymGroups();
48 if (heterotypicSynonymGroups
!= null) {
50 for(HomotypicalSynonymGroup group
: heterotypicSynonymGroups
){
51 retainedGroups
.add(group
);
55 for(HomotypicalGroup homotypicalGroup
: taxonNameEditor
.getTaxon().getHeterotypicSynonymyGroups()){
56 HomotypicalSynonymGroup group
= createOrUpdateHeterotypicSynonymyGroup(taxonNameEditor
, homotypicalGroup
);
58 retainedGroups
.remove(group
);
61 for(HomotypicalSynonymGroup retainedGroup
: retainedGroups
){
62 taxonNameEditor
.removeGroup(retainedGroup
);
67 public static HomotypicalSynonymGroup
createOrUpdateHeterotypicSynonymyGroup(
68 TaxonNameEditor taxonNameEditor
, HomotypicalGroup homotypicalGroup
){
69 HomotypicalSynonymGroup group
= null;
70 if(taxonNameEditor
.getHomotypicalGroupContainer(homotypicalGroup
) == null){
71 group
= new HomotypicalSynonymGroup(taxonNameEditor
, homotypicalGroup
);
72 taxonNameEditor
.addHeterotypicSynonymGroup(group
);
73 if(taxonNameEditor
.getMisappliedGroup() != null){
74 group
.getControl().moveAbove(taxonNameEditor
.getMisappliedGroup().getControl());
78 group
= taxonNameEditor
.getHomotypicalGroupContainer(homotypicalGroup
);
79 group
.redraw(homotypicalGroup
);
86 * @param taxonNameEditor
88 public static void createOrUpdateMisapplicationsGroup(
89 TaxonNameEditor taxonNameEditor
) {
90 MisappliedGroup group
= taxonNameEditor
.getMisappliedGroup();
91 if(taxonNameEditor
.getTaxon().getMisappliedNames().isEmpty()){
92 taxonNameEditor
.removeGroup(group
);
93 taxonNameEditor
.setMisapplicationsGroup(null);
96 taxonNameEditor
.setMisapplicationsGroup(new MisappliedGroup(taxonNameEditor
));