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 43803 fdiaz
package org.gvsig.raster.swing.buffer.impl.operations.dynformfield;
2
3
import javax.swing.JPanel;
4 43806 fdiaz
import javax.swing.JTable;
5 43803 fdiaz
6 43806 fdiaz
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 43803 fdiaz
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 43806 fdiaz
/**
16
 * @author fdiaz
17
 *
18
 */
19 43803 fdiaz
public class JDynFormFieldKernel extends AbstractJDynFormField implements JDynFormField {
20
21
    private static String RasterOperation_kernelSizeFieldName = "RasterOperation.kernelSizeFieldName";
22
    private JDynFormField kernelSizeField;
23 43806 fdiaz
    private JTable matrix;
24 43803 fdiaz
25 43806 fdiaz
    /**
26
     * @param parameters
27
     * @param serviceManager
28
     */
29 43803 fdiaz
    public JDynFormFieldKernel(DynObject parameters, ServiceManager serviceManager) {
30
        super(parameters, serviceManager);
31 43806 fdiaz
        if (this.getParameterValue() != null) {
32
            setValue((Kernel) this.getParameterValue());
33
        }
34 43803 fdiaz
    }
35
36
    @Override
37
    public Object getValue() {
38 43806 fdiaz
        if(matrix==null){
39
            return null;
40
        }
41
        return ((KernelTableModel)matrix.getModel()).getKernel();
42 43803 fdiaz
    }
43
44
    @Override
45
    public boolean hasValidValue() {
46 43806 fdiaz
        //FIXME: Ver las condiciones para devolver true
47
        return true;
48 43803 fdiaz
    }
49
50
    @Override
51
    public void setValue(Object arg0) {
52 43806 fdiaz
        KernelTableModel model = new KernelTableModel((Kernel) arg0);
53
        matrix.setModel(model);
54 43803 fdiaz
    }
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 43806 fdiaz
                doChangeSizeMatrix((Integer)kernelSizeField.getValue());
77 43803 fdiaz
78
            }
79
        });
80
81
        JPanel panel = new JPanel();
82
83 43806 fdiaz
        matrix = new JTable();
84
        matrix.setTableHeader(null);
85
        panel.add(matrix);
86 43803 fdiaz
87
        this.contents = panel;
88
    }
89
90 43806 fdiaz
    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 43803 fdiaz
    @Override
109
    public Object getAssignedValue() {
110
        // TODO Auto-generated method stub
111
        return null;
112
    }
113
114
}