Revision 21095

View differences:

org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.227/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.227</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.426</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.249</org.gvsig.raster.version>
20
            <org.gvsig.geoprocess.version>2.2.256</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.227</connection>
43
      <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.227</developerConnection>
44
      <url>https://devel.gvsig.org/redmine/projects/gvsig-raster/repository/show/org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.227</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.227</version>
73
			</dependency>
74
			<dependency>
75
				<groupId>org.gvsig</groupId>
76
				<artifactId>org.gvsig.raster.tools.algorithm.layerdatatype</artifactId>
77
       	<version>2.2.227</version>
78
			</dependency>
79
			<dependency>
80
				<groupId>org.gvsig</groupId>
81
				<artifactId>org.gvsig.raster.tools.algorithm.saveraster</artifactId>
82
       	<version>2.2.227</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.227</version>
95
    	</dependency>
96
    	<dependency>
97
          <groupId>org.gvsig</groupId>
98
	        <artifactId>org.gvsig.raster.tools.algorithm.swing.impl</artifactId>
99
	        <version>2.2.227</version>
100
    	</dependency>
101
    	<dependency>
102
          <groupId>org.gvsig</groupId>
103
	        <artifactId>org.gvsig.raster.tools.algorithm.maskthreshold</artifactId>
104
	        <version>2.2.227</version>
105
    	</dependency>
106
    	<dependency>
107
				<groupId>org.gvsig</groupId>
108
				<artifactId>org.gvsig.raster.tools.toolbox.algorithm</artifactId>
109
				<version>2.2.227</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.227/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.227/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.227/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.227/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.227/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.227/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.227/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.227/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.227</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.227/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.227/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.PrepareLayerAskWritableDirectory;
55
import org.gvsig.raster.tools.app.basic.raster.process.ClippingProcess;
56
import org.gvsig.raster.tools.app.basic.tool.analysisview.ViewRasterAnalysisTocMenuEntry;
57
import org.gvsig.raster.tools.app.basic.tool.clip.ClippingTocMenuEntry;
58
import org.gvsig.raster.tools.app.basic.tool.colortable.ColorTableTocMenuEntry;
59
import org.gvsig.raster.tools.app.basic.tool.colortable.ui.library.RasterColorTablesFactory;
60
import org.gvsig.raster.tools.app.basic.tool.enhanced.EnhancedTocMenuEntry;
61
import org.gvsig.raster.tools.app.basic.tool.filter.FilterTocMenuEntry;
62
import org.gvsig.raster.tools.app.basic.tool.geolocation.GeoLocationTocMenuEntry;
63
import org.gvsig.raster.tools.app.basic.tool.histogram.HistogramTocMenuEntry;
64
import org.gvsig.raster.tools.app.basic.tool.infobypoint.InfoByRasterPointTocMenuEntry;
65
import org.gvsig.raster.tools.app.basic.tool.layerdatatype.LayerDatatypeTocMenuEntry;
66
import org.gvsig.raster.tools.app.basic.tool.multiresolution.ZoomResolutionLevelTocMenuEntry;
67
import org.gvsig.raster.tools.app.basic.tool.overview.OverviewsTocMenuEntry;
68
import org.gvsig.raster.tools.app.basic.tool.properties.panel.EnhancedPanel;
69
import org.gvsig.raster.tools.app.basic.tool.properties.panel.GeneralPanel;
70
import org.gvsig.raster.tools.app.basic.tool.properties.panel.InfoPanel;
71
import org.gvsig.raster.tools.app.basic.tool.properties.panel.TransparencyPanel;
72
import org.gvsig.raster.tools.app.basic.tool.rasterresolution.ZoomPixelCursorTocMenuEntry;
73
import org.gvsig.raster.tools.app.basic.tool.roi.ROIManagerTocMenuEntry;
74
import org.gvsig.raster.tools.app.basic.tool.saveas.SaveAsTocMenuEntry;
75
import org.gvsig.raster.tools.app.basic.tool.saveviewtoraster.SaveViewToRasterTocMenuEntry;
76
import org.gvsig.raster.tools.app.basic.tool.selectrasterlayer.SelectLayerTocMenuEntry;
77
import org.gvsig.raster.tools.app.basic.tool.setviewprojection.SetViewProjectionTocMenuEntry;
78
import org.gvsig.raster.tools.app.basic.tool.viewexport.SaveViewToImageTocMenuEntry;
79
import org.gvsig.raster.tools.app.basic.toolbox.ToolboxRasterToolsLoader;
80
import org.gvsig.tools.ToolsLocator;
81
import org.gvsig.tools.extensionpoint.ExtensionBuilder;
82
import org.gvsig.tools.extensionpoint.ExtensionPoint;
83
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
84

  
85

  
86
/**
87
 * Extensi?n que adapta a FMap y gvSIG la nueva implementaci?n de raster. Para
88
 * el cuadro de Propiedades de visualizaci?n de raster contiene el contenedor
89
 * base se registran la entrada del men? del TOC y los paneles en el cuadro.
90
 * Para la parte de FMap contiene una nueva capa raster y los drivers
91
 * necesarios.
92
 *
93
 * @author Nacho Brodin (nachobrodin@gmail.com)
94
 */
