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
.e4
.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
.e4
.TaxonNameEditorE4
;
27 public abstract class AbstractHomotypicalGroupContainerE4
extends AbstractGroupE4
{
29 private HomotypicalGroup group
;
31 public AbstractHomotypicalGroupContainerE4(TaxonNameEditorE4 editor
, HomotypicalGroup group
) {
38 protected abstract void createSynonymContainer();
40 protected List
<Synonym
> getSynonyms(){
41 Taxon taxon
= getEditor().getTaxon();
42 return taxon
.getSynonymsInGroup(getGroup());
45 public void setGroup(HomotypicalGroup group
) {
49 public void redraw(HomotypicalGroup homotypicalGroup
){
50 if(redrawNeeded(homotypicalGroup
)){
51 setGroup(homotypicalGroup
);
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
);
61 List
<Synonym
> presentSynonyms
= new ArrayList
<Synonym
>();
63 for(AbstractGroupedContainerE4 container
: getGroupedContainers()){
64 if(container
.getData() instanceof Synonym
){
65 presentSynonyms
.add((Synonym
) container
.getData());
69 boolean result
= ! (presentSynonyms
.containsAll(synonyms
) && synonyms
.containsAll(presentSynonyms
));
74 public HomotypicalGroup
getGroup() {