Revision 4156

View differences:

org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
	<modelVersion>4.0.0</modelVersion>
4
	<artifactId>org.gvsig.raster.tools</artifactId>
5
	<packaging>pom</packaging>
6
	<version>2.2.16</version>
7
	<name>org.gvsig.raster.tools</name>
8
	<description>Raster tools for gvSIG</description>
9
	<inceptionYear>2011</inceptionYear>
10
	<parent>
11
      <groupId>org.gvsig</groupId>
12
      <artifactId>org.gvsig.desktop</artifactId>
13
      <version>2.0.111</version>
14
  </parent>
15

  
16
        <properties>
17
            <!-- El plugin versions:use-latest-versions falla con scope import -->
18
            <!-- asi que toca usar el versions:update-properties que si que funciona -->
19
            <org.gvsig.raster.version>2.2.21</org.gvsig.raster.version>
20
            <org.gvsig.geoprocess.version>2.2.34</org.gvsig.geoprocess.version>
21
        </properties>
22

  
23
  <repositories>
24
    <repository>
25
      <id>gvsig-public-http-repository</id>
26
      <name>gvSIG maven public HTTP repository</name>
27
      <url>http://devel.gvsig.org/m2repo/j2se</url>
28
      <releases>
29
        <enabled>true</enabled>
30
        <updatePolicy>daily</updatePolicy>
31
        <checksumPolicy>warn</checksumPolicy>
32
      </releases>
33
      <snapshots>
34
        <enabled>true</enabled>
35
        <updatePolicy>daily</updatePolicy>
36
        <checksumPolicy>warn</checksumPolicy>
37
      </snapshots>
38
    </repository>
39
  </repositories>
40

  
41
  <scm>
42
      <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16</connection>
43
      <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16</developerConnection>
44
      <url>https://devel.gvsig.org/redmine/projects/gvsig-raster/repository/show/org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16</url>
45
  </scm>
46

  
47
  <dependencyManagement>
48
  	<dependencies>
49
                        <dependency>
50
                                <groupId>org.gvsig</groupId>
51
                                <artifactId>org.gvsig.raster</artifactId>
52
                                <version>${org.gvsig.raster.version}</version>
53
                                <type>pom</type>
54
                                <scope>import</scope>
55
                        </dependency>
56

  
57
                        <dependency>
58
                                <groupId>org.gvsig</groupId>
59
                                <artifactId>org.gvsig.geoprocess</artifactId>
60
                                <version>${org.gvsig.geoprocess.version}</version>
61
                                <type>pom</type>
62
                                <scope>import</scope>
63
                        </dependency>
64

  
65

  
66
    	<!--
67
    	Versions of child projects
68
    	-->
69
			<dependency>
70
				<groupId>org.gvsig</groupId>
71
				<artifactId>org.gvsig.raster.tools.app.basic</artifactId>
72
				<version>2.2.16</version>
73
			</dependency>
74
			<dependency>
75
				<groupId>org.gvsig</groupId>
76
				<artifactId>org.gvsig.raster.tools.algorithm.layerdatatype</artifactId>
77
       	<version>2.2.16</version>
78
			</dependency>
79
			<dependency>
80
				<groupId>org.gvsig</groupId>
81
				<artifactId>org.gvsig.raster.tools.algorithm.saveraster</artifactId>
82
       	<version>2.2.16</version>
83
			</dependency>
84
			<!--
85
			<dependency>
86
				<groupId>org.gvsig</groupId>
87
				<artifactId>org.gvsig.raster.tools.algorithm.clip</artifactId>
88
       	<version>2.0.1-SNAPSHOT</version>
89
			</dependency>
90
			-->
91
			<dependency>
92
          <groupId>org.gvsig</groupId>
93
	        <artifactId>org.gvsig.raster.tools.algorithm.swing.api</artifactId>
94
	        <version>2.2.16</version>
95
    	</dependency>
96
    	<dependency>
97
          <groupId>org.gvsig</groupId>
98
	        <artifactId>org.gvsig.raster.tools.algorithm.swing.impl</artifactId>
99
	        <version>2.2.16</version>
100
    	</dependency>
101
    	<dependency>
102
          <groupId>org.gvsig</groupId>
103
	        <artifactId>org.gvsig.raster.tools.algorithm.maskthreshold</artifactId>
104
	        <version>2.2.16</version>
105
    	</dependency>
106
    	<dependency>
107
				<groupId>org.gvsig</groupId>
108
				<artifactId>org.gvsig.raster.tools.toolbox.algorithm</artifactId>
109
				<version>2.2.16</version>
110
			</dependency>
111

  
112
  	</dependencies>
113
  </dependencyManagement>
114

  
115

  
116
  <build>
117
      <plugins>
118
          <plugin>
119
              <groupId>org.apache.maven.plugins</groupId>
120
              <artifactId>maven-release-plugin</artifactId>
121
              <configuration>
122
                  <tagBase>https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.tools/tags/</tagBase>
123
                  <goals>deploy</goals>
124
              </configuration>
125
          </plugin>
126
      </plugins>
127
  </build>
128

  
129
	<modules>