95
public class RasterExtension extends Extension implements ConfigurationListener, IExtensionQueryByAction {
96
	public static final String         CLIPPING_PROCESS_LABEL   = ClippingProcess.PROCESS_LABEL;
97

  
98
	/**
99
	 * Indica si en el panel de preferencias se refresca automaticamente la vista
100
	 * para mostrar los cambios
101
	 */
102
	public static boolean       autoRefreshView = true;
103

  
104
	private ExtensionPoint      genericToolBarMenuExtensionPoint  = null;
105

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

  
121
	public void initialize() {
122
		// Asignamos la configuracion global a FlyrRasterSE
123
		DefaultFLyrRaster.setConfiguration(Configuration.getSingleton());
124

  
125
		Configuration.addValueChangedListener(this);
126
		loadConfigurationValues();
127

  
128
		registerIcons();
129

  
130
		FmapRasterLibrary fmapRaster = new FmapRasterLibrary();
131
		fmapRaster.initialize();
132

  
133
		Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
134
		prefs.put("DataFolder", System.getProperty("user.home"));
135
		ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
136

  
137
		// Creaci?n del punto de extensi?n para registrar paneles en el cuadro de propiedades.
138
		if (!extensionPoints.has("RasterSEPropertiesDialog")) {
139
			ExtensionPoint point = extensionPoints.add("RasterSEPropertiesDialog");
140
			point.setDescription("Raster Properties registrable panels (register instances of javax.swing.JPanel)");
141
		}
142

  
143
		// A?adimos la configuracion de Raster a gvSIG
144

  
145
		ExtensionPoint point = extensionPoints.get("AplicationPreferences");
146
		point.append("RasterPreferences", "", RasterPreferences.class);
147

  
148
		// A?adimos paneles al cuadro de propiedades.
149
		point = extensionPoints.get("RasterSEPropertiesDialog");
150
		point.append("info", "", InfoPanel.class);
151
		point.append("general_panel", "", GeneralPanel.class);
152
		point.append("transparencia", "", TransparencyPanel.class);
153
		point.append("realce", "", EnhancedPanel.class);
154

  
155

  
156
		// A?adimos las entradas del men?  del toc de raster
157
		point = extensionPoints.get("View_TocActions");
158
		//point.append("RasterSEProperties", "Raster Properties", RasterPropertiesTocMenuEntry.getSingleton());
159
		point.append("SaveAs", "Save as raster layer", SaveAsTocMenuEntry.getSingleton());
160
		point.append("ZoomPixelCursor", "zoom to pixel resolution", ZoomPixelCursorTocMenuEntry.getSingleton());
161
		point.append("ROI", "ROIs for a raster layer", ROIManagerTocMenuEntry.getSingleton());
162
		point.append("Color table", "Color table for a raster layer", ColorTableTocMenuEntry.getSingleton());
163
		point.append("Histogram", "Histogram of a raster layer", HistogramTocMenuEntry.getSingleton());
164
		point.append("Overviews", "Build overviews", OverviewsTocMenuEntry.getSingleton());
165

  
166
		ApplicationManager appGvSigMan = ApplicationLocator.getManager();
167

  
168
		appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareLayerAskWritableDirectory());
169
		appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareDataStoreParametersRaw());
