1 package eu
.etaxonomy
.taxeditor
.editor
.view
.checklist
.edit
;
5 import org
.apache
.log4j
.Logger
;
6 import org
.eclipse
.jface
.viewers
.ArrayContentProvider
;
7 import org
.eclipse
.jface
.viewers
.CellEditor
;
8 import org
.eclipse
.jface
.viewers
.ComboBoxViewerCellEditor
;
9 import org
.eclipse
.jface
.viewers
.EditingSupport
;
10 import org
.eclipse
.jface
.viewers
.LabelProvider
;
11 import org
.eclipse
.jface
.viewers
.TableViewer
;
12 import org
.eclipse
.swt
.SWT
;
13 import org
.eclipse
.swt
.widgets
.Composite
;
15 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
17 import eu
.etaxonomy
.taxeditor
.editor
.view
.checklist
.ChecklistEditor
;
18 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
20 public final class RankEditingSupport
extends EditingSupport
{
22 private ComboBoxViewerCellEditor cellEditor
= null;
23 private final TableViewer viewer
;
24 private final ChecklistEditor editor
;
27 private static final Logger logger
= Logger
.getLogger(RankEditingSupport
.class);
29 public RankEditingSupport(TableViewer viewer
, ChecklistEditor checklistEditor
) {
32 editor
= checklistEditor
;
33 cellEditor
= new ComboBoxViewerCellEditor((Composite
) viewer
.getControl(), SWT
.READ_ONLY
);
34 cellEditor
.setLabelProvider(new LabelProvider());
35 cellEditor
.setContentProvider(new ArrayContentProvider());
37 List
<Rank
> input
= CdmStore
.getTermManager().getPreferredTerms(Rank
.class);
38 cellEditor
.setInput(input
);
42 protected CellEditor
getCellEditor(Object element
) {
47 protected boolean canEdit(Object element
) {
52 protected Object
getValue(Object element
) {
53 if (element
instanceof Taxon
) {
54 Taxon taxon
= (Taxon
)element
;
55 Rank rank
= (taxon
.getName().getRank() != null)?taxon
.getName().getRank() : null;
62 protected void setValue(Object element
, Object value
) {
63 if (element
instanceof Taxon
&& value
instanceof Rank
) {
64 Taxon taxon
= (Taxon
)element
;
65 Rank rank
= (Rank
) value
;
66 taxon
.getName().setRank(rank
);
67 viewer
.update(element
, null);
69 editor
.setDirty(true);
70 editor
.changed(element
);