130
		<module>org.gvsig.raster.tools.algorithm</module>
131
		<module>org.gvsig.raster.tools.app.basic</module>
132
		<module>org.gvsig.raster.tools.toolbox.algorithm</module>
133
		<!-- <module>org.gvsig.raster.tools.main</module>-->
134
	</modules>
135

  
136
</project>
0 137

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/src/main/resources/org/gvsig/raster/tools/sextante/i18n/text.properties
1
layer_datatype=Cambiar tipo de dato
2
raster_layer=Capas r?ster
3
Input_layer=Capa de entrada
4
dst_datatype=Tipo de dato de destino
5
dec_2_int=De decimal a entero
6
big_2_small=De mayor a menor
7
file_exists=El fichero existe
8
convert_datatype=Convirtiendo el tipo de dato
0 9

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/src/main/resources/org/gvsig/raster/tools/sextante/i18n/text_en.properties
1
layer_datatype=Change the data type
2
raster_layer=Raster layers
3
Input_layer=Input layer
4
dst_datatype=Data type of the result
5
dec_2_int=From decimal to integer
6
big_2_small=From greater type to lesser type
7
file_exists=The file exists
8
convert_datatype=Transforming the data type
0 9

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/src/main/resources/help/LayerDatatypeSextanteAlgorithm_en.xml
1
<?xml version='1.0' encoding='ISO-8859-1' standalone='yes' ?>
2
<help>
3
	<element name="DESCRIPTION"
4
		text=""
5
		description="Descripci&#243;n" type="0">
6
		<!-- <image description="" file="">
7
		</image> -->
8
	</element>
9
	<element name="ADDITIONAL_INFO" text=""
10
		description="Informaci&#243;n adicional" type="0">
11
	</element>
12
	<element name="EXTENSION_AUTHOR" text=""
13
		description="Algoritmo creado por" type="0">
14
	</element>
15
	<element name="HELP_AUTHOR" text="" description="Ayuda creada por"
16
		type="0">
17
	</element>
18
	<element name="USER_NOTES" text="" description="Notas de usuario"
19
		type="0">
20
	</element>
21
</help>
0 22

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/src/main/resources/help/LayerDatatypeSextanteAlgorithm.xml
1
<?xml version='1.0' encoding='ISO-8859-1' standalone='yes' ?>
2
<help>
3
	<element name="DESCRIPTION"
4
		text=""
5
		description="Descripci&#243;n" type="0">
6
		<!-- <image description="" file="">
7
		</image>-->
8
	</element>
9
	<element name="ADDITIONAL_INFO" text=""
10
		description="Informaci&#243;n adicional" type="0">
11
	</element>
12
	<element name="EXTENSION_AUTHOR" text=""
13
		description="Algoritmo creado por" type="0">
14
	</element>
15
	<element name="HELP_AUTHOR" text="" description="Ayuda creada por"
16
		type="0">
17
	</element>
18
	<element name="USER_NOTES" text="" description="Notas de usuario"
19
		type="0">
20
	</element>
21
</help>
0 22

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.raster.tools.RasterToolsSextanteLibrary
0 2

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/src/main/java/org/gvsig/raster/tools/LayerDatatypeSextanteAlgorithm.java
1
package org.gvsig.raster.tools;
2

  
3
import java.util.HashMap;
4
import java.util.List;
5

  
6
import org.gvsig.fmap.dal.coverage.RasterLocator;
7
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
8
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
9
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
10
import org.gvsig.geoprocess.lib.sextante.AbstractSextanteGeoProcess;
11
import org.gvsig.geoprocess.lib.sextante.dataObjects.FLyrRasterIRasterLayer;
12
import org.gvsig.raster.algorithm.RasterBaseAlgorithmLibrary;
13
import org.gvsig.raster.algorithm.process.DataProcess;
14
import org.gvsig.raster.algorithm.process.IProcessActions;
15
import org.gvsig.raster.algorithm.process.ProcessException;
16
import org.gvsig.raster.fmap.layers.FLyrRaster;
17

  
18
import es.unex.sextante.core.AnalysisExtent;
19
import es.unex.sextante.core.Sextante;
20
import es.unex.sextante.dataObjects.IRasterLayer;
21
import es.unex.sextante.exceptions.GeoAlgorithmExecutionException;
22
import es.unex.sextante.exceptions.NullParameterAdditionalInfoException;
23
import es.unex.sextante.exceptions.NullParameterValueException;
24
import es.unex.sextante.exceptions.RepeatedParameterNameException;
25
import es.unex.sextante.exceptions.WrongParameterIDException;
26
import es.unex.sextante.exceptions.WrongParameterTypeException;
27

  
28
/**
29
 * Process to change a layer of data type
30
 * @author Nacho Brodin (nachobrodin@gmail.com)
31
 */
