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 |
}
|
ref #7283: add identifier string in reference selection if searched for identifier