Revision 35114

View differences:

tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/distribution/distribution.xml
1
<assembly>
2
</assembly>
0 3

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/buildNumber.properties
1
#maven.buildNumber.plugin properties file
2
#Thu May 05 17:09:44 CEST 2011
3
buildNumber=2024
0 4

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/.project
1
<?xml version="1.0" encoding="UTF-8"?>
2
<projectDescription>
3
	<name>org.gvsig.symbology.app</name>
4
	<comment></comment>
5
	<projects>
6
	</projects>
7
	<buildSpec>
8
	</buildSpec>
9
	<natures>
10
	</natures>
11
</projectDescription>
0 12

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/org.gvsig.symbology.app.importsymbols/buildNumber.properties
1
#maven.buildNumber.plugin properties file
2
#Fri May 06 08:36:44 CEST 2011
3
buildNumber=2025
0 4

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/org.gvsig.symbology.app.importsymbols/src/main/java/org/gvsig/symbology/app/importsymbols/ImportSymbolsExtension.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

  
23
package org.gvsig.symbology.app.importsymbols;
24

  
25
import java.awt.Component;
26
import java.io.File;
27
import java.io.FileInputStream;
28
import java.io.FileOutputStream;
29
import java.io.IOException;
30
import java.net.URL;
31
import java.text.MessageFormat;
32

  
33
import javax.swing.JFileChooser;
34
import javax.swing.JOptionPane;
35
import javax.swing.filechooser.FileNameExtensionFilter;
36

  
37
import org.slf4j.Logger;
38
import org.slf4j.LoggerFactory;
39

  
40
import org.gvsig.andami.plugins.Extension;
41
import org.gvsig.fmap.mapcontext.MapContextLocator;
42
import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolManager;
43
import org.gvsig.symbology.SymbologyLocator;
44
import org.gvsig.symbology.SymbologyManager;
45
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.marker.IPictureMarkerSymbol;
46
import org.gvsig.tools.ToolsLocator;
47
import org.gvsig.tools.persistence.PersistenceManager;
48
import org.gvsig.tools.persistence.PersistentState;
49
import org.gvsig.tools.persistence.exception.PersistenceException;
50
import org.gvsig.tools.persistence.exception.PersistenceValidateExceptions;
51

  
52
public class ImportSymbolsExtension extends Extension {
53

  
54
    private static Logger LOG =
55
        LoggerFactory.getLogger(ImportSymbolsExtension.class);
56

  
57
    // returns the output folder (/home/user/gvSIG/Symbols)
58
    private File getOutputFolderPath() {
59

  
60
        SymbolManager manager = MapContextLocator.getSymbolManager();
61
        return new File(manager.getSymbolPreferences().getSymbolLibraryPath());
62
    }
63

  
64
    private String deleteExtension(File file) {
65
        String outFileName =
66
            file.getPath().substring(0, file.getPath().lastIndexOf("."));
67
        return outFileName;
68

  
69
    }
70

  
71
    // gets the selection image (from filename.png it returns filenamesel.png,
72
    // for example)
73
    private File getSelImage(File imageIn) {
74

  
75
        String cadena = deleteExtension(imageIn);
76
        String extension =
77
            imageIn.getPath().substring(imageIn.getPath().lastIndexOf("."),
78
                imageIn.getPath().length());
79

  
80
        String selPath = cadena + "sel" + extension;
81
        File imageOut = new File(selPath);
82

  
83
        return imageOut;
84

  
85
    }
86

  
87
    // Copies File imageIn to imageOut
88
    private void copy(File imageIn, File imageOut) throws IOException {
89

  
90
        FileInputStream from = null;
91
        FileOutputStream to = null;
92

  
93
        from = new FileInputStream(imageIn.getPath());
94
        to = new FileOutputStream(imageOut.getPath());
95

  
96
        try {
97

  
98
            byte[] buffer = new byte[4096];
99
            int bytesRead;
100

  
101
            while ((bytesRead = from.read(buffer)) != -1) {
102
                to.write(buffer, 0, bytesRead); // write
103
            }
104

  
105
        } finally {
106
            if (from != null) {
107
                try {
108
                    from.close();
109
                } catch (IOException e) {
110
                    ;
111
                }
112
            }
113
            if (to != null) {
114
                try {
115
                    to.close();
116
                } catch (IOException e) {
117
                    ;
118
                }
119
            }
120
        }
121

  
122
    }
123

  
124
    private void addImageSymbol(File image) throws IOException {
125

  
126
        int option;
127
        boolean sobreescribir = true;
128
        File selImage = getSelImage(image);
129

  
130
        File imageOut = new File(getOutputFolderPath() + "/" + image.getName());
131
        File selImageOut =
132
            new File(getOutputFolderPath() + "/" + selImage.getName());
133

  
134
        // Overwrite or not
135
        if (imageOut.exists()) {
136
            Object[] options = { getText("_Overwrite"), getText("_Cancel") };
137

  
138
            option =
139
                JOptionPane
140
                    .showOptionDialog(
141
                        null,
142
                        MessageFormat
143
                            .format(
144
                                getText("The file_{0}_already_exists.\n\n_Do_you_want_to_overwrite_it?"),
145
                                imageOut.getPath()),
146
                        getText("_Import_symbols"), JOptionPane.DEFAULT_OPTION,
147
                        JOptionPane.INFORMATION_MESSAGE, null, options,
148
                        options[0]);
149

  
150
            if (option == 1) {
151
                sobreescribir = false;
152
            }
153
        }
154

  
155
        SymbologyManager manager = SymbologyLocator.getSymbologyManager();
156
        SymbolManager symbolManager = MapContextLocator.getSymbolManager();
157

  
158
        if (sobreescribir) {
159
            try {
160

  
161
                // Copies the image to the output folder
162
                copy(image, imageOut);
163

  
164
                URL imageURL = imageOut.toURI().toURL();
165
                URL selImageURL = null;
166

  
167
                // tries to copy the selection image
168
                if (selImage.exists()) {
169
                    copy(selImage, selImageOut);
170
                    selImageURL = selImageOut.toURI().toURL();
171
                }
172

  
173
                IPictureMarkerSymbol symbol =
174
                    manager.createPictureMarkerSymbol(imageURL, selImageURL);
175

  
176
                PersistenceManager persistenceManager =
177
                    ToolsLocator.getPersistenceManager();
178

  
179
                PersistentState state = persistenceManager.getState(symbol);
180

  
181
                // change file extension
182
                String outFileName =
183
                    deleteExtension(imageOut)
184
                        + symbolManager.getSymbolPreferences()
185
                            .getSymbolFileExtension();
186

  
187
                FileOutputStream out = new FileOutputStream(outFileName);
188
                persistenceManager.saveState(state, out);
189

  
190
            } catch (PersistenceValidateExceptions e) {
191
                throw new IOException(e);
192
            } catch (PersistenceException e) {
193
                throw new IOException(e);
194
            }
195
        } else {
196

  
197
        }
198
    }
199

  
200
    public void execute(String actionCommand) {
201
        if (actionCommand.equalsIgnoreCase("Import_symbols")) {
202

  
203
            // Create a file chooser
204
            final JFileChooser fc = new JFileChooser();
205

  
206
            Component parent = null;
207

  
208
            // the fileChooser will only accept jpg, gif, png, jpeg, bmp and svg
209
            // image formats
210
            FileNameExtensionFilter filter =
211
                new FileNameExtensionFilter(
212
                    "JPG, GIF, PNG, JPEG, BMP & SVG Images", "png", "jpg",
213
                    "gif", "jpeg", "bmp", "svg");
214
            fc.setFileFilter(filter);
215
            fc.setMultiSelectionEnabled(true);
216

  
217
            fc.showDialog(parent, getText("_Import_symbols"));
218

  
219
            // for every selected file, a symbol is created
220
            for (int i = 0; i < fc.getSelectedFiles().length; i++) {
221
                File image = fc.getSelectedFiles()[i];
222
                try {
223
                    addImageSymbol(image);
224
                } catch (IOException e) {
225
                    LOG.error(MessageFormat.format(
226
                        getText("_An error_ocurred_creating_the_symbol_related_to_{0}"),
227
                        image.getAbsolutePath()), e);
228

  
229
                    // Error message, the symbol may not have been imported.
230
                    JOptionPane
231
                        .showMessageDialog(
232
                            null,
233
                            MessageFormat
234
                                .format(
235
                                    getText("_An_error_ocurred_creating_the_simbol_related_to_{0}"),
236
                                    image.getAbsolutePath()),
237
                            "_Import_symbols", JOptionPane.ERROR_MESSAGE);
238
                }
239
            }
240
            // Message that the import has finished, with or without errors.
241
            JOptionPane.showMessageDialog(null,
242
                getText("_Importing_symbols_has_finished."),
243
                "_Import_symbols", JOptionPane.INFORMATION_MESSAGE);
244

  
245
        }
246
    }
247

  
248
    public void initialize() {
249

  
250
    }
251

  
252
    @Override
253
    public void postInitialize() {
254

  
255
    }
256

  
257
    public boolean isEnabled() {
258
        return true;
259
    }
260

  
261
    public boolean isVisible() {
262
        return true;
263
    }
264

  
265
}
0 266

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/org.gvsig.symbology.app.importsymbols/src/main/resources/config/config.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<plugin-config>
3
	<libraries library-dir="lib"/>
