Revision 43806

View differences:

branches/org.gvsig.desktop-2018a/org.gvsig.desktop.library/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.buffer.impl/src/main/resources/org/gvsig/raster/lib/buffer/impl/operations/convolution/ConvolutionOperationParameters.xml
18 18
            <value label="Custom">CUSTOM</value>
19 19
          </availableValues>
20 20
        </field>
21
        <field name="custom_kernel" type="object" subtype="" mandatory="false" group="Basic" classOfValue="org.gvsig.raster.lib.buffer.api.Kernel">
21
        <field name="side_window" type="integer" mandatory="false" minValue="3" maxValue="7" defaultValue="3" group="Basic">
22 22
          <description></description>
23 23
        </field>
24
        <field name="side_window" type="integer" mandatory="false" minValue="3" maxValue="7" defaultValue="3" group="Basic">
24
        <field name="custom_kernel" type="object" subtype="kernel" mandatory="false" group="Basic" classOfValue="org.gvsig.raster.lib.buffer.api.Kernel">
25 25
          <description></description>
26 26
        </field>
27 27
        <field name="sharpness" type="double" mandatory="false" group="Basic" minValue="0" maxValue="100" defaultValue="0">
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/DefaultRasterSwingBufferLibrary.java
24 24

  
25 25
import org.gvsig.raster.swing.buffer.RasterSwingBufferLibrary;
26 26
import org.gvsig.raster.swing.buffer.RasterSwingBufferLocator;
27
import org.gvsig.raster.swing.buffer.impl.operations.dynformfield.JDynFormFieldKernelFactory;
27 28
import org.gvsig.tools.dynform.spi.DynFormSPILocator;
28 29
import org.gvsig.tools.dynform.spi.DynFormSPIManager;
29 30
import org.gvsig.tools.library.LibraryException;
......
49 50

  
50 51
    @Override
51 52
    protected void doPostInitialize() throws LibraryException {
52
//        DynFormSPIManager manager = DynFormSPILocator.getDynFormSPIManager();
53
//        if( manager != null ) {
54
//                manager.addServiceFactory(new JDynFormFieldFeatureLinkFactory());
53
        DynFormSPIManager manager = DynFormSPILocator.getDynFormSPIManager();
54
        if( manager != null ) {
55
                manager.addServiceFactory(new JDynFormFieldKernelFactory());
55 56
//                manager.addServiceFactory(new JDynFormFieldFeaturesTableLinkFactory());
56
//        }
57
        }
57 58
    }
58 59

  
59 60
}
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/KernelTableModel.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2018 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.raster.swing.buffer.impl.operations.dynformfield;
24

  
25
import javax.swing.table.AbstractTableModel;
26

  
27
import org.gvsig.raster.lib.buffer.api.Kernel;
28

  
29

  
30
/**
31
 * @author fdiaz
32
 *
33
 */
34
public class KernelTableModel extends AbstractTableModel {
35

  
36
    private Kernel kernel;
37

  
38
    /**
39
     * @param kernel
40
     */
41
    public KernelTableModel(Kernel kernel){
42
        this.kernel = kernel;
43
    }
44

  
45
    @Override
46
    public int getRowCount() {
47
        return kernel.getSide();
48
    }
49

  
50
    @Override
51
    public int getColumnCount() {
52
        return kernel.getSide();
53
    }
54

  
55
    @Override
56
    public Object getValueAt(int rowIndex, int columnIndex) {
57
        return kernel.getKernel()[rowIndex][columnIndex];
58
    }
59

  
60
    public Kernel getKernel() {
61
        return kernel;
62
    }
63

  
64
}
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
1 1
package org.gvsig.raster.swing.buffer.impl.operations.dynformfield;
2 2

  
3 3
import javax.swing.JPanel;
4
import javax.swing.JTable;
4 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;
5 9
import org.gvsig.tools.dynform.JDynFormField;
6 10
import org.gvsig.tools.dynform.spi.dynformfield.AbstractJDynFormField;
7 11
import org.gvsig.tools.dynobject.DynObject;
8 12
import org.gvsig.tools.service.spi.ServiceManager;
9 13

  
10 14

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

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

  
25
    /**
26
     * @param parameters
27
     * @param serviceManager
28
     */
16 29
    public JDynFormFieldKernel(DynObject parameters, ServiceManager serviceManager) {
17 30
        super(parameters, serviceManager);
18
        // TODO Auto-generated constructor stub
31
        if (this.getParameterValue() != null) {
32
            setValue((Kernel) this.getParameterValue());
33
        }
19 34
    }