32
public class LayerDatatypeSextanteAlgorithm extends AbstractSextanteGeoProcess implements IProcessActions {
33
    public static final String RESULT            = "RESULT";
34
    public static final String LAYER             = "RasterStore1";
35
	public static final String DATATYPE          = "Datatype";
36
	public static final String ADJUST_DEC2INT    = "AdjustDec2Int";
37
	public static final String ADJUST_BIG2SMALL  = "AdjustBig2Small";
38

  
39
	public static String[]    DEC2INT_OPTIONS    = new String[]{"Trunk", "Round", "Ceil", "Floor"};
40
	public static String[]    BIG2SMALL_OPTIONS  = new String[]{"Trunk", "Maxvalue", "NoData"};
41
	public static String[]    DATATYPES          = new String[]{"Byte", "UShort", "Short", "Integer", "Float", "Double"};
42

  
43
    private DataProcess        task            = null;
44

  
45

  
46
    public void defineCharacteristics() {
47
        setName(getTranslation("layer_datatype"));
48
        setGroup(getTranslation("raster_layer"));
49

  
50
        try {
51
            m_Parameters.addInputRasterLayer(LAYER, getTranslation("Input_layer"), true);
52
            m_Parameters.addSelection(DATATYPE, getTranslation("dst_datatype"), DATATYPES);
53
            m_Parameters.addSelection(ADJUST_DEC2INT, getTranslation("dec_2_int"), DEC2INT_OPTIONS);
54
            m_Parameters.addSelection(ADJUST_BIG2SMALL, getTranslation("big_2_small"), BIG2SMALL_OPTIONS);
55
        } catch (RepeatedParameterNameException e) {
56
            Sextante.addErrorToLog(e);
57
        }
58
        addOutputRasterLayer(RESULT, getTranslation("principalcomponents"));
59
    }
60

  
61
    public boolean processAlgorithm() throws GeoAlgorithmExecutionException {
62

  
63
    	if(existsOutPutFile(LayerDatatypeSextanteAlgorithm.RESULT, 0)) {
64
    		throw new GeoAlgorithmExecutionException(getTranslation("file_exists"));
65
    	}
66

  
67
    	IRasterLayer input = m_Parameters.getParameterValueAsRasterLayer(LAYER);
68

  
69
    	FLyrRaster lyrRaster = ((FLyrRaster)input.getBaseDataObject());
70
    	IRasterLayer output = null;
71

  
72
    	output = getNewRORasterLayer(
73
    			RESULT,
74
    			Sextante.getText("layerdatatype_description"),
75
    			input.getDataType(),
76
    			input.getBandsCount());
77

  
78
    	String fileName = ((FLyrRasterIRasterLayer)output).getName();
79

  
80
    	try {
81
    		setProgressText(getTranslation("convert_datatype"));
82
			task = createLayerDatatypeProcess(lyrRaster.getDataStore(), fileName);
83
			task.execute();
84
			HashMap<String, Object> params = task.getResult();
85
			fileName = (String)params.get("FileName");
86

  
87
			((FLyrRasterIRasterLayer)output).setBaseDataObject(fileName);
88
		} catch (ProcessInterruptedException e) {
89
			Sextante.addErrorToLog(e);
90
		} catch (ProcessException e) {
91
			Sextante.addErrorToLog(e);
92
		}
93

  
94
		if(getTaskMonitor().isCanceled())
95
			return false;
96

  
97
        return true;
98
    }
99

  
100
    /**
101
     * Creates a process to calculate statistics
102
     * @param inputStore
103
     * @return
104
     * @throws ProcessException
105
     * @throws NullParameterAdditionalInfoException
106
     * @throws NullParameterValueException
107
     * @throws WrongParameterIDException
108
     * @throws WrongParameterTypeException
109
     */
110
    private DataProcess createLayerDatatypeProcess(RasterDataStore inputStore, String fileName) throws ProcessException, WrongParameterTypeException, WrongParameterIDException, NullParameterValueException, NullParameterAdditionalInfoException {
111
    	DataProcess taskStats = RasterBaseAlgorithmLibrary.getManager().createRasterTask("LayerDatatypeProcess");
112
    	taskStats.setActions(this);
113
    	List<String> params = taskStats.getRasterTaskInputParameters("LayerDatatypeProcess");
114
    	for (int i = 0; i < params.size(); i++) {
115
    		String paramName = params.get(i);
116
    		Class<?> paramType = taskStats.getParameterTypeByProcess("LayerDatatypeProcess", paramName);
117
    		if(paramType == RasterDataStore.class) {
118
    			taskStats.addParam(paramName, (RasterDataStore)inputStore);
119
    		}
120

  
121
    		if(paramName.equals("Path")) {
122
    			taskStats.addParam(paramName, fileName);
123
    		}
124

  
125
    		if(paramName.equals(DATATYPE)) {
126
    			String value = m_Parameters.getParameterValueAsString(DATATYPE);
127
    			int position = 0;
128
    			for (int j = 0; j < DATATYPES.length; j++) {
129
					if(DATATYPES[j].equals(value))
130
						position = j;
131
				}
132
    			taskStats.addParam(paramName, position);
133
    		}
134

  
135
    		if(paramName.equals(ADJUST_DEC2INT)) {
136
    			String value = m_Parameters.getParameterValueAsString(ADJUST_DEC2INT);
137
    			int position = 0;
138
    			for (int j = 0; j < DEC2INT_OPTIONS.length; j++) {
139
					if(DEC2INT_OPTIONS[j].equals(value))
140
						position = j;
141
				}
142
    			taskStats.addParam(paramName, position);
143
    		}
144

  
145
    		if(paramName.equals(ADJUST_BIG2SMALL)) {
146
    			String value = m_Parameters.getParameterValueAsString(ADJUST_BIG2SMALL);
147
    			int position = 0;
148
    			for (int j = 0; j < BIG2SMALL_OPTIONS.length; j++) {
149
					if(BIG2SMALL_OPTIONS[j].equals(value))
150
						position = j;
151
				}
152
    			taskStats.addParam(paramName, position);
153
    		}
154

  
155
    		if(paramName.equals("WINDOW")) {
156
    			AnalysisExtent ext = getAnalysisExtent();
157
    			Extent bbox = RasterLocator.getManager().getDataStructFactory().createExtent(
158
    					ext.getXMin(), ext.getYMax(), ext.getXMax(), ext.getYMin());
159
    			Extent inputBbox = inputStore.getExtent();
160
    			if(bbox.getULX() != inputBbox.getULX() ||
161
    				bbox.getULY() != inputBbox.getULY() ||
162
    				bbox.getLRX() != inputBbox.getLRX() ||
163
    				bbox.getLRY() != inputBbox.getLRY()) {
164
    				taskStats.addParam(paramName, bbox);
165
    			}
166
    		}
167
    	}
168
    	return taskStats;
169
    }
170

  
171
	public void interrupted() {
172

  
173
	}
174

  
175
	public void end(Object param) {
176

  
177
	}
178

  
179
	public void updateProgress(int current, int total) {
180
		boolean cancelled = setProgress(current, total);
181

  
182
		if(!cancelled) {
183
			if(task != null)
184
				task.actionCanceled(null);
185
		}
186
	}
187

  
188
    /*
189
     * TODO: Customized panels
190
    @Override
191
    public Class<? extends GeoAlgorithmParametersPanel> getCustomParametersPanelClass() {
192
        return PrincipalComponentsParametersPanel.class;
193
    }*/
194
}
0 195

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/src/main/java/org/gvsig/raster/tools/RasterToolsSextanteLibrary.java
1
package org.gvsig.raster.tools;
2

  
3
import org.gvsig.geoprocess.algorithm.base.core.AlgorithmAbstractLibrary;
4
import org.gvsig.i18n.Messages;
5
import org.gvsig.tools.library.LibraryException;
6

  
7
/**
8
 * Initialization of <code>RasterToolsSextanteLibrary</code> library.
9
 */