4
	<depends plugin-name="org.gvsig.app"/>
5
	<resourceBundle name="text"/>
6
	<extensions>
7
		<extension class-name="org.gvsig.symbology.app.importsymbols.ImportSymbolsExtension"
8
			description=""
9
			active="true">
10
			<menu text="tools/Import symbols"
11
				  tooltip="Punctual symbol importer from images that exist in a folder"
12
				  action-command="Import_symbols" />			
13
		</extension>
14
	</extensions>
15
</plugin-config>
0 16

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/org.gvsig.symbology.app.importsymbols/src/main/resources/locale/text.properties
1
make_plugin_package=Crear paquete instalaci?n de plugin
2
make_plugin_package_description=Crea un paquete de instalaci?n de un plugin instalado
3
install_package=Instalar un nuevo paquete
4
install_package_description=instala un nuevo paquete (plugin, traducciones, tema, etc.) en gvSIG
5
install_package_extension_warning=Herramienta en desarrollo no exenta de fallos. ?Desea continuar?
6
select_an_option=Seleccione una opci?n
0 7

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/org.gvsig.symbology.app.importsymbols/src/main/resources/locale/text_en.properties
1
make_plugin_package=Create plugin installation package
2
make_plugin_package_description=Create an installation package from an already installed plugin
3
install_package=Install a new package
4
install_package_description=Installs a new package (plugin, translations, theme, etc.) in gvSIG
5
install_package_extension_warning=Tool under development. It may contain errors. Continue anyway?
6
select_an_option=Select an Option
0 7

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/org.gvsig.symbology.app.importsymbols/pom.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
5
	<modelVersion>4.0.0</modelVersion>
