Revision 1b6b0ad8
Added by Katja Luther over 5 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java | ||
---|---|---|
10 | 10 |
package eu.etaxonomy.taxeditor.ui.dialog.selection; |
11 | 11 |
|
12 | 12 |
import java.util.ArrayList; |
13 |
import java.util.HashMap; |
|
13 | 14 |
import java.util.HashSet; |
14 | 15 |
import java.util.List; |
16 |
import java.util.Map; |
|
15 | 17 |
import java.util.Set; |
16 | 18 |
import java.util.UUID; |
17 | 19 |
|
18 | 20 |
import org.apache.commons.lang.StringUtils; |
21 |
import org.eclipse.jface.viewers.ILabelProvider; |
|
19 | 22 |
import org.eclipse.swt.SWT; |
20 | 23 |
import org.eclipse.swt.events.SelectionAdapter; |
21 | 24 |
import org.eclipse.swt.events.SelectionEvent; |
... | ... | |
27 | 30 |
|
28 | 31 |
import eu.etaxonomy.cdm.api.service.IReferenceService; |
29 | 32 |
import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO; |
33 |
import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO.AlternativeIdentifier; |
|
30 | 34 |
import eu.etaxonomy.cdm.model.reference.Reference; |
35 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
|
31 | 36 |
import eu.etaxonomy.cdm.persistence.query.MatchMode; |
32 | 37 |
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard; |
33 | 38 |
import eu.etaxonomy.taxeditor.newWizard.NewReferenceWizard; |
39 |
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys; |
|
34 | 40 |
import eu.etaxonomy.taxeditor.preference.PreferencesUtil; |
35 | 41 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
36 | 42 |
|
... | ... | |
46 | 52 |
protected static boolean isInReference = false; |
47 | 53 |
private Reference currentReference; |
48 | 54 |
List<String> lastSelectedReferences = null; |
55 |
Map<UUID, AlternativeIdentifier> identifierMap; |
|
49 | 56 |
|
50 | 57 |
/** |
51 | 58 |
* <p>select</p> |
... | ... | |
177 | 184 |
if (model!= null){ |
178 | 185 |
model.clear(); |
179 | 186 |
} |
187 |
identifierMap = new HashMap(); |
|
180 | 188 |
for (IdentifiedEntityDTO dto: list){ |
181 |
|
|
189 |
identifierMap.put(dto.getCdmEntity().getUuid(), dto.getIdentifier()); |
|
182 | 190 |
model.add(dto.getCdmEntity()); |
191 |
|
|
183 | 192 |
} |
184 | 193 |
}else{ |
185 | 194 |
model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern); |
... | ... | |
206 | 215 |
if(cdmObject == null){ |
207 | 216 |
return ""; |
208 | 217 |
}else{ |
209 |
return super.getTitle(cdmObject);
|
|
218 |
return super.getTitle(cdmObject);
|
|
210 | 219 |
} |
211 | 220 |
// }else{ |
212 | 221 |
// return DefaultReferenceCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorship().getTitleCache()); |
... | ... | |
237 | 246 |
fillContentProvider(null); |
238 | 247 |
} |
239 | 248 |
} |
249 |
@Override |
|
250 |
protected ILabelProvider createListLabelProvider() { |
|
251 |
return new FilteredReferenceLabelProvider(); |
|
252 |
} |
|
253 |
|
|
254 |
public class FilteredReferenceLabelProvider extends FilteredCdmResourceLabelProvider { |
|
255 |
@Override |
|
256 |
public String getText(Object element) { |
|
257 |
if (element == null) { |
|
258 |
return null; |
|
259 |
} |
|
260 |
UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element; |
|
261 |
String titleCache = uuidAndTitleCache.getTitleCache(); |
|
262 |
if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){ |
|
263 |
titleCache += " ["+uuidAndTitleCache.getId()+"]"; |
|
264 |
} |
|
265 |
if (isUseIdentifier()){ |
|
266 |
AlternativeIdentifier identifier = identifierMap.get(uuidAndTitleCache.getUuid()); |
|
267 |
titleCache += " (" + identifier.getTypeLabel() +": " + identifier.getIdentifier() + ")"; |
|
268 |
} |
|
269 |
|
|
270 |
return titleCache; |
|
271 |
} |
|
272 |
}; |
|
240 | 273 |
|
241 | 274 |
} |
Also available in: Unified diff
ref #7283: add identifier string in reference selection if searched for identifier