Project

General

Profile

« Previous | Next » 

Revision 1b6b0ad8

Added by Katja Luther over 5 years ago

ref #7283: add identifier string in reference selection if searched for identifier

View differences:

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