package eu.etaxonomy.taxeditor.ui.dialogs.filteredSelection;
import java.lang.reflect.Field;
-import java.security.acl.LastOwnerException;
import java.text.Collator;
import java.util.Comparator;
import java.util.HashSet;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
initModel();
- if (cdmObject != null) {
- setInitialPattern(getTitle(cdmObject));
+ String objectTitle = getTitle(cdmObject);
+ if (objectTitle != null) {
+ setInitialPattern(objectTitle);
}
- ILabelProvider labelProvider = new FilteredCdmResourceLabelProvider();
- setListLabelProvider(labelProvider);
- setDetailsLabelProvider(labelProvider);
+ setListLabelProvider(createListLabelProvider());
+ setDetailsLabelProvider(createDetailsLabelProvider());
setSelectionHistory(new ResourceSelectionHistory());
}
+ /**
+ * By default, we are returning the standard list label provider
+ *
+ * Override in subclasses if you want different behavior
+ *
+ * @return
+ */
+ protected ILabelProvider createDetailsLabelProvider() {
+ return createListLabelProvider();
+ }
+
+ /**
+ *
+ * @return
+ */
+ protected ILabelProvider createListLabelProvider() {
+ return new FilteredCdmResourceLabelProvider();
+ }
+
/**
* Override in subclasses.
* Will run before initModel()
if (cdmObject instanceof IIdentifiableEntity) {
return ((IIdentifiableEntity) cdmObject).getTitleCache();
}
- return null;
+ throw new IllegalArgumentException("Generic method only" +
+ " supports cdmObject of type IIdentifiableEntity." +
+ " Please implement specific method in subclass.");
}
// this also is not the nicest way to do it.
// I am still amazed, that FilteredSelectionDialog does not offer any methods to change its data
// once it was opened. Am I doing it wrong?
- ((Text) getPatternControl()).setText(getTitle(cdmObject));
+ String pattern = getTitle(cdmObject);
+ ((Text) getPatternControl()).setText(pattern);
}
/* (non-Javadoc)