6
	<artifactId>org.gvsig.symbology.app.importsymbols</artifactId>
7
	<packaging>jar</packaging>
8
	<name>org.gvsig.symbology.app.importsymbols</name>
9
        <description>Importador de simbolos puntuales a partir de las imagenes que existan en una carpeta</description>
10
	<parent>
11
		<groupId>org.gvsig</groupId>
12
		<artifactId>org.gvsig.symbology.app</artifactId>
13
		<version>2.0.0-SNAPSHOT</version>
14
	</parent>
15
	<profiles>
16
    	<profile>
17
    		<id>gvsig-install</id>
18
    		<activation>
19
    			<activeByDefault>true</activeByDefault>
20
    		</activation>
21
    		<properties>
22
				<!--  gvSIG installation folder -->
23
    			<gvsig.install.dir>${basedir}/../../build/product</gvsig.install.dir>
24
    		</properties>
25
    	</profile>
26
   	</profiles>
27
	<dependencies>
28
		<dependency>
29
			<groupId>org.gvsig</groupId>
30
			<artifactId>org.gvsig.app</artifactId>
31
		        <scope>compile</scope>
32
		</dependency>
33
        <dependency>
34
            <groupId>org.gvsig</groupId>
35
            <artifactId>org.gvsig.andami</artifactId>