10
public class RasterToolsSextanteLibrary extends AlgorithmAbstractLibrary {
11

  
12
    @Override
13
    protected void doInitialize() throws LibraryException {
14
        // Nothing to do
15
    }
16

  
17
    @Override
18
    protected void doPostInitialize() throws LibraryException {
19
        Messages.addResourceFamily(
20
            "org.gvsig.raster.tools.sextante.i18n.text", RasterToolsSextanteLibrary.class
21
                .getClassLoader(), RasterToolsSextanteLibrary.class.getClass().getName());
22
        
23
        registerGeoProcess(new LayerDatatypeSextanteAlgorithm());
24
    }
25

  
26
}
0 27

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.toolbox.algorithm/pom.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3

  
4
	<modelVersion>4.0.0</modelVersion>
5
	<artifactId>org.gvsig.raster.tools.toolbox.algorithm</artifactId>
6
	<packaging>jar</packaging>
7
	<name>org.gvsig.raster.tools.toolbox.algorithm</name>
8
	<parent>
9
		<groupId>org.gvsig</groupId>
10
		<artifactId>org.gvsig.raster.tools</artifactId>
11
		<version>2.2.16</version>
12
	</parent>
13
	<dependencies>
14
		<dependency>
15
		    <groupId>org.gvsig</groupId>
16
   			<artifactId>org.gvsig.raster.tools.algorithm.layerdatatype</artifactId>
17
            <scope>runtime</scope>
18
   		</dependency>
19
		<dependency>
20
		    <groupId>org.gvsig</groupId>
21
   			<artifactId>org.gvsig.raster.algorithm</artifactId>
22
            <scope>compile</scope>
23
   		</dependency>
24
		<dependency>
25
		    <groupId>org.gvsig</groupId>
26
   			<artifactId>org.gvsig.geoprocess.algorithm.base</artifactId>
27
            <scope>compile</scope>
28
   		</dependency>
29
		<dependency>
30
			<groupId>org.gvsig</groupId>
31
			<artifactId>org.gvsig.geoprocess.lib.sextante</artifactId>
32
			<scope>compile</scope>
33
		</dependency>
34
		<dependency>
35
			<groupId>org.gvsig</groupId>
36
			<artifactId>org.gvsig.tools.lib</artifactId>
37
			<scope>compile</scope>
38
		</dependency>
39
		<dependency>
40
			<groupId>org.gvsig</groupId>
41
			<artifactId>org.gvsig.ui</artifactId>
42
			<scope>compile</scope>
43
		</dependency>
44
	    <dependency>
