Statistics
| Revision:

svn-gvsig-desktop / branches / org.gvsig.desktop-2018a / org.gvsig.desktop.library / org.gvsig.raster / org.gvsig.raster.swing / org.gvsig.raster.swing.buffer / org.gvsig.raster.swing.buffer.impl / src / main / java / org / gvsig / raster / swing / buffer / impl / operations / dynformfield / JDynFormFieldKernel.java @ 43806

History | View | Annotate | Download (3.05 KB)

1
package org.gvsig.raster.swing.buffer.impl.operations.dynformfield;
2

    
3
import javax.swing.JPanel;
4
import javax.swing.JTable;
5

    
6
import org.gvsig.raster.lib.buffer.api.BufferLocator;
7
import org.gvsig.raster.lib.buffer.api.BufferManager;
8
import org.gvsig.raster.lib.buffer.api.Kernel;
9
import org.gvsig.tools.dynform.JDynFormField;
10
import org.gvsig.tools.dynform.spi.dynformfield.AbstractJDynFormField;
11
import org.gvsig.tools.dynobject.DynObject;
12
import org.gvsig.tools.service.spi.ServiceManager;
13

    
14

    
15
/**
16
 * @author fdiaz
17
 *
18
 */
19
public class JDynFormFieldKernel extends AbstractJDynFormField implements JDynFormField {
20

    
21
    private static String RasterOperation_kernelSizeFieldName = "RasterOperation.kernelSizeFieldName";
22
    private JDynFormField kernelSizeField;
23
    private JTable matrix;
24

    
25
    /**
26
     * @param parameters
27
     * @param serviceManager
28
     */
29
    public JDynFormFieldKernel(DynObject parameters, ServiceManager serviceManager) {
30
        super(parameters, serviceManager);
31
        if (this.getParameterValue() != null) {
32
            setValue((Kernel) this.getParameterValue());
33
        }
34
    }
35

    
36
    @Override
37
    public Object getValue() {
38
        if(matrix==null){
39
            return null;
40
        }
41
        return ((KernelTableModel)matrix.getModel()).getKernel();
42
    }
43

    
44
    @Override
45
    public boolean hasValidValue() {
46
        //FIXME: Ver las condiciones para devolver true
47
        return true;
48
    }
49

    
50
    @Override
51
    public void setValue(Object arg0) {
52
        KernelTableModel model = new KernelTableModel((Kernel) arg0);
53
        matrix.setModel(model);
54
    }
55

    
56
    @Override
57
    public void initComponent() {
58
        String kernelSizeFieldName = getTagValueAsString(RasterOperation_kernelSizeFieldName, null);
59
        this.kernelSizeField = this.getForm().getField(kernelSizeFieldName);
60
        this.kernelSizeField.addListener(new JDynFormFieldListener() {
61

    
62
            @Override
63
            public void message(JDynFormField arg0, String arg1) {
64
            }
65

    
66
            @Override
67
            public void fieldEnter(JDynFormField arg0) {
68
            }
69

    
70
            @Override
71
            public void fieldExit(JDynFormField arg0) {
72
            }
73

    
74
            @Override
75
            public void fieldChanged(JDynFormField arg0) {
76
                doChangeSizeMatrix((Integer)kernelSizeField.getValue());
77

    
78
            }
79
        });
80

    
81
        JPanel panel = new JPanel();
82

    
83
        matrix = new JTable();
84
        matrix.setTableHeader(null);
85
        panel.add(matrix);
86

    
87
        this.contents = panel;
88
    }
89

    
90
    protected void doChangeSizeMatrix(Integer value) {
91

    
92
        BufferManager manager = BufferLocator.getBufferManager();
93

    
94
        double[][] k = new double[value][value];
95
        for (int i = 0; i < value; i++) {
96
            for (int j = 0; j < value; j++) {
97
                k[i][j]=0d;
98
            }
99
        }
100

    
101
        Kernel kernel = manager.createKernel(k);
102

    
103
        KernelTableModel model = new KernelTableModel(kernel);
104
        matrix.setModel(model);
105

    
106
    }
107

    
108
    @Override
109
    public Object getAssignedValue() {
110
        // TODO Auto-generated method stub
111
        return null;
112
    }
113

    
114
}