36
            <scope>compile</scope>
37
        </dependency>
38
        <dependency>
39
            <groupId>org.gvsig</groupId>
40
            <artifactId>org.gvsig.tools.lib</artifactId>
41
            <scope>compile</scope>
42
        </dependency>
43
        <dependency>
44
            <groupId>org.gvsig</groupId>
45
            <artifactId>org.gvsig.i18n</artifactId>
46
            <scope>compile</scope>
47
        </dependency>
48
		<dependency>
49
			<groupId>org.gvsig</groupId>
50
			<artifactId>org.gvsig.symbology.lib.api</artifactId>
51
            <scope>compile</scope>
52
		</dependency>		
53

  
54
        <dependency>
55
            <groupId>org.slf4j</groupId>
56
            <artifactId>slf4j-api</artifactId>
57
            <scope>compile</scope>
58
        </dependency>       
59
        
60
        <dependency>
61
			<groupId>org.gvsig</groupId>
62
			<artifactId>org.gvsig.fmap.mapcontext</artifactId>
63
            <scope>compile</scope>
64
		</dependency>
65
        
66
	</dependencies>
67
    <properties>
68
        <build-dir>${basedir}/../../build</build-dir>
69
    </properties>
70
</project>
0 71

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/org.gvsig.symbology.app.importsymbols/distribution/distribution.xml
1
<assembly>
2
	<id>distribution</id>
3
	<formats>
4
		<format>dir</format>
5
	</formats>
6
	<fileSets>
7
		<fileSet>
8
			<directory>src/main/resources/config</directory>
9
			<outputDirectory>${extension.install.dir.name}
10
			</outputDirectory>
11
		</fileSet>
12
		<fileSet>
13
			<directory>src/main/resources/images</directory>
14
			<outputDirectory>${extension.install.dir.name}/images
15
			</outputDirectory>
16
		</fileSet>
17
		<fileSet>
18
			<directory>src/main/resources/about</directory>
19
			<outputDirectory>${extension.install.dir.name}
20
			</outputDirectory>
21
		</fileSet>
22
		<fileSet>
23
			<directory>src/main/resources/locale</directory>
24
			<outputDirectory>${extension.install.dir.name}
25
			</outputDirectory>
26
		</fileSet>	
27
	</fileSets>
28
	<files>
29
		<file>
30
			<source>package.info</source>
31
			<outputDirectory>${extension.install.dir.name}
32
			</outputDirectory>
33
		</file>
34
	</files>
35
	<dependencySets>
36
		<dependencySet>
37
			<outputDirectory>${extension.install.dir.name}/${library-dir}
38
			</outputDirectory>
39
			<includes>
40
				<include>org.gvsig:org.gvsig.symbology.app.importsymbols:jar</include>		
41
			</includes>
42
		</dependencySet>		
43
	</dependencySets>
44
</assembly>
0 45

  
tags/v2_0_0_Build_2025/extensions/org.gvsig.symbology.app/pom.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5
	<modelVersion>4.0.0</modelVersion>
6
	<groupId>org.gvsig</groupId>
7
	<artifactId>org.gvsig.symbology.app</artifactId>
8
	<packaging>pom</packaging>
9
	<version>2.0.0-SNAPSHOT</version>
10
	<name>org.gvsig.symbology.app</name>
11
	<description></description>