170
		appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareDataStoreParametersVTR());
171

  
172
		appGvSigMan.registerColorTablesFactory(new RasterColorTablesFactory());
173

  
174
		registerMenuElements();
175
		registerProcesses();
176
	}
177

  
178
	private void registerProcesses() {
179
    	RasterBaseAlgorithmLibrary.register(CLIPPING_PROCESS_LABEL, ClippingProcess.class);
180
    	ClippingProcess.registerParameters();
181
	}
182

  
183
	/**
184
	 * Registra los iconos a utilizar en andami.
185
	 */
186
	private void registerIcons() {
187
		//Actions
188
		IconThemeHelper.registerIcon("action", "menu-layer-icon", this);
189
		IconThemeHelper.registerIcon("action", "menu-process-icon", this);
190
		IconThemeHelper.registerIcon("action", "menu-transgeo-icon", this);
191
		IconThemeHelper.registerIcon("action", "menu-raster-export", this);
192

  
193
		IconThemeHelper.registerIcon("action", "layer-modify-roi", this);
194
		IconThemeHelper.registerIcon("action", "layer-histogram", this);
195
		IconThemeHelper.registerIcon("action", "layer-color-table", this);
196
		IconThemeHelper.registerIcon("action", "layer-modify-overviews", this);
197
		IconThemeHelper.registerIcon("action", "layer-properties-raster", this);
198
		IconThemeHelper.registerIcon("action", "layer-filter-raster", this);
199
		IconThemeHelper.registerIcon("action", "layer-enhanced", this);
200
		IconThemeHelper.registerIcon("action", "view-raster-analysis", this);
201
		IconThemeHelper.registerIcon("action", "view-select-raster-layer", this);
202
		IconThemeHelper.registerIcon("action", "layer-geolocalization", this);
203
		IconThemeHelper.registerIcon("action", "tools-raster-reproject", this);
204
		IconThemeHelper.registerIcon("action", "view-export-georeferenced-raster", this);
205
		IconThemeHelper.registerIcon("action", "layer-saveas", this);
206
		IconThemeHelper.registerIcon("action", "layer-clip-raster", this);
207
		IconThemeHelper.registerIcon("action", "layer-zoom-res-level", this);
208
		IconThemeHelper.registerIcon("action", "layer-info-by-pixel", this);
209
		IconThemeHelper.registerIcon("action", "layer-vectorization", this);
210
		IconThemeHelper.registerIcon("action", "view-export-image", this);
211

  
212
		//Cursor
213
		IconThemeHelper.registerIcon("cursor", "zoom-pixel-cursor", this);
214
		IconThemeHelper.registerIcon("cursor", "hor-arrow-cursor", this);
215
		IconThemeHelper.registerIcon("cursor", "ver-arrow-cursor", this);
216
		IconThemeHelper.registerIcon("cursor", "inclder-arrow-cursor", this);
217
		IconThemeHelper.registerIcon("cursor", "inclizq-arrow-cursor", this);
218
		IconThemeHelper.registerIcon("cursor", "shear-y-cursor", this);
219
		IconThemeHelper.registerIcon("cursor", "shear-x-cursor", this);
220
		IconThemeHelper.registerIcon("cursor", "rotate-cursor", this);
221
		IconThemeHelper.registerIcon("cursor", "rot-inf-der-cursor", this);
222
		IconThemeHelper.registerIcon("cursor", "rot-inf-izq-cursor", this);
223
		IconThemeHelper.registerIcon("cursor", "rot-sup-der-cursor", this);
224
		IconThemeHelper.registerIcon("cursor", "rot-sup-izq-cursor", this);
225
		IconThemeHelper.registerIcon("cursor", "point-select-cursor", this);
226
		IconThemeHelper.registerIcon("cursor", "hand-cursor", this);
227
		IconThemeHelper.registerIcon("cursor", "rectangle-select-cursor", this);
228
		IconThemeHelper.registerIcon("cursor", "not-valid-cursor", this);
229
		IconThemeHelper.registerIcon("cursor", "line-cursor", this);
230
		IconThemeHelper.registerIcon("cursor", "polygon-cursor", this);
231
		IconThemeHelper.registerIcon("cursor", "point-cursor", this);
232

  
233
		//Other
234
		IconThemeHelper.registerIcon(null, "forward-icon", this);
235
		IconThemeHelper.registerIcon(null, "backward-icon", this);
236
		IconThemeHelper.registerIcon(null, "blank-icon", this);
237
		IconThemeHelper.registerIcon(null, "addlayer-icon", this);
238
		IconThemeHelper.registerIcon(null, "delall-icon", this);
239
		IconThemeHelper.registerIcon(null, "back-icon", this);
240
		IconThemeHelper.registerIcon(null, "next-icon", this);
241
		IconThemeHelper.registerIcon(null, "undo-icon", this);
242
		IconThemeHelper.registerIcon(null, "pixel-increase", this);
243
		IconThemeHelper.registerIcon(null, "pref-raster-icon", this);
244
		IconThemeHelper.registerIcon(null, "back-icon", this);
245
		IconThemeHelper.registerIcon(null, "next-icon", this);
246
		IconThemeHelper.registerIcon(null, "undo-icon", this);
247
		//IconThemeHelper.registerIcon(null, "save-raster", this);
248
		IconThemeHelper.registerIcon(null, "pixel-increase", this);
249
		//IconThemeHelper.registerIcon(null, "select-raster", this);
250
		IconThemeHelper.registerIcon(null, "pref-raster-icon", this);
251
		IconThemeHelper.registerIcon(null, "reset-icon", this);
252
		IconThemeHelper.registerIcon(null, "tfwload-icon", this);
253
		IconThemeHelper.registerIcon(null, "centerraster-icon", this);
254
		IconThemeHelper.registerIcon(null, "increase-icon", this);
255
		IconThemeHelper.registerIcon(null, "decrease-icon", this);
256
		IconThemeHelper.registerIcon(null, "selectzoomarea-icon", this);
257
		IconThemeHelper.registerIcon(null, "prevzoom-icon", this);
258
		IconThemeHelper.registerIcon(null, "fullview-icon", this);
259
		IconThemeHelper.registerIcon(null, "exporttoascii-icon", this);
260
		IconThemeHelper.registerIcon(null, "exporttocsv-icon", this);
261
		IconThemeHelper.registerIcon(null, "importfromcsv-icon", this);
262
		IconThemeHelper.registerIcon(null, "exit-icon", this);
263
		IconThemeHelper.registerIcon(null, "options-icon", this);
264
		IconThemeHelper.registerIcon(null, "add-icon", this);
265
		IconThemeHelper.registerIcon(null, "centerpoint-icon", this);
266
		IconThemeHelper.registerIcon(null, "selectrgb-icon", this);
267
		IconThemeHelper.registerIcon(null, "focus-icon", this);
268
		IconThemeHelper.registerIcon(null, "point-icon", this);
269
		IconThemeHelper.registerIcon(null, "line-icon", this);
270
		IconThemeHelper.registerIcon(null, "polygon-icon", this);
271
		IconThemeHelper.registerIcon(null, "import-icon", this);
272
		IconThemeHelper.registerIcon(null, "round-icon", this);
273
		//IconThemeHelper.registerIcon(null, "rois-icon", this);
274
		IconThemeHelper.registerIcon(null, "fullextent-icon", this);
275
		IconThemeHelper.registerIcon(null, "selecttool-icon", this);
276
		IconThemeHelper.registerIcon(null, "forward-icon", this);
277
		IconThemeHelper.registerIcon(null, "backward-icon", this);
278
		IconThemeHelper.registerIcon(null, "datatype-icon", this);
279
		IconThemeHelper.registerIcon(null, "setviewprojection-raster-icon", this);
280
		IconThemeHelper.registerIcon(null, "gvsig-icon", this);
281
		IconThemeHelper.registerIcon(null, "gvsig-icon16x16", this);
282
	}