20 35

  
21 36
    @Override
22 37
    public Object getValue() {
23
        // Aqui devuelve un kernel con los valores del grid
24
        return null;
38
        if(matrix==null){
39
            return null;
40
        }
41
        return ((KernelTableModel)matrix.getModel()).getKernel();
25 42
    }
26 43

  
27 44
    @Override
28 45
    public boolean hasValidValue() {
29
        // TODO Auto-generated method stub
30
        return false;
46
        //FIXME: Ver las condiciones para devolver true
47
        return true;
31 48
    }
32 49

  
33 50
    @Override
34 51
    public void setValue(Object arg0) {
35
        // Aqui recibe un Kernel, y debe llenar el grid.
36

  
52
        KernelTableModel model = new KernelTableModel((Kernel) arg0);
53
        matrix.setModel(model);
37 54
    }
38 55

  
39 56
    @Override
......
56 73

  
57 74
            @Override
58 75
            public void fieldChanged(JDynFormField arg0) {
59
                // TODO Auto-generated method stub
76
                doChangeSizeMatrix((Integer)kernelSizeField.getValue());
60 77

  
61 78
            }
62 79
        });
63 80

  
64 81
        JPanel panel = new JPanel();
65 82

  
66
        // ...
67
        // LLenar panel
68
        // ...
83
        matrix = new JTable();
84
        matrix.setTableHeader(null);
85
        panel.add(matrix);
69 86

  
70 87
        this.contents = panel;
71 88
    }
72 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

  
73 108
    @Override
74 109
    public Object getAssignedValue() {
75 110
        // TODO Auto-generated method stub
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/JDynFormFieldKernelFactory.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.raster.swing.buffer.impl.operations.dynformfield;
25

  
26
import org.gvsig.raster.lib.buffer.api.Kernel;
27
import org.gvsig.tools.ToolsLocator;
28
import org.gvsig.tools.dataTypes.DataTypes;
29
import org.gvsig.tools.dynform.spi.DynFormSPILocator;
30
import org.gvsig.tools.dynform.spi.DynFormSPIManager;
31
import org.gvsig.tools.dynform.spi.JDynFormFieldFactory;
32
import org.gvsig.tools.dynobject.DynField;
33
import org.gvsig.tools.dynobject.DynObject;
34
import org.gvsig.tools.dynobject.DynObjectManager;
35
import org.gvsig.tools.dynobject.DynStruct;
36
import org.gvsig.tools.service.Service;
37
import org.gvsig.tools.service.ServiceException;
38
import org.gvsig.tools.service.spi.ServiceManager;
39

  
40
/**
41
 * @author fdiaz
42
 *
43
 */
44
public class JDynFormFieldKernelFactory implements JDynFormFieldFactory {
45

  
46
	private String name = null;
47
	private DynStruct parametersDefinition = null;
48

  
49
        @Override
50
	public String getName() {
51
		if( name == null ) {
52
			DynFormSPIManager manager = DynFormSPILocator.getDynFormSPIManager();
53
			this.name = manager.makeServiceName(DataTypes.DYNOBJECT, "kernel");
54
		}
55
		return this.name;
56
	}
57

  
58

  
59
        @Override
60
	public Service create(DynObject parameters, ServiceManager serviceManager)
61
			throws ServiceException {
62
		return new JDynFormFieldKernel(parameters, serviceManager);
63
	}
64

  
65
        @Override
66
	public DynObject createParameters() {
67
		return ToolsLocator.getDynObjectManager().createDynObject(parametersDefinition);
68
	}
69

  
70
        @Override
71
	public void initialize() {
72
		if( this.parametersDefinition == null ) {
73
			String serviceName = this.getName();
74
    		DynObjectManager manager = ToolsLocator.getDynObjectManager();
75
    		this.parametersDefinition = manager.createDynClass(
76
    				serviceName, "Parameters definition for Feature links fields in dynamic forms");
77
    		this.parametersDefinition.addDynFieldObject(DynFormSPIManager.FIELD_FIELDDEFINITION)
78
				.setClassOfValue(Kernel.class).setMandatory(true);
79
    		this.parametersDefinition.addDynFieldObject(DynFormSPIManager.FIELD_VALUE)
80
				.setClassOfValue(Kernel.class).setMandatory(true);
81
		}
82
	}
83

  
84

  
85
}

Also available in: Unified diff