ref #5828 abbrevTitle and titlecache are displayed in nomenclatural selectionDialogs
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / dialog / selection / NomenclaturalReferenceSelectionDialog.java
index 82bbf3482620c2429b4b18f59c6a066648fd14dd..797b3c2dde89bfd45a01ed22c1c4efc088a25cee 100755 (executable)
@@ -1,15 +1,40 @@
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.jface.viewers.IColorProvider;
+import org.eclipse.jface.viewers.IFontProvider;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
+import org.eclipse.ui.internal.WorkbenchImages;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsFilter;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsListSeparator;
 
 public class NomenclaturalReferenceSelectionDialog extends
                ReferenceSelectionDialog {
@@ -37,6 +62,15 @@ public class NomenclaturalReferenceSelectionDialog extends
                model = CdmStore.getService(IReferenceService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern);
        }
        
+       /**
+        *
+        * @return
+        */
+   @Override
+       protected ILabelProvider createListLabelProvider() {
+               return new FilteredCdmResourceAbbrevLabelProvider();
+       }
+       
        /**
         * <p>select</p>
         *
@@ -86,6 +120,26 @@ public class NomenclaturalReferenceSelectionDialog extends
 
                };
        }
+       
+
+       
+       public class FilteredCdmResourceAbbrevLabelProvider extends LabelProvider {
+               @Override
+               public String getText(Object element) {
+                       if (element == null) {
+                               return null;
+                       }
+                       UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
+                       String titleCache = uuidAndTitleCache.getTitleCache();
+                       String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
+                       abbrevTitleCache += " - " + titleCache;
+                       if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){
+                               abbrevTitleCache += " ["+uuidAndTitleCache.getId()+"]";
+                       }
+            return abbrevTitleCache;
+               }
+       };
+
 
 
 }