283

  
284
	public void registerMenuElements() {
285
		// Creaci?n del punto de extensi?n para registrar paneles en el cuadro de propiedades.
286
		ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
287
		ExtensionPoint point = extensionPoints.get("GenericToolBarGroup");
288
		point.setDescription("Punto de extension para los grupos de menus del GenericToolBarPanel");
289

  
290
		point = extensionPoints.get("GenericToolBarMenu");
291
		point.setDescription("Punto de extension para los submenus del GenericToolBarPanel");
292
		//point.append("RasterProperties", "", RasterPropertiesTocMenuEntry.getSingleton());
293
		point.append("SelectLayer", "", SelectLayerTocMenuEntry.getSingleton());
294
		point.append("HistogramPanel", "", HistogramTocMenuEntry.getSingleton());
295
		point.append("ViewColorTable", "",ColorTableTocMenuEntry.getSingleton());
296
		if(RasterLocator.getManager().isOverviewBuilderSupported())
297
			point.append("Overviews", "", OverviewsTocMenuEntry.getSingleton());
298
		point.append("RoisManager", "", ROIManagerTocMenuEntry.getSingleton());
299
		point.append("ViewRasterAnalysis", "", ViewRasterAnalysisTocMenuEntry.getSingleton());
300
		point.append("ZoomResolutionLevel", "", ZoomResolutionLevelTocMenuEntry.getSingleton());
301

  
302
		//point.append("SaveRaster", "", SaveViewToRasterTocMenuEntry.getSingleton());
303
		point.append("SaveAs", "", SaveAsTocMenuEntry.getSingleton());
304
		point.append("ClippingPanel", "", ClippingTocMenuEntry.getSingleton());
305
		point.append("SaveViewToRaster", "", SaveViewToRasterTocMenuEntry.getSingleton());
306
		point.append("SaveViewToImageRaster", "", SaveViewToImageTocMenuEntry.getSingleton());
307

  
308
		point.append("FilterPanel", "", FilterTocMenuEntry.getSingleton());
309
		point.append("EnhancedPanel", "", EnhancedTocMenuEntry.getSingleton());
310
		point.append("InfoByPoint", "", InfoByRasterPointTocMenuEntry.getSingleton());
311
		point.append("LayerDatatype", "", LayerDatatypeTocMenuEntry.getSingleton());
312

  
313
		point.append("GeoLocation", "", GeoLocationTocMenuEntry.getSingleton());
314
		point.append("SetProjection", "", SetViewProjectionTocMenuEntry.getSingleton());
315

  
316
	}
