Project

General

Profile

Download (2.39 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.editor.view.checklist.edit;
2

    
3
import java.util.List;
4

    
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;
14

    
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;
19

    
20
public final class RankEditingSupport extends EditingSupport{
21

    
22
    private ComboBoxViewerCellEditor cellEditor = null;
23
    private final TableViewer viewer;
24
    private final ChecklistEditor editor;
25

    
26

    
27
    private static final Logger logger = Logger.getLogger(RankEditingSupport.class);
28

    
29
    public RankEditingSupport(TableViewer viewer, ChecklistEditor checklistEditor) {
30
        super(viewer);
31
        this.viewer = viewer;
32
        editor = checklistEditor;
33
        cellEditor = new ComboBoxViewerCellEditor((Composite) viewer.getControl(), SWT.READ_ONLY);
34
        cellEditor.setLabelProvider(new LabelProvider());
35
        cellEditor.setContentProvider(new ArrayContentProvider());
36
        //TODO set input
37
        List<Rank> input = CdmStore.getTermManager().getPreferredTerms(Rank.class);
38
        cellEditor.setInput(input);
39
    }
40

    
41
    @Override
42
    protected CellEditor getCellEditor(Object element) {
43
        return cellEditor;
44
    }
45

    
46
    @Override
47
    protected boolean canEdit(Object element) {
48
        return true;
49
    }
50

    
51
    @Override
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;
56
            return rank;
57
        }
58
        return null;
59
    }
60

    
61
    @Override
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);
68
            viewer.refresh();
69
            editor.setDirty(true);
70
            editor.changed(element);
71
        }
72
    }
73

    
74
}
(2-2/2)