*/
package eu.etaxonomy.taxeditor.ui.combo;
-import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.widgets.TableWrapData;
protected Label label;
- protected final Combo combo;
+ protected final CCombo combo;
public AbstractComboElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
addControl(label);
// create combo
- ComboViewer viewer = new ComboViewer(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY );
- combo = viewer.getCombo();
+ combo = new CCombo(getLayoutComposite(), SWT.READ_ONLY);
addControl(combo);
TableWrapData fill_HORIZONTALLY = LayoutConstants.FILL_HORIZONTALLY();
combo.setLayoutData(fill_HORIZONTALLY);
public void setTermComparator(Comparator<T> termComparator) {
this.termComparator = termComparator;
List<T> termsWithoutNull = terms.subList(1, terms.size());
-
+
populateTerms(termsWithoutNull);
-
+
}
private final TermType termType;
if (termComparator != null) {
Collections.sort(preferredTerms, termComparator);
}
+ terms.addAll(preferredTerms);
+
+ List<String> labels = new ArrayList<>();
for (T term : preferredTerms) {
String label = getLabel(term);
if (label == null) {
}
- combo.add(label);
- terms.add(term);
+ labels.add(label);
i++;
if (selection != null) {
}
}
- if (selection != null && index == 0) {
+ String[] items = labels.toArray(new String[0]);
+ combo.setItems(items);
+
+ if (selection != null && index == 0) {
createTermNotInPreferredTerms(selection);
}
combo.select(index);
+
}
protected List<T> getPreferredTerms(){