317

  
318
	public boolean isEnabled() {
319
		org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow();
320
		if (f == null)
321
			return false;
322
		if (f instanceof AbstractViewPanel) {
323
			FLayers lyrs = ((AbstractViewPanel)f).getMapControl().getMapContext().getLayers();
324
			for (int i = 0; i < lyrs.getLayersCount(); i++)
325
				if (lyrs.getLayer(i) instanceof FLyrRaster)
326
					return true;
327
		}
328
		return false;
329
	}
330

  
331
	/**
332
	 * Mostramos el control si hay alguna capa cargada.
333
	 */
334
	public boolean isVisible() {
335
		org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow();
336
		if (f == null)
337
			return false;
338

  
339
		if (f instanceof AbstractViewPanel) {
340
			FLayers lyrs = ((AbstractViewPanel)f).getMapControl().getMapContext().getLayers();
341
			if (lyrs.getLayersCount() > 0)
342
				return true;
343
		}
344

  
345
		return false;
346
	}
347

  
348
	/**
349
	 * Carga los valores de configuracion iniciales
350
	 */
351
	private void loadConfigurationValues() {
352
		autoRefreshView = Configuration.getValue("general_auto_preview", Boolean.TRUE).booleanValue();
353
		RasterLibrary.defaultNumberOfClasses = Configuration.getValue("general_defaultNumberOfClasses", Integer.valueOf(RasterLibrary.defaultNumberOfClasses)).intValue();
354
		RasterLibrary.cacheSize = Configuration.getValue("cache_size", Long.valueOf(RasterLibrary.cacheSize)).longValue();
355
		RasterLibrary.pageSize = Configuration.getValue("cache_pagesize", Double.valueOf(RasterLibrary.pageSize)).doubleValue();
356
		RasterLibrary.pagsPerGroup = Configuration.getValue("cache_pagspergroup", Integer.valueOf(RasterLibrary.pagsPerGroup)).intValue();
357
		RasterLibrary.blockHeight = Configuration.getValue("cache_blockheight", Integer.valueOf(RasterLibrary.blockHeight)).intValue();
358
		//RasterLibrary.defaultNoDataValue = Configuration.getValue("nodata_value", Double.valueOf(RasterLibrary.defaultNoDataValue)).doubleValue();
359
	}
