2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.editor
.name
.container
;
12 import java
.util
.ArrayList
;
13 import java
.util
.List
;
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
.TaxonNameEditor
;
23 * @created Jan 21, 2011
26 public abstract class AbstractHomotypicalGroupContainer
extends AbstractGroup
{
28 private HomotypicalGroup group
;
33 public AbstractHomotypicalGroupContainer(TaxonNameEditor editor
, HomotypicalGroup group
) {
40 protected abstract void createSynonymContainer();
42 protected List
<Synonym
> getSynonyms(){
43 Taxon taxon
= getEditor().getTaxon();
44 return taxon
.getSynonymsInGroup(getGroup());
48 * @param group the group to set
50 public void setGroup(HomotypicalGroup group
) {
54 public void redraw(HomotypicalGroup homotypicalGroup
){
55 if(redrawNeeded(homotypicalGroup
)){
56 setGroup(homotypicalGroup
);
63 * @param homotypicalGroup
66 protected boolean redrawNeeded(HomotypicalGroup homotypicalGroup
) {
67 Taxon taxon
= getEditor().getTaxon();
68 homotypicalGroup
= HibernateProxyHelper
.deproxy(homotypicalGroup
, HomotypicalGroup
.class);
69 List
<Synonym
> synonyms
= taxon
.getSynonymsInGroup(homotypicalGroup
);
71 List
<Synonym
> presentSynonyms
= new ArrayList
<Synonym
>();
73 for(AbstractGroupedContainer container
: getGroupedContainers()){
74 if(container
.getData() instanceof Synonym
){
75 presentSynonyms
.add((Synonym
) container
.getData());
79 boolean result
= ! (presentSynonyms
.containsAll(synonyms
) && synonyms
.containsAll(presentSynonyms
));
87 public HomotypicalGroup
getGroup() {