45
			<groupId>org.gvsig</groupId>
46
			<artifactId>org.gvsig.i18n</artifactId>
47
			<scope>compile</scope>
48
		</dependency>
49
		<dependency>
50
            <groupId>org.gvsig</groupId>
51
            <artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
52
            <scope>compile</scope>
53
        </dependency>
54
        <dependency>
55
            <groupId>org.gvsig</groupId>
56
            <artifactId>org.gvsig.fmap.mapcontext.impl</artifactId>
57
            <scope>runtime</scope>
58
        </dependency>
59
		<dependency>
60
            <groupId>org.gvsig</groupId>
61
            <artifactId>org.gvsig.projection.api</artifactId>
62
            <scope>compile</scope>
63
        </dependency>
64
        <dependency>
65
            <groupId>org.gvsig</groupId>
66
            <artifactId>org.gvsig.projection.cresques.impl</artifactId>
67
            <scope>runtime</scope>
68
        </dependency>
69
   		<dependency>
70
            <groupId>org.gvsig</groupId>
71
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
72
            <scope>compile</scope>
73
        </dependency>
74
	</dependencies>
75
</project>
0 76

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/buildNumber.properties
1
#Tue Nov 03 20:49:53 CET 2015
2
buildNumber=67
0 3

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/test/java/org/gvsig/raster/app/extension/TestNoDataPanel.java
1
package org.gvsig.raster.app.extension;
2

  
3
import javax.swing.JFrame;
4

  
5
import org.gvsig.raster.tools.app.basic.tool.properties.panel.NoDataPanel;
6

  
7
public class TestNoDataPanel {
8
		private int                          w        = 510;
9
		private int                          h        = 300;
10
		private JFrame                       frame    = new JFrame();
11
		private NoDataPanel               desc     = null;
12

  
13
		public TestNoDataPanel() {
14
			desc = new NoDataPanel();
15
			frame.getContentPane().add(desc);
16
			frame.setSize(w, h);
17
			frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
18
			frame.setVisible(true);
19
		}
20

  
21
		public static void main(String[] args) {
22
			new TestNoDataPanel();
23
		}
24
	}
0 25

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/test/java/org/gvsig/raster/app/extension/TestClipPanel.java
1
package org.gvsig.raster.app.extension;
2

  
3
import javax.swing.JFrame;
4

  
5
import org.gvsig.raster.tools.app.basic.tool.clip.ui.ClippingPanel;
6
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
7

  
8
public class TestClipPanel {
9
		private int                          w        = 510;
10
		private int                          h        = 300;
11
		private JFrame                       frame    = new JFrame();
12
		private ClippingPanel               desc     = null;
13

  
14
		public TestClipPanel() {
15
			new DefaultLibrariesInitializer().fullInitialize(true);
16
			desc = new ClippingPanel(null);
17
			frame.getContentPane().add(desc);
18
			frame.setSize(w, h);
19
			frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
20
			frame.setVisible(true);
21
		}
22

  
23
		public static void main(String[] args) {
24
			new TestClipPanel();
25
		}
26
	}
0 27

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/test/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	org.gvsig.tools packages.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.tools">
23
		<priority value="DEBUG" />
24
	</category>
25
	<category name="org.gvsig.raster">
26
		<priority value="DEBUG" />
27
	</category>
28

  
29
	<!-- 
30
	By default, show only logging messages of INFO level or higher, 
31
	through the previously configured CONSOLE appender. 
32
	-->
33
	<root>
34
		<priority value="INFO" />
35
		<appender-ref ref="CONSOLE" />
36
	</root>
37
</log4j:configuration>
0 38

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/test/resources/README.txt
1
Put into this folder the resources needed by your test classes.
2

  
3
This folder is added to the Tests classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, in this folder you can find an example of log4j configuration,
7
prepared to log messages through the console, so logging works when you
8
run your tests classes.
0 9

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/main/assembly/gvsig-plugin-package.xml
1
<assembly>
2
  <id>gvsig-plugin-package</id>
3
  <formats>
4
    <format>zip</format>
5
  </formats>
6
  <baseDirectory>${project.artifactId}</baseDirectory>
7
  <includeBaseDirectory>true</includeBaseDirectory>
8
  <files>
9
    <file>
10
      <source>target/${project.artifactId}-${project.version}.jar</source>
11
      <outputDirectory>lib</outputDirectory>
12
    </file>
13
    <file>
14
      <source>target/package.info</source>
15
    </file>
16
  </files>
17

  
18
  <fileSets>
19
    <fileSet>
20
      <directory>src/main/resources-plugin</directory>
21
      <outputDirectory>.</outputDirectory>
22
    </fileSet>
23
  </fileSets>
24

  
25

  
26
  <dependencySets>
27
    <dependencySet>
28
      <useProjectArtifact>false</useProjectArtifact>
29
	  <useTransitiveDependencies>false</useTransitiveDependencies>
30
      <outputDirectory>lib</outputDirectory>
31
      <includes> 
32
				<include>org.gvsig:org.gvsig.raster.tools.app.basic:jar</include>
33
				<include>org.gvsig:org.gvsig.raster.tools.algorithm.layerdatatype:jar</include>
34
				<include>org.gvsig:org.gvsig.raster.tools.algorithm.saveraster:jar</include>
35
				<include>org.gvsig:org.gvsig.raster.tools.algorithm.swing.api:jar</include>
36
				<include>org.gvsig:org.gvsig.raster.tools.algorithm.swing.impl:jar</include>
37
				<include>org.gvsig:org.gvsig.raster.tools.toolbox.algorithm:jar</include>
38
	  </includes>
39
	</dependencySet>
40
  </dependencySets>
41
</assembly>
0 42

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/SystemGCExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
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 2
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
*/
22
package org.gvsig.raster.tools.app.basic;
23

  
24
import org.gvsig.andami.plugins.Extension;
25

  
26

  
27
/**
28
 * @author Nacho Brodin (nachobrodin@gmail.com)
29
 */
30
public class SystemGCExtension extends Extension {
31

  
32
	public void execute(String actionCommand) {
33
		System.gc();
34
	}
35

  
36
	public void initialize() {
37

  
38
	}
39

  
40
	public boolean isEnabled() {
41
		return true;
42
	}
43

  
44
	public boolean isVisible() {
45
		return true;
46
	}
47

  
48
}
0 49

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/MainWindow.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2011-2012 Prodevelop S.L
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
 */
21
package org.gvsig.raster.tools.app.basic;
22

  
23
import java.awt.GridBagConstraints;
24
import java.awt.GridBagLayout;
25
import java.awt.event.ActionEvent;
26
import java.awt.event.ActionListener;
27

  
28
import javax.swing.JComponent;
29

  
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.andami.ui.mdiManager.IWindow;
32
import org.gvsig.andami.ui.mdiManager.WindowInfo;
33
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
34
import org.gvsig.gui.beans.defaultbuttonspanel.DefaultButtonsPanel;
35

  
36

  
37
/**
38
 * Basic frame for a gvSIG <code>IWindow</code> object. This frame adds buttons 
39
 * of Cancel, Accept and others.
40
 * 
41
 * @author Nacho Brodin (nachobrodin@gmail.com)
42
 */
43
public class MainWindow extends DefaultButtonsPanel implements IWindow, ActionListener {
44
    
45
    private static final long  serialVersionUID = -4401123724140025094L;
46
    private ActionListener     listener         = null;
47
    private WindowInfo         info             = null;
48

  
49
    private Object profile = WindowInfo.EDITOR_PROFILE;
50

  
51
    public MainWindow(JComponent panel, JComponent preview, String title, int w, int h, ActionListener actionListener) {
52
    	this.listener = actionListener;
53
    	
54
    	setLayout(new GridBagLayout());
55
		GridBagConstraints gbc = new GridBagConstraints();
56
		gbc.fill = GridBagConstraints.BOTH;
57
		gbc.weightx = 1;
58
		gbc.weighty = 1;
59
		add(panel, gbc);
60
		
61
		if(preview != null) {
62
			gbc.anchor = GridBagConstraints.NORTH;
63
			gbc.fill = GridBagConstraints.NONE;
64
			gbc.weightx = 0;
65
			gbc.weighty = 0;
66
			gbc.gridx = 1;
67
			add(preview, gbc);
68
		}
69

  
70
        getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).addActionListener(this);
71
        getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).addActionListener(this);
72
        getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL).addActionListener(this);
73
        
74
        info = new WindowInfo(WindowInfo.PALETTE | WindowInfo.RESIZABLE);
75
        info.setTitle(title);
76
        info.setWidth(w);
77
        info.setHeight(h);
78
    }
79

  
80
    public WindowInfo getWindowInfo() {
81
        return info;
82
    }
83

  
84
    public Object getWindowProfile() {
85
        return profile;
86
    }
87

  
88
    public void actionPerformed(ActionEvent e) {
89
    	if(e.getSource() == getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT)) {
90
    		listener.actionPerformed(e);
91
    		PluginServices.getMDIManager().closeWindow(this);
92
    	}
93
    	
94
    	if(e.getSource() == getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY)) {
95
    		listener.actionPerformed(e);
96
    	}
97
    	
98
    	if(e.getSource() == getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL)) {
99
    		PluginServices.getMDIManager().closeWindow(this);
100
    	}
101
    }