360

  
361
	@SuppressWarnings("deprecation")
362
	public void actionConfigurationChanged(ConfigurationEvent e) {
363
		if (e.getKey().equals("nodata_transparency_enabled")) {
364
			boolean noDataTransparent = ((Boolean) e.getValue()).booleanValue();
365
			IWindow[] f = PluginServices.getMDIManager().getAllWindows();
366
			if (f == null)
367
				return;
368
			for (int i = 0; i < f.length; i++)
369
				if (f[i] instanceof AbstractViewPanel) {
370
					AbstractViewPanel vista = (AbstractViewPanel) f[i];
371
					ViewDocument model = vista.getModel();
372
					MapContext map = model.getMapContext();
373
					FLayers lyrs = map.getLayers();
374

  
375
					ArrayList<FLayer> list = RasterToolsUtil.getRasterLayerList(lyrs, null);
376
					for (int j = 0; j < list.size(); j++)
377
						if(list.get(j) instanceof FLyrRaster)
378
							((RasterDataStore)((FLyrRaster)list.get(j)).getDataStore()).getNoDataValue().setNoDataTransparent(noDataTransparent);
379
				}
380

  
381
			return;
382
		}
383

  
384
		if (e.getKey().equals("general_auto_preview")) {
385
			if(e.getValue() instanceof String)
386
				autoRefreshView = new Boolean((String) e.getValue()).booleanValue();
387
			if(e.getValue() instanceof Boolean)
388
				autoRefreshView = ((Boolean) e.getValue()).booleanValue();
389
			return;
390
		}
391

  
392
		if (e.getKey().equals("general_defaultNumberOfClasses")) {
393
			if(e.getValue() instanceof String)
394
				try {
395
					RasterLibrary.defaultNumberOfClasses = new Integer(
396
							(String) e.getValue()).intValue();
397
				} catch (NumberFormatException exc) {
398
					//Valor por defecto en el n?mero de clases
399
				}
400

  
401
			if(e.getValue() instanceof Integer)
402
				RasterLibrary.defaultNumberOfClasses = ((Integer) e.getValue()).intValue();
403
			return;
404
		}
405

  
406
		if (e.getKey().equals("cache_size")) {
407
			if(e.getValue() instanceof String)
408
				try {
409
					RasterLibrary.cacheSize = new Long((String) e.getValue()).longValue();
410
				} catch (NumberFormatException exc) {
411
					//Valor por defecto en la cache
412
				}
413
			if(e.getValue() instanceof Long)
414
				RasterLibrary.cacheSize = ((Long) e.getValue()).longValue();
415
			return;
416
		}
417

  
418
		if (e.getKey().equals("cache_pagesize")) {
419
			if(e.getValue() instanceof String)
420
				try {
421
					RasterLibrary.pageSize = new Double((String) e.getValue())
422
							.doubleValue();
423
				} catch (NumberFormatException exc) {
424
					//Valor por defecto en la cache
425
				}
426

  
427
			if(e.getValue() instanceof Double)
428
				RasterLibrary.pageSize = ((Double) e.getValue()).doubleValue();
429
			return;
430
		}
431

  
432
		if (e.getKey().equals("cache_pagspergroup")) {
433
			if(e.getValue() instanceof String)
434
				try {
435
					RasterLibrary.pagsPerGroup = new Integer((String) e
436
							.getValue()).intValue();
437
				} catch (NumberFormatException exc) {
438
					//Valor por defecto en la cache
439
				}
440

  
441
			if(e.getValue() instanceof Integer)
442
				RasterLibrary.pagsPerGroup = ((Integer) e.getValue()).intValue();
443
			return;
444
		}
445

  
446
		if (e.getKey().equals("cache_blockheight")) {
447
			if(e.getValue() instanceof String)
448
				try {
449
					RasterLibrary.blockHeight = new Integer((String) e
450
							.getValue()).intValue();
451
				} catch (NumberFormatException exc) {
452
					//Valor por defecto en la cache
453
				}
454
			if(e.getValue() instanceof Integer)
455
				RasterLibrary.blockHeight = ((Integer) e.getValue()).intValue();
456
			return;
457
		}
458

  
459
		/*if (e.getKey().equals("nodata_value")) {
460
			if(e.getValue() instanceof String)
461
				try {
462
					RasterLibrary.defaultNoDataValue = new Double((String) e
463
							.getValue()).doubleValue();
464
				} catch (NumberFormatException exc) {
465
					//Valor por defecto en valor nodata
466
				}
467

  
468
			if(e.getValue() instanceof Double)
469
				RasterLibrary.defaultNoDataValue = ((Double) e.getValue()).doubleValue();
470
			return;
471
		}*/
472

  
473
	}
