+import java.text.Collator;
+import java.util.Comparator;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.ListenerList;
import org.eclipse.jface.viewers.IColorProvider;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog.FilteredCdmResourceLabelProvider;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsFilter;
import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsListSeparator;
/**
return abbrevTitleCache;
}
};
+
+ /** {@inheritDoc} */
+ @Override
+ protected ItemsFilter createFilter() {
+ return new ItemsFilter() {
+
+ /**
+ * Always returns false to enforce refiltering even if the pattern is equal
+ */
+ @Override
+ public boolean equalsFilter(ItemsFilter filter) {
+ return false;
+ }
+
+ @Override
+ public boolean isConsistentItem(Object item) {
+ return false;
+ }
+
+ @Override
+ public boolean matchItem(Object item) {
+ String text = null;
+ if(item instanceof UuidAndTitleCache){
+ text = ((UuidAndTitleCache) item).getAbbrevTitleCache();
+ }else if(item instanceof String){
+ text = (String) item;
+ }
+ return text != null ? matches(text) : false;
+ }
+
+ };
+ }
+
+ @Override
+ protected Comparator getItemsComparator() {
+ return new Comparator<UuidAndTitleCache>() {
+ @Override
+ public int compare(UuidAndTitleCache entity1,
+ UuidAndTitleCache entity2) {
+ Collator collator = Collator.getInstance();
+ return collator.compare(entity1.getAbbrevTitleCache(), entity2.getAbbrevTitleCache());
+ }
+ };
+ }
+
}
package eu.etaxonomy.taxeditor.ui.dialog.selection;
+import java.text.Collator;
+import java.util.Comparator;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.ListenerList;
import org.eclipse.jface.viewers.IColorProvider;
public boolean matchItem(Object item) {
String text = null;
if(item instanceof UuidAndTitleCache){
- text = ((UuidAndTitleCache) item).getAbbrevTitleCache();
+ if (((UuidAndTitleCache) item).getAbbrevTitleCache() != null){
+ text = ((UuidAndTitleCache) item).getAbbrevTitleCache();
+ } else{
+ text = ((UuidAndTitleCache) item).getTitleCache();
+ }
}else if(item instanceof String){
text = (String) item;
}
UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
String titleCache = uuidAndTitleCache.getTitleCache();
String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
+ if (abbrevTitleCache == null){
+ abbrevTitleCache = "no abbrev title available";
+ }
abbrevTitleCache += " - " + titleCache;
if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){
abbrevTitleCache += " ["+uuidAndTitleCache.getId()+"]";
return abbrevTitleCache;
}
};
+
+ @Override
+ protected Comparator getItemsComparator() {
+ return new Comparator<UuidAndTitleCache>() {
+ @Override
+ public int compare(UuidAndTitleCache entity1,
+ UuidAndTitleCache entity2) {
+ Collator collator = Collator.getInstance();
+ String compareString1 = null;
+ if (entity1.getAbbrevTitleCache() == null){
+ compareString1 = entity1.getTitleCache();
+ }else{
+ compareString1 = entity1.getAbbrevTitleCache();
+ }
+ String compareString2 = null;
+ if (entity2.getAbbrevTitleCache() == null){
+ compareString2 = entity2.getTitleCache();
+ }else{
+ compareString2 = entity2.getAbbrevTitleCache();
+ }
+ return collator.compare(compareString1, compareString2);
+ }
+ };
+ }