102
}
0 103

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.16/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/RasterExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
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 2
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
*/
22
package org.gvsig.raster.tools.app.basic;
23

  
24
import java.util.ArrayList;
25
import java.util.prefs.Preferences;
26

  
27
import org.gvsig.andami.IconThemeHelper;
28
import org.gvsig.andami.PluginServices;
29
import org.gvsig.andami.plugins.Extension;
30
import org.gvsig.andami.plugins.IExtensionQueryByAction;
31
import org.gvsig.andami.ui.mdiManager.IWindow;
32
import org.gvsig.app.ApplicationLocator;
33
import org.gvsig.app.ApplicationManager;
34
import org.gvsig.app.project.documents.view.ViewDocument;
35
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
36
import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
37
import org.gvsig.app.project.documents.view.toc.ITocItem;
38
import org.gvsig.fmap.dal.coverage.RasterLibrary;
39
import org.gvsig.fmap.dal.coverage.RasterLocator;
40
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
41
import org.gvsig.fmap.mapcontext.MapContext;
42
import org.gvsig.fmap.mapcontext.layers.FLayer;
43
import org.gvsig.fmap.mapcontext.layers.FLayers;
44
import org.gvsig.raster.algorithm.RasterBaseAlgorithmLibrary;
45
import org.gvsig.raster.fmap.FmapRasterLibrary;
46
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster;
47
import org.gvsig.raster.fmap.layers.FLyrRaster;
48
import org.gvsig.raster.mainplugin.config.Configuration;
49
import org.gvsig.raster.mainplugin.config.ConfigurationEvent;
50
import org.gvsig.raster.mainplugin.config.ConfigurationListener;
51
import org.gvsig.raster.tools.app.basic.raster.gui.preference.RasterPreferences;
52
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareDataStoreParametersRaw;
53
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareDataStoreParametersVTR;
54
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareLayerAskCoordinates;
55
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareLayerAskWritableDirectory;
56
import org.gvsig.raster.tools.app.basic.raster.process.ClippingProcess;
57
import org.gvsig.raster.tools.app.basic.tool.analysisview.ViewRasterAnalysisTocMenuEntry;
58
import org.gvsig.raster.tools.app.basic.tool.clip.ClippingTocMenuEntry;
59
import org.gvsig.raster.tools.app.basic.tool.colortable.ColorTableTocMenuEntry;
60
import org.gvsig.raster.tools.app.basic.tool.colortable.ui.library.RasterColorTablesFactory;
61
import org.gvsig.raster.tools.app.basic.tool.enhanced.EnhancedTocMenuEntry;
62
import org.gvsig.raster.tools.app.basic.tool.filter.FilterTocMenuEntry;
63
import org.gvsig.raster.tools.app.basic.tool.geolocation.GeoLocationTocMenuEntry;
64
import org.gvsig.raster.tools.app.basic.tool.histogram.HistogramTocMenuEntry;
65
import org.gvsig.raster.tools.app.basic.tool.infobypoint.InfoByRasterPointTocMenuEntry;
66
import org.gvsig.raster.tools.app.basic.tool.layerdatatype.LayerDatatypeTocMenuEntry;
67
import org.gvsig.raster.tools.app.basic.tool.multiresolution.ZoomResolutionLevelTocMenuEntry;
68
import org.gvsig.raster.tools.app.basic.tool.overview.OverviewsTocMenuEntry;
69
import org.gvsig.raster.tools.app.basic.tool.properties.panel.EnhancedPanel;
70
import org.gvsig.raster.tools.app.basic.tool.properties.panel.GeneralPanel;
71
import org.gvsig.raster.tools.app.basic.tool.properties.panel.InfoPanel;
72
import org.gvsig.raster.tools.app.basic.tool.properties.panel.TransparencyPanel;
73
import org.gvsig.raster.tools.app.basic.tool.rasterresolution.ZoomPixelCursorTocMenuEntry;
74
import org.gvsig.raster.tools.app.basic.tool.roi.ROIManagerTocMenuEntry;
75
import org.gvsig.raster.tools.app.basic.tool.saveas.SaveAsTocMenuEntry;
76
import org.gvsig.raster.tools.app.basic.tool.saveviewtoraster.SaveViewToRasterTocMenuEntry;
77
import org.gvsig.raster.tools.app.basic.tool.selectrasterlayer.SelectLayerTocMenuEntry;
78
import org.gvsig.raster.tools.app.basic.tool.setviewprojection.SetViewProjectionTocMenuEntry;
79
import org.gvsig.raster.tools.app.basic.tool.viewexport.SaveViewToImageTocMenuEntry;
80
import org.gvsig.raster.tools.app.basic.toolbox.ToolboxRasterToolsLoader;
81
import org.gvsig.tools.ToolsLocator;
82
import org.gvsig.tools.extensionpoint.ExtensionBuilder;
83
import org.gvsig.tools.extensionpoint.ExtensionPoint;
84
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
85

  
86

  
87
/**
88
 * Extensi?n que adapta a FMap y gvSIG la nueva implementaci?n de raster. Para
89
 * el cuadro de Propiedades de visualizaci?n de raster contiene el contenedor
90
 * base se registran la entrada del men? del TOC y los paneles en el cuadro.
91
 * Para la parte de FMap contiene una nueva capa raster y los drivers
92
 * necesarios.
93
 *
94
 * @author Nacho Brodin (nachobrodin@gmail.com)
95
 */