474

  
475
	public void execute(ITocItem item, FLayer[] selectedItems) {
476
		this.execute("SELECTIMAGE");
477
	}
478

  
479
	public void postInitialize() {
480
		super.postInitialize();
481
		new ToolboxRasterToolsLoader().registerTool();
482
	}
483

  
484
	public boolean canQueryByAction() {
485
		return true;
486
	}
487

  
488
	public boolean isEnabled(String action) {
489
		//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que el actionCommand
490
		//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar isEnable a
491
		//trav?s de este.
492
		if(getGenericToolBarMenuExtensionPoint() != null && getGenericToolBarMenuExtensionPoint().get(action) != null) {
493
			ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(action).getBuilder();
494
			if(ext != null && ext instanceof AbstractTocContextMenuAction) {
495
				IWindow w = PluginServices.getMDIManager().getActiveWindow();
496
				if(w instanceof AbstractViewPanel) {
497
					FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers();
498
					FLayer[] actives = lyrs.getActives();
499
					return ((AbstractTocContextMenuAction)ext).isEnabled(null, actives);
500
				}
501
			}
502
		}
503
		return false;
504
	}
505

  
506
	public boolean isVisible(String action) {
507
		//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que el actionCommand
508
		//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar isVisible a
509
		//trav?s de este.
510
		if(getGenericToolBarMenuExtensionPoint() != null && getGenericToolBarMenuExtensionPoint().get(action) != null) {
511
			ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(action).getBuilder();
512
			if(ext != null && ext instanceof AbstractTocContextMenuAction) {
513
				IWindow w = PluginServices.getMDIManager().getActiveWindow();
514
				if(w instanceof AbstractViewPanel) {
515
					FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers();
516
					FLayer[] actives = lyrs.getActives();
517
					return ((AbstractTocContextMenuAction)ext).isVisible(null, actives);
518
				}
519
			}
520
		}
521
		return false;
522
	}
523

  
524
	public ExtensionPoint getGenericToolBarMenuExtensionPoint() {
525
		if(genericToolBarMenuExtensionPoint == null) {
526
			ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
527
			genericToolBarMenuExtensionPoint = extensionPoints.get("GenericToolBarMenu");
528
		}
529
		return genericToolBarMenuExtensionPoint;
530
	}
531
}
0 532

  
org.gvsig.raster.tools/tags/org.gvsig.raster.tools-2.2.227/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/raw/tool/VRTFileCreator.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
* 
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff