Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.swing / org.gvsig.tools.swing.api / src / main / java / org / gvsig / tools / swing / api / pickercontroller / AbstractPickerController.java @ 1746

History | View | Annotate | Download (3.07 KB)

1
package org.gvsig.tools.swing.api.pickercontroller;
2

    
3

    
4
import javax.swing.ImageIcon;
5
import javax.swing.event.ChangeEvent;
6
import javax.swing.event.ChangeListener;
7
import org.gvsig.tools.ToolsLocator;
8
import org.gvsig.tools.dataTypes.CoercionException;
9
import org.gvsig.tools.dataTypes.DataType;
10
import org.gvsig.tools.dataTypes.DataTypesManager;
11
import org.gvsig.tools.swing.api.ChangeListenerHelper;
12
import org.gvsig.tools.swing.api.ToolsSwingLocator;
13
import org.gvsig.tools.swing.icontheme.IconTheme;
14
import org.gvsig.tools.swing.icontheme.IconThemeManager;
15
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17

    
18
/**
19
 *
20
 * @author jjdelcerro
21
 */
22
public abstract class AbstractPickerController<T> implements PickerController<T> {
23

    
24
    protected static final Logger LOG = LoggerFactory.getLogger(AbstractPickerController.class);
25
    
26
    protected ChangeListenerHelper changeListenerHelper;
27
    private boolean editable;
28
    
29
    public AbstractPickerController() {
30
        this.changeListenerHelper = ToolsSwingLocator.getToolsSwingManager()
31
                .createChangeListenerHelper();
32
        this.editable = true;
33
    }
34

    
35
    @Override
36
    public void addChangeListener(ChangeListener listener) {
37
        this.changeListenerHelper.addChangeListener(listener);
38
    }
39

    
40
    @Override
41
    public ChangeListener[] getChangeListeners() {
42
        return this.changeListenerHelper.getChangeListeners();
43
    }
44

    
45
    @Override
46
    public void removeChangeListener(ChangeListener listener) {
47
        this.changeListenerHelper.removeChangeListener(listener);
48
    }
49

    
50
    @Override
51
    public void removeAllChangeListener() {
52
        this.changeListenerHelper.removeAllChangeListener();
53
    }
54

    
55
    @Override
56
    public boolean hasChangeListeners() {
57
        return this.changeListenerHelper.hasChangeListeners();
58
    }
59
    
60
    protected void fireChangeEvent() {
61
        this.changeListenerHelper.fireEvent();
62
    }
63
    
64
    protected void fireChangeEvent(ChangeEvent event) {
65
        this.changeListenerHelper.fireEvent(event);
66
    }
67

    
68
    protected Object coerce(int type, Object value, Object defaultValue) {
69
        DataTypesManager manager = ToolsLocator.getDataTypesManager();
70
        DataType dataType = manager.get(type);
71
        try {
72
            Object v = dataType.coerce(value);
73
            return v;
74
        } catch (CoercionException ex) {
75
            String s = (value==null)? "null":value.toString();
76
            LOG.warn("Can't coerce value ("+s+") to "+dataType.getName()+".", ex);
77
            return defaultValue;
78
        }
79
    }
80
 
81
    @Override
82
    public void setEditable(boolean editable) {
83
        this.editable = editable;
84
    }
85

    
86
    @Override
87
    public boolean isEditable() {
88
        return this.editable;
89
    }
90

    
91
    @Override
92
    public boolean isValid() {
93
        return true;
94
    }
95

    
96
    @Override
97
    public boolean isEmpty() {
98
        return false;
99
    }
100

    
101
    protected ImageIcon getIcon(String name) {
102
        IconThemeManager iconThemeManager = ToolsSwingLocator.getIconThemeManager();
103
        IconTheme theme = iconThemeManager.getCurrent();
104
        ImageIcon icon = theme.get(name);
105
        return icon;
106
    }
107
    
108
    
109
}