96
public class RasterExtension extends Extension implements ConfigurationListener, IExtensionQueryByAction {
97
	public static final String         CLIPPING_PROCESS_LABEL   = ClippingProcess.PROCESS_LABEL;
98
	
99
	/**
100
	 * Indica si en el panel de preferencias se refresca automaticamente la vista
101
	 * para mostrar los cambios
102
	 */
103
	public static boolean       autoRefreshView = true;
104

  
105
	/**
106
	 * Indica si se debe preguntar las coordenadas al cargar una capa que no las
107
	 * tenga
108
	 */
109
	public static boolean       askCoordinates = false;
110
	private ExtensionPoint      genericToolBarMenuExtensionPoint  = null;
111

  
112
	public void execute(String actionCommand) {
113
		//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que la del actionCommand
114
		//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar la acci?n a
115
		//trav?s de este.
116
		ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(actionCommand).getBuilder();
117
		if(ext != null && ext instanceof AbstractTocContextMenuAction) {
118
			IWindow w = PluginServices.getMDIManager().getActiveWindow();
119
			if(w instanceof AbstractViewPanel) {
120
				FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers();
121
				FLayer[] actives = lyrs.getActives();
122
				((AbstractTocContextMenuAction)ext).execute(null, actives);
123
			}
124
		}
125
	}
126

  
127
	public void initialize() {
128
		// Asignamos la configuracion global a FlyrRasterSE
129
		DefaultFLyrRaster.setConfiguration(Configuration.getSingleton());
130

  
131
		Configuration.addValueChangedListener(this);
132
		loadConfigurationValues();
133

  
134
		registerIcons();
135

  
136
		FmapRasterLibrary fmapRaster = new FmapRasterLibrary();
137
		fmapRaster.initialize();
138

  
139
		Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
140
		prefs.put("DataFolder", System.getProperty("user.home"));
141
		ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
142

  
143
		// Creaci?n del punto de extensi?n para registrar paneles en el cuadro de propiedades.
144
		if (!extensionPoints.has("RasterSEPropertiesDialog")) {
145
			ExtensionPoint point = extensionPoints.add("RasterSEPropertiesDialog");
146
			point.setDescription("Raster Properties registrable panels (register instances of javax.swing.JPanel)");
147
		}
148

  
149
		// A?adimos la configuracion de Raster a gvSIG
150

  
151
		ExtensionPoint point = extensionPoints.get("AplicationPreferences");
152
		point.append("RasterPreferences", "", RasterPreferences.class);
153

  
154
		// A?adimos paneles al cuadro de propiedades.
155
		point = extensionPoints.get("RasterSEPropertiesDialog");
156
		point.append("info", "", InfoPanel.class);
157
		point.append("transparencia", "", TransparencyPanel.class);
158
		point.append("realce", "", EnhancedPanel.class);
159
		point.append("general_panel", "", GeneralPanel.class);
160

  
161
		// A?adimos las entradas del men?  del toc de raster
162
		point = extensionPoints.get("View_TocActions");
163
		//point.append("RasterSEProperties", "Raster Properties", RasterPropertiesTocMenuEntry.getSingleton());
164
		point.append("SaveAs", "Save as raster layer", SaveAsTocMenuEntry.getSingleton());
165
		point.append("ZoomPixelCursor", "zoom to pixel resolution", ZoomPixelCursorTocMenuEntry.getSingleton());
166
		point.append("ROI", "ROIs for a raster layer", ROIManagerTocMenuEntry.getSingleton());
167
		point.append("Color table", "Color table for a raster layer", ColorTableTocMenuEntry.getSingleton());
168
		point.append("Histogram", "Histogram of a raster layer", HistogramTocMenuEntry.getSingleton());
169
		point.append("Overviews", "Build overviews", OverviewsTocMenuEntry.getSingleton());
170
		
171
		ApplicationManager appGvSigMan = ApplicationLocator.getManager();
172

  
173
		appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareLayerAskWritableDirectory());
174
		appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareDataStoreParametersRaw());
175
		appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareDataStoreParametersVTR());
176

  
177
		appGvSigMan.registerPrepareOpenLayer(new PrepareLayerAskCoordinates());
178

  
179
		appGvSigMan.registerColorTablesFactory(new RasterColorTablesFactory());
180

  
181
		registerMenuElements();
182
		registerProcesses();
183
	}
184
	
185
	private void registerProcesses() {
186
    	RasterBaseAlgorithmLibrary.register(CLIPPING_PROCESS_LABEL, ClippingProcess.class);
187
    	ClippingProcess.registerParameters();
188
	}
189

  
190
	/**
191
	 * Registra los iconos a utilizar en andami.
192
	 */
193
	private void registerIcons() {	
194
		//Actions
195
		IconThemeHelper.registerIcon("action", "menu-layer-icon", this);
196
		IconThemeHelper.registerIcon("action", "menu-process-icon", this);
197
		IconThemeHelper.registerIcon("action", "menu-transgeo-icon", this);
198
		IconThemeHelper.registerIcon("action", "menu-raster-export", this);
199
		
200
		IconThemeHelper.registerIcon("action", "layer-modify-roi", this);
201
		IconThemeHelper.registerIcon("action", "layer-histogram", this);
202
		IconThemeHelper.registerIcon("action", "layer-color-table", this);
203
		IconThemeHelper.registerIcon("action", "layer-modify-overviews", this);
204
		IconThemeHelper.registerIcon("action", "layer-properties-raster", this);
205
		IconThemeHelper.registerIcon("action", "layer-filter-raster", this);
206
		IconThemeHelper.registerIcon("action", "layer-enhanced", this);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff