Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.dynform / org.gvsig.tools.dynform.services / src / main / java / org / gvsig / tools / dynform / services / dynformset / simpletable / SimpleTableCellEditor.java @ 1886

History | View | Annotate | Download (2.3 KB)

1
package org.gvsig.tools.dynform.services.dynformset.simpletable;
2

    
3
import java.awt.Component;
4
import java.util.EventObject;
5

    
6
import javax.swing.JTable;
7
import javax.swing.event.CellEditorListener;
8
import javax.swing.table.TableCellEditor;
9

    
10
import org.gvsig.tools.dynform.DynFormFieldDefinition;
11
import org.gvsig.tools.dynform.JDynForm;
12
import org.gvsig.tools.dynform.JDynFormField;
13
import org.gvsig.tools.dynform.spi.DynFormSPIManager;
14
import org.gvsig.tools.dynform.spi.dynformfield.JDynFormFieldFactory;
15
import org.gvsig.tools.service.ServiceException;
16

    
17
public class SimpleTableCellEditor implements TableCellEditor {
18

    
19
    /**
20
     *
21
     */
22
    private static final long serialVersionUID = 4395692366122374800L;
23

    
24
    private final DynFormFieldDefinition field;
25
    private JDynFormField editor;
26
    private DynFormSPIManager manager;
27

    
28
    public SimpleTableCellEditor(JDynForm.DynFormContext context, DynFormFieldDefinition field, DynFormSPIManager dynFormSPIManager) {
29
        this.manager = dynFormSPIManager;
30
        this.field = field;
31
        try {
32
            DynFormSPIManager.ComponentsFactory componentsFactory = manager.createDefaultComponentsFactory();
33
            JDynFormFieldFactory factory = this.manager.getJDynFormFieldFactory(
34
                    context,
35
                    field
36
            );
37
            this.editor = factory.create(manager, componentsFactory, field, null);
38
        } catch (ServiceException e) {
39
            // TODO Auto-generated catch block
40
            e.printStackTrace();
41
        }
42
    }
43

    
44
    @Override
45
    public boolean isCellEditable(EventObject anEvent) {
46
        return field.isReadOnly();
47
    }
48

    
49
    @Override
50
    public Object getCellEditorValue() {
51
        return editor.getValue();
52
    }
53

    
54
    @Override
55
    public Component getTableCellEditorComponent(JTable table, Object value,
56
            boolean isSelected, int row, int column) {
57
        return editor.asJComponent();
58
    }
59

    
60
    @Override
61
    public void addCellEditorListener(CellEditorListener arg0) {
62
    }
63

    
64
    @Override
65
    public void cancelCellEditing() {
66
    }
67

    
68
    @Override
69
    public void removeCellEditorListener(CellEditorListener arg0) {
70
    }
71

    
72
    @Override
73
    public boolean shouldSelectCell(EventObject arg0) {
74
        return true;
75
    }
76

    
77
    @Override
78
    public boolean stopCellEditing() {
79
        return false;
80
    }
81

    
82
}