}
public void setRankMin(Rank min) {
- comboRankMin.setTerm(min);
+ comboRankMin.setElement(min);
}
public void setRankMax(Rank max) {
- comboRankMax.setTerm(max);
+ comboRankMax.setElement(max);
}
public FeatureTreeEditorComposite getFeatureTreeEditorComposite() {
--- /dev/null
+/**
+* Copyright (C) 2017 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.combo;
+
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ *
+ * Abstract generic combo.
+ *
+ * @author pplitzner
+ * @since Apr 10, 2018
+ *
+ * @param <T> the type of the elements to show in the combo
+ */
+public abstract class AbstractComboComposite<T> extends Composite{
+
+ private ComboViewer viewer;
+
+ public AbstractComboComposite(Composite parent, int style){
+ super(parent, style);
+ setLayout(new FillLayout());
+ viewer = new ComboViewer(new CCombo(this, SWT.READ_ONLY | SWT.SINGLE));
+ viewer.setContentProvider(getContentProvider());
+ viewer.setLabelProvider(getLabelProvider());
+ }
+
+ public void setInput(Object input){
+ viewer.setInput(input);
+ }
+
+ public T getSelection(){
+ IStructuredSelection structuredSelection = viewer.getStructuredSelection();
+ if(structuredSelection!=null && !structuredSelection.isEmpty()){
+ return (T) structuredSelection.getFirstElement();
+ }
+ return null;
+ }
+
+ public void setElement(T element){
+ int index = viewer.getCCombo().indexOf(getElementLabel(element));
+ viewer.getCCombo().select(index);
+ }
+
+
+ public void addSelectionChangedListener(ISelectionChangedListener listener){
+ viewer.addSelectionChangedListener(listener);
+ }
+
+ public abstract String getElementLabel(T element);
+ public abstract IStructuredContentProvider getContentProvider();
+ public abstract ILabelProvider getLabelProvider();
+
+}
package eu.etaxonomy.taxeditor.ui.combo;
import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.layout.FillLayout;
* @since Nov 24, 2017
*
*/
-public class TermUuidComboViewer extends Composite{
+public class TermUuidComboViewer extends AbstractComboComposite<DefinedTermBase>{
private ComboViewer viewer;
viewer.setLabelProvider(new TermUuidLabelProvider());
}
- public void setInput(Object input){
- viewer.setInput(input);
+ @Override
+ public String getElementLabel(DefinedTermBase element) {
+ return element.getLabel();
}
- public DefinedTermBase getSelection(){
- IStructuredSelection structuredSelection = viewer.getStructuredSelection();
- if(structuredSelection!=null && !structuredSelection.isEmpty()){
- return (DefinedTermBase) structuredSelection.getFirstElement();
- }
- return null;
+ @Override
+ public IStructuredContentProvider getContentProvider() {
+ return new TermUuidContentProvider();
}
- public void setTerm(DefinedTermBase term){
- int index = viewer.getCCombo().indexOf(term.getLabel());
- viewer.getCCombo().select(index);
- }
-
- public void addSelectionChangedListener(ISelectionChangedListener listener){
- viewer.addSelectionChangedListener(listener);
+ @Override
+ public ILabelProvider getLabelProvider() {
+ return new TermUuidLabelProvider();
}
}
package eu.etaxonomy.taxeditor.ui.combo.taxon;
import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.ui.combo.AbstractComboComposite;
/**
*
* @since Apr 10, 2018
*
*/
-public class TaxonNodeCombo extends Composite{
+public class TaxonNodeCombo extends AbstractComboComposite<TaxonNode>{
private ComboViewer viewer;
viewer.setLabelProvider(new TaxonNodeComboLabelProvider());
}
- public void setInput(Object input){
- viewer.setInput(input);
+ @Override
+ public String getElementLabel(TaxonNode element) {
+ return element.getTaxon().getTitleCache();
}
- public TaxonNode getSelection(){
- IStructuredSelection structuredSelection = viewer.getStructuredSelection();
- if(structuredSelection!=null && !structuredSelection.isEmpty()){
- return (TaxonNode) structuredSelection.getFirstElement();
- }
- return null;
+ @Override
+ public IStructuredContentProvider getContentProvider() {
+ return new TaxonNodeComboContentProvider();
}
- public void setElement(TaxonNode element){
- int index = viewer.getCCombo().indexOf(element.getTaxon().getTitleCache());
- viewer.getCCombo().select(index);
- }
-
- public void addSelectionChangedListener(ISelectionChangedListener listener){
- viewer.addSelectionChangedListener(listener);
+ @Override
+ public ILabelProvider getLabelProvider() {
+ return new TaxonNodeComboLabelProvider();
}
}