Project

General

Profile

« Previous | Next » 

Revision 208a9050

Added by Andreas Kohlbecker over 11 years ago

merging in latest changes from trunk, up to r15854 (editor starts without issues)

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueSection.java
10 10

  
11 11
package eu.etaxonomy.taxeditor.ui.section.name;
12 12

  
13
import java.util.ArrayList;
13 14
import java.util.Collection;
15
import java.util.List;
14 16

  
15 17
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
16 18
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
......
58 60

  
59 61
	/** {@inheritDoc} */
60 62
	@Override
61
	public Collection<DescriptionElementBase> getCollection(
62
			TaxonNameBase entity) {
63
		return getTaxonNameDescription(entity).getElements();
63
	public Collection<DescriptionElementBase> getCollection(TaxonNameBase entity) {
64
		Collection<DescriptionElementBase> result = new ArrayList<DescriptionElementBase>();
65
		List<TaxonNameDescription> descriptions = getTaxonNameDescriptions(entity);
66
		for (TaxonNameDescription desc : descriptions){
67
			result.addAll(desc.getElements());
68
		}
69
		return result;
70
//OLD:	return getTaxonNameDescription(entity).getElements();
64 71
	}
65 72

  
66 73

  
......
80 87
	/** {@inheritDoc} */
81 88
	@Override
82 89
	public void addElement(DescriptionElementBase element) {
90
		//for simplification we always use the first description to add elements here
83 91
		getTaxonNameDescription(getEntity()).addElement(element);
84 92
	}
85 93

  
86 94
	/** {@inheritDoc} */
87 95
	@Override
88 96
	public void removeElement(DescriptionElementBase element) {
89
		getTaxonNameDescription(getEntity()).removeElement(element);
97
		List<TaxonNameDescription> descriptions = getTaxonNameDescriptions(getEntity());
98
		for (TaxonNameDescription desc : descriptions){
99
			desc.removeElement(element);
100
		} 
90 101
	}
91 102

  
92 103
	/** {@inheritDoc} */
......
96 107
		setEntity(name);
97 108
	}
98 109
	
110
	/**
111
	 * NOTE: returns first description
112
	 * @param name
113
	 * @return
114
	 */
99 115
	private TaxonNameDescription getTaxonNameDescription(TaxonNameBase name){
100
		// FIXME does not handle multiple name descriptions at the moment
101 116
		if(name.getDescriptions().size() == 0){
102 117
			name.addDescription(TaxonNameDescription.NewInstance(name));
103 118
		}
104 119
		return (TaxonNameDescription) name.getDescriptions().iterator().next();
105 120
	}
121
	
122
	/**
123
	 * Try to fix FIXME in {@link #getTaxonNameDescription(TaxonNameBase)}
124
	 * @param name
125
	 * @return
126
	 */
127
	private List<TaxonNameDescription> getTaxonNameDescriptions(TaxonNameBase<?,?> name){
128
		List<TaxonNameDescription> result = new ArrayList<TaxonNameDescription>();
129
		if(name.getDescriptions().size() == 0){
130
			name.addDescription(TaxonNameDescription.NewInstance(name));
131
		}
132
		for (TaxonNameDescription desc : name.getDescriptions()){
133
			result.add(desc);
134
		}
135
		return result;
136
	}
106 137

  
107 138
	/* (non-Javadoc)
108 139
	 * @see eu.etaxonomy.taxeditor.section.ITaxonDetailSection#getTaxon(eu.etaxonomy.cdm.model.taxon.TaxonBase)

Also available in: Unified diff