12
	<url>http://gvsig-desktop.forge.osor.eu/downloads/pub/projects/gvSIG-desktop/docs/reference/org.gvsig.symbology.app/${pom.version}</url>
13
    <parent>
14
        <groupId>org.gvsig</groupId>
15
        <artifactId>gvsig-base-extension-pom</artifactId>
16
        <version>2.0-SNAPSHOT</version>
17
    </parent>
18

  
19
	<scm>
20
		<connection>scm:svn:https://svn.forge.osor.eu/svn/gvsig-desktop/branches/v2_0_0_prep/extensions/org.gvsig.symbology.app</connection>
21
		<developerConnection>scm:svn:https://svn.forge.osor.eu/svn/gvsig-desktop/branches/v2_0_0_prep/extensions/org.gvsig.symbology.app</developerConnection>
22
		<url>https://forge.osor.eu/plugins/scmsvn/viewcvs.php/branches/v2_0_0_prep/extensions/org.gvsig.symbology.app/?root=gvsig-desktop</url>
23
	</scm>
24

  
25
	<developers>
26
		<developer>
27
			<id>jjdelcerro</id>
28
			<name>Joaqu?n Jos? del Cerro</name>
29
			<email>jjdelcerro@gvsig.org</email>
30
			<roles>
31
				<role>Architect</role>
32
			</roles>
33
		</developer>
34
		<developer>
35
			<id>nfrancisco</id>
36
			<name>Nadal Francisco</name>
37
			<email>francisco_nad@gva.es</email>
38
			<roles>
39
				<role>Developer</role>
40
			</roles>
41
		</developer>
42
	</developers>
43

  
44
	<distributionManagement>
45
		<site>
46
			<id>gvsig-repository</id>
47
			<url>scp://shell.forge.osor.eu/home/groups/gvsig-desktop/www/downloads/pub/projects/gvSIG-desktop/docs/reference/org.gvsig.symbology.app/${pom.version}</url>
48
		</site>
49
	</distributionManagement>
50
	<repositories>
51
		<repository>
52
			<id>gvsig-public-http-repository</id>
53
			<name>gvSIG maven public HTTP repository</name>
54
			<url>http://gvsig-desktop.forge.osor.eu/downloads/pub/projects/gvSIG-desktop/maven-repository</url>
55
			<releases>
56
				<enabled>true</enabled>
57
				<updatePolicy>daily</updatePolicy>
58
				<checksumPolicy>warn</checksumPolicy>
59
			</releases>
60
			<snapshots>
61
				<enabled>true</enabled>
62
				<updatePolicy>daily</updatePolicy>
63
				<checksumPolicy>warn</checksumPolicy>
64
			</snapshots>
65
		</repository>
66
	</repositories>
67
	<build>
68
		<plugins>
69
			<plugin>
70
				<groupId>org.apache.maven.plugins</groupId>
71
				<artifactId>maven-release-plugin</artifactId>
72
				<configuration>
73
					<tagBase>https://svn.forge.osor.eu/svn/gvsig-desktop/tags</tagBase>
74
				</configuration>
75
			</plugin>
76
		</plugins>
77
	</build>
78
	<dependencyManagement>
79
		<dependencies>
80
			<dependency>
81
				<groupId>org.gvsig</groupId>
82
				<artifactId>org.gvsig.core.maven.dependencies</artifactId>
83
				<version>2.0.0-SNAPSHOT</version>
84
				<type>pom</type>
85
				<scope>import</scope>
86
			</dependency>
87
			<dependency>
88
				<groupId>org.gvsig</groupId>
89
				<artifactId>org.gvsig.app</artifactId>
90
				<version>2.0-SNAPSHOT</version>
91
			</dependency>
92
		</dependencies>
93
	</dependencyManagement>
94

  
95
	<modules>
96
		<module>org.gvsig.symbology.app.importsymbols</module>
97
	</modules>
98
	
99
	 <properties>
100
        <build-dir>${basedir}/../build</build-dir>
101
    </properties>
102
</project>
0 103

  

Also available in: Unified diff