Revision 538

View differences:

org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/LEEME.txt
1
===============
2
gvSIG Educa
3
===============
4

  
5
---------------------
6
Vistas Portables
7
---------------------
8

  
9
Descripci?n
10
==============
11

  
12
Este directorio contiene los fuentes de la funcionalidad Vistas Portables.
13

  
14
Requisitos
15
==============
16

  
17
* Maven 2.6 or higher
18

  
19
* Java JDK 1.5 or higher
20

  
21
Para trabajar con eclipse
22
--------------------------
23

  
24
Ver `Gu?a del desarrollador en gvSIG.org <https://gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/>`_ y el fichero ``REAME-ECLIPSE.txt``
25

  
26
Contenido
27
==========
28

  
29
org.gvsig.educa.portableview.lib
30
---------------------------------
31

  
32
Fuentes de la funcionalidad. Estos proyectos contienen los procesos y l?gica principal sin dependencias de interface de usuario.
33

  
34
org.gvsig.educa.portableview.swing
35
-------------------------------------
36

  
37
Componentes de interface de usuario para gestionar los servicios que ofrece la librer??a.
38

  
39
org.gvsig.educa.portableview.main
40
-----------------------------------
41

  
42
Peque?a aplicaci?n que permite ejecutar las funcionalidades y realizar pruebas funcionales.
43

  
44
Ver `Ejecutar aplicaci?n de pruebas`_ para saber como arrancarla.
45

  
46
pom.xml
47
---------
48

  
49
Archivo de definici?n de proyecto Maven.
50

  
51
README.txt LEEME.txt
52
----------------------
53

  
54
Este fichero (en formato reStructureText, para mas informaci?n sobre este ver el `portal de gvSIG <https://gvsig.org/web/projects/gvsig-desktop/docs/devel/guia-para-documentar/el-formato-restructuredtext>`_  en la `referencia de docUtils  <http://docutils.sourceforge.net/rst.html>`_)
55

  
56

  
57
Compilaci?n
58
================
59

  
60
Desde el shell
61
----------------
62

  
63
Ejecute este comando::
64

  
65
    org.gvsig.educa.portablewview$ mvn clean install
66

  
67

  
68
Desde eclipse
69
--------------
70
Ver `Trabajar con un proyecto de la gu?a de desarrollador en gvSIG.org <https://gvsig.org/web/projects/gvsig-desktop/docs/devel/gvsig-devel-guide/2.0.0/trabajar-con-un-proyecto>`_
71

  
72
En algunos proyectos puede que sea necesario user el comando ``mvn eclipse:clean eclipse:eclipse`` e importar como *Standar/Import existing project...* en vez de cargar como *Maven Project*. Esto es debido a que, en algunas circunstancias, parece que el plugin de Maven del eclipse no prepara el *classpath* de forma correcta.
73

  
74

  
75
Empaquetado
76
===============
77

  
78
Esta funcionalidad no tiene ning?n proyecto pensado para empaquetar de forma independiente.
79

  
80
Versionado
81
--------------
82

  
83
Para cambiar el n?mero de versi?n de los plugins solo es necesario ajustar la etiqueta ``project/version`` del fichero *pom.xml*. Los subproyectos heredar?n el valor.
84

  
85
La pol??tica de versi?n es la est?ndar. Los cambios en los numeroso son:
86

  
87
* tercer n?mero: Arreglo de errores y mejoras menores. Sin cambios en el API.
88
* segundo n?mero: Arreglo de erroes y mejoras. Pueden haber cambios menores en el API. Los elementos marcados como *deprecated* en versiones anteriores pueden eliminarse. Sin cambios de arquitectura.
89
* primer n?mero: Cambios mayores.
90

  
91
Crear un tag
92
------------------
93

  
94
TODO: usar el plugin *release* de maven
95

  
96
Usar el comando *svn copy*. El proceso podr?a ser:
97

  
98
#. Comprobar que no hay cambios en la copia local::
99

  
100
   svn up ; svn status
101

  
102
#. Comprobar que los proyecto compilan y pasan todas las bater?as de test::
103

  
104
   mvn clean install
105

  
106
#. Actualizar el fichero *pom.xml* con la versi?n de tag (normalmente quitando el sufijo *-SNAPSHOT*)
107
#. Crear el directorio para el tag en el servidor::
108

  
109
   svn mkdir -m "Create {version} tag folder" https://devel.gvsig.org/svn/gvsig-educa/org.gvsig.educa.portablewview.app/tags/{version}
110

  
111
#. Subir la copia local al directorio del tag en el servidor::
112

  
113
   svn copy -m "Create {version} tag" * https://devel.gvsig.org/svn/gvsig-educa/org.gvsig.educa.portablewview.app/tags/{version}
114

  
115
#. Actualizar el *pom.xml* a la siguiente version (y a?adirle el sufijo *-SNAPSHOT*)
116
#. Subir los cambios del *pom.xml*::
117

  
118
   svn commit -m "Set new version {version}-SNAPSHOT" pom.xml
119

  
120

  
121
i18n
122
======
123

  
124
Los ficheros de internacionalizaci?n se pueden encontrar en los directorios:
125

  
126
+ */org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n*
127
+ *org.gvsig.educa.portableview.lib/org.gvsig.educa.portableview.lib.impl/src/main/resources/org/gvsig/educa/portableview/impl/i18n*
128

  
129
La internacionalizaci?n est? basada en el mecanismo est?ndar de los *resource bundle*. Para a?adir un nuevo idioma es necesario a?adir el fichero de propiedades en todos los directorio con el codigo de idioma adecuado.
130

  
131
Ejecutar aplicaci?n de pruebas
132
=================================
133

  
134
Desde el Shell
135
----------------
136

  
137
Despu?s del proceso de `Compilaci?n`_ , ejecute estos comandos::
138

  
139
    org.gvsig.educa.portablewview$ cd org.gvsig.educa.portablewview.main
140
    org.gvsig.educa.portablewview/org.gvsig.educa.portablewview.main$ mvn exec:java
141

  
142
Desde el eclipse
143
------------------
144

  
145
Seleccione el proyecto ``org.gvsig.educa.portableview.main`` en el *Project tree* de la *Java perspective*, haga click con el bot?n derecho y seleccione ``Run as.../Java application``. Seleccione la clase ``Main`` del propio proyecto.
146

  
147
Si tiene problemas al ejecutar, compruebe la nota de la secci?n `Compilaci?n`_ sobre la importaci?n del proyecto.
148

  
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4
	<modelVersion>4.0.0</modelVersion>
5
	<groupId>org.gvsig</groupId>
6
	<artifactId>org.gvsig.educa.portableview.app</artifactId>
7
	<packaging>pom</packaging>
8
	<name>org.gvsig.educa.portableview.app</name>
9
	<description>Educa.PortableView plugins</description>
10
	<parent>
11
            <groupId>org.gvsig</groupId>
12
            <artifactId>org.gvsig.educa.portableview</artifactId>
13
            <version>1.0.50</version> 
14
	</parent>
15
	<properties>
16
		<gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-educa/pool</gvsig.package.info.poolURL>
17
	</properties>
18
	<dependencies>
19
		<dependency>
20
			<groupId>org.slf4j</groupId>
21
			<artifactId>slf4j-api</artifactId>
22
			<scope>compile</scope>
23
		</dependency>
24
	</dependencies>
25
	<modules>
26
		<module>org.gvsig.educa.portableview.app.viewer</module>
27
		<module>org.gvsig.educa.portableview.app.editor</module>
28
	</modules>
29
</project>
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources-plugin/text.properties
1
#text.properties
2
create_from_view=Crear a partir de la vista
3
create_portable_view=Crear vista portable
4
export_to_view=Exportar a vista
5
folder_must_be_empty=El directorio debe estar vac\u00EDo
6
generate_package=Generar paquete distribuible
7
generated_file=Generado el fichero
8
generated_from_portable_view=Generado a partir de la vista portable\:\n* Id\: %1$s\n* Nombre\: %2$s\n* Versi\u00F3n\: %3$d\n* N\u00FAmero de compilaci\u00F3n\: %4$d\n\n
9
new_portable_view_from_a_view=Nueva vista portable desde vista
10
open_related_portable_view=Abrir la vista portable relacionada
11
open_source_view=Abrir la vista origen
12
problems_creating_portable_view_from_a_view=Problemas creando vista portable desde la vista
13
problems_exporting_portable_view_to_view=Problemas exportando vista portable a vista
14
problems_generating_portable_view_package=Problemas generando el paquete de la vista portable
15
problems_regeneration_portable_view=Problemas regenerando la vista portable
16
problems_reloading_portable_view=Problemas al recargar la vista portable
17
regenerate_portable_view_from_a_view=Regenerar vista portable desde vista
18
Select_folder_to_extract_data=Seleccione directorio para exportar
19
Select_folder_to_store_package=Seleccione directorio de destino
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources-plugin/text_en.properties
1
#text_en.properties
2
create_from_view=Create from View
3
create_portable_view=Create Portable View
4
export_to_view=Export to view
5
folder_must_be_empty=Folder must be empty
6
generate_package=Generate package
7
generated_file=Generated file
8
generated_from_portable_view=Generated from Portable View\:\n* Id\: %1$s\n* Name\: %2$s\n* Version\: %3$d\n* Build Number\: %4$s\n
9
new_portable_view_from_a_view=New Portable View from a view
10
open_related_portable_view=Open related Portable View
11
open_source_view=Open source view
12
problems_creating_portable_view_from_a_view=Problems creating Portable View from a view
13
problems_exporting_portable_view_to_view=Problem exporting Portable View to a View
14
problems_generating_portable_view_package=Problems generating Portable View package
15
problems_regeneration_portable_view=Problems regenerating Portable View
16
problems_reloading_portable_view=Problems reloading Portable View
17
regenerate_portable_view_from_a_view=Regenerate Portable View from view
18
Select_folder_to_extract_data=Select folder to export
19
Select_folder_to_store_package=Select target folder
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources-plugin/config.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<plugin-config>
3
	<depends plugin-name="org.gvsig.educa.portableview.app.viewer" />
4
	<resourceBundle name="text"/>
5
	<libraries library-dir="lib"/>
6
	<extensions>
7
		<extension class-name="org.gvsig.educa.portableview.app.editor.PortableViewEditorExtension"
8
			description=""
9
			active="true"
10
			priority="1">
11
			<!--
12
			<menu text="tools/Get PortableView"
13
				position="11"
14
				action-command="PortableView"/>
15
				 -->
16
		</extension>
17
		<extension class-name="org.gvsig.educa.portableview.app.editor.NewPortableViewExtension"
18
			description=""
19
			active="true"
20
			priority="1">
21

  
22
			<action
23
		        name="portableview-create-from-view"
24
		        label="create_from_view"
25
		        position="0800100000"
26
		        action-command="portableview-create-from-view"
27
		        icon=""
28
		        tooltip=""
29
		        accelerator="" />
30

  
31
			<menu
32
				name="portableview-create-from-view"
33
			    text="Portable_View/create_from_view"/>
34
		</extension>
35
		<extension class-name="org.gvsig.educa.portableview.app.editor.ExportPortableViewToViewExtension"
36
			description=""
37
			active="true"
38
			priority="1">
39

  
40
			<action
41
		        name="portableview-export-to-view"
42
		        label="export_to_view"
43
		        position="0800200000"
44
		        action-command="portableview-export-to-view"
45
		        icon=""
46
		        tooltip=""
47
		        accelerator="" />
48

  
49
			<menu
50
				name="portableview-export-to-view"
51
			    text="Portable_View/export_to_view"/>
52
		</extension>
53
		<extension class-name="org.gvsig.educa.portableview.app.editor.OpenSourceViewExtension"
54
			description=""
55
			active="true"
56
			priority="1">
57
			<action
58
		        name="portableview-open-source-view"
59
		        label="open_source_view"
60
		        position="0800300000"
61
		        action-command="portableview-open-source-view"
62
		        icon=""
63
		        tooltip=""
64
		        accelerator="" />
65

  
66
			<menu
67
				name="portableview-open-source-view"
68
			    text="Portable_View/open_source_view"/>
69
		</extension>
70
		<extension class-name="org.gvsig.educa.portableview.app.editor.OpenRelatedPortableViewExtension"
71
			description=""
72
			active="true"
73
			priority="1">
74
			<action
75
		        name="portableview-open-related"
76
		        label="open_related_portable_view"
77
		        position="0800400000"
78
		        action-command="portableview-open-related"
79
		        icon=""
80
		        tooltip=""
81
		        accelerator="" />
82

  
83
			<menu
84
				name="portableview-open-related"
85
			    text="Portable_View/open_related_portable_view"/>
86
		</extension>
87
		<extension class-name="org.gvsig.educa.portableview.app.editor.GeneratePackagePortableViewExtension"
88
			description=""
89
			active="true"
90
			priority="1">
91
			<action
92
		        name="portableview-generate-package"
93
		        label="generate_package"
94
		        position="0800500000"
95
		        action-command="portableview-generate-package"
96
		        icon=""
97
		        tooltip=""
98
		        accelerator="" />
99

  
100
			<menu
101
				name="portableview-generate-package"
102
			    text="Portable_View/generate_package"/>
103
		</extension>
104
		<extension class-name="org.gvsig.educa.portableview.app.editor.RegeneratePortableViewExtension"
105
			description=""
106
			active="true"
107
			priority="1">
108
			<action
109
		        name="portableview-regenerate-from-view"
110
		        label="regenerate_portable_view_from_a_view"
111
		        position="0800600000"
112
		        action-command="portableview-regenerate-from-view"
113
		        icon=""
114
		        tooltip=""
115
		        accelerator="" />
116

  
117
			<menu
118
				name="portableview-regenerate-from-view"
119
			    text="Portable_View/regenerate_portable_view_from_a_view"/>
120
		</extension>
121
	</extensions>
122
</plugin-config>
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources-plugin/text_pt_BR.properties
1
#text_pt_br.properties
2
create_from_view=Criar a partir da vista
3
create_portable_view=Criar mapa tem\u00E1tico
4
export_to_view=Exportar para a vista
5
folder_must_be_empty=O diret\u00F3rio deve estar vazio
6
generate_package=Gerar pacote
7
generated_file=Arquivo gerado
8
generated_from_portable_view=Gerado a partir de mapa tem\u00E1tico
9
new_portable_view_from_a_view=Novo mapa tem\u00E1tico a partir de uma vista
10
open_related_portable_view=Abrir mapa tem\u00E1tico relacionado
11
open_source_view=Abrir a vista de origem
12
problems_creating_portable_view_from_a_view=Problemas ao criar mapa tem\u00E1tico a partir de uma vista
13
problems_exporting_portable_view_to_view=Problemas ao exportar mapa tem\u00E1tico para uma vista
14
problems_generating_portable_view_package=Problemas ao gerar pacote de mapa tem\u00E1tico
15
problems_regeneration_portable_view=Problemas ao recuperar mapa tem\u00E1tico
16
problems_reloading_portable_view=Problemas ao recarregar  mapa tem\u00E1tico
17
regenerate_portable_view_from_a_view=Recuperar mapa tem\u00E1tico a partir de uma vista
18
Select_folder_to_extract_data=Selecionar diret\u00F3rio para exportar dados
19
Select_folder_to_store_package=Selecionar diret\u00F3rio para armazenar pacote
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources-plugin/text_ru.properties
1
#text_ru.properties
2
create_from_view=\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0438\u0437 \u0412\u0438\u0434\u0430
3
create_portable_view=\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u043A\u0430\u0440\u0442\u0443
4
export_to_view=\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432 \u0412\u0438\u0434
5
folder_must_be_empty=\u041F\u0430\u043F\u043A\u0430 \u0434\u043E\u043B\u0436\u043D\u0430 \u0431\u044B\u0442\u044C \u043F\u0443\u0441\u0442\u043E\u0439
6
generate_package=\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u0430\u043A\u0435\u0442
7
generated_file=\u0421\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0439 \u0444\u0430\u0439\u043B
8
generated_from_portable_view=* \u0412\u0435\u0440\u0441\u0438\u044F\: %3$d\n* \u041D\u043E\u043C\u0435\u0440 \u0441\u0431\u043E\u0440\u043A\u0438\: %4$s
9
new_portable_view_from_a_view=\u041D\u043E\u0432\u0430\u044F \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043A\u0430\u0440\u0442\u0430 \u0438\u0437 \u0412\u0438\u0434\u0430
10
open_related_portable_view=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u0443\u044E \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u043A\u0430\u0440\u0442\u0443
11
open_source_view=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u0412\u0438\u0434
12
problems_creating_portable_view_from_a_view=\u041E\u0448\u0438\u0431\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B \u0438\u0437 \u0412\u0438\u0434\u0430
13
problems_exporting_portable_view_to_view=\u041E\u0448\u0438\u0431\u043A\u0438 \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430 \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B \u0432 \u0412\u0438\u0434
14
problems_generating_portable_view_package=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u043F\u0430\u043A\u0435\u0442\u0430 \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B
15
problems_regeneration_portable_view=\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0433\u043E \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B
16
problems_reloading_portable_view=\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B
17
regenerate_portable_view_from_a_view=\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B \u0438\u0437 \u0412\u0438\u0434\u0430
18
Select_folder_to_extract_data=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0430\u043F\u043A\u0443 \u0434\u043B\u044F \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430
19
Select_folder_to_store_package=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0430\u043F\u043A\u0443
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources-plugin/text_de.properties
1
#text_de.properties
2
create_from_view=Aus Ansicht erstellen
3
create_portable_view=Thematische Karte erstellen
4
export_to_view=Als Ansicht exportieren
5
folder_must_be_empty=Ordner muss leer sein
6
generate_package=Erzeuge Paket
7
generated_file=Erstellte Datei
8
generated_from_portable_view=Aus thematischer Karte erstellt
9
new_portable_view_from_a_view=Neue thematische Karte aus Ansicht
10
open_related_portable_view=Zugeh\u00F6rige Thematische Karte \u00F6ffnen
11
open_source_view=Quelldaten-Ansicht \u00F6ffnen
12
problems_creating_portable_view_from_a_view=Probleme beim Erstellen der Thematischen Karte aus der Ansicht
13
problems_exporting_portable_view_to_view=Problem beim Export der Thematischen Karte in die Ansicht
14
problems_generating_portable_view_package=Problem beim Erstellen eines Thematischen Kartenpakets
15
problems_regeneration_portable_view=Problem beim Wiederherstellen der thematischen Karte
16
problems_reloading_portable_view=Problem beim Laden der Thematischen Karte
17
regenerate_portable_view_from_a_view=Thematische Karte aus Ansicht wiederherstellen
18
Select_folder_to_extract_data=Zielverzeichnis zum Extrahieren von Daten ausw\u00E4hlen
19
Select_folder_to_store_package=Zielverzeichnis ausw\u00E4hlen
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources-plugin/text_it.properties
1
#text_it.properties
2
create_from_view=Crea dalla vista
3
create_portable_view=Crea mappa tematica
4
export_to_view=Esporta nella vista
5
folder_must_be_empty=La cartella deve essere vuota
6
generate_package=Crea pacchetto distribuibile
7
generated_file=File generato
8
generated_from_portable_view=Generato dalla mappa tematica\:\n* Id\: %1$s\n* Nome\: %2$s\n* Versione\: %3$d\n* Numero di compilazione\: %4$s
9
new_portable_view_from_a_view=Nuova mappa tematica da una vista
10
open_related_portable_view=Apri mappa tematica relativa
11
open_source_view=Apri la vista di origine
12
problems_creating_portable_view_from_a_view=Problemi nella creazione della mappa tematica dalla vista
13
problems_exporting_portable_view_to_view=Problemi nell'esportazione della mappa tematica dalla vista
14
problems_generating_portable_view_package=Problemi nella creazione del pacchetto della mappa tematica
15
problems_regeneration_portable_view=Problemi nella rigenerazione della mappa tematica
16
problems_reloading_portable_view=Problemi nel ricaricamento della mappa tematica
17
regenerate_portable_view_from_a_view=Rigenera la mappa tematica dalla vista
18
Select_folder_to_extract_data=Seleziona la cartella per l'esportazione
19
Select_folder_to_store_package=Seleziona la cartella di destinazione
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.educa.portableview.app.editor.PortableViewEditorLibrary
2
org.gvsig.educa.portableview.app.editor.impl.PortableViewEditorDefaultImplLibrary
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/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
	<dependencySets>
26
		<dependencySet>
27
			<useProjectArtifact>false</useProjectArtifact>
28
			<useTransitiveDependencies>false</useTransitiveDependencies>
29
			<outputDirectory>lib</outputDirectory>
30
			<includes>
31
				<include>org.gvsig:org.gvsig.educa.portableview.app.editor</include>
32
			</includes>
33
		</dependencySet>
34
	</dependencySets>
35

  
36
</assembly>
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/java/org/gvsig/educa/portableview/app/editor/ExportPortableViewToViewExtension.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.educa.portableview.app.editor;
23

  
24
import javax.swing.SwingUtilities;
25

  
26
import org.gvsig.andami.PluginServices;
27
import org.gvsig.andami.messages.NotificationManager;
28
import org.gvsig.andami.plugins.Extension;
29
import org.gvsig.andami.ui.mdiManager.IWindow;
30
import org.gvsig.educa.portableview.app.viewer.PortableViewDocument;
31
import org.gvsig.educa.portableview.app.viewer.ui.PortableViewDocumentViewer;
32
import org.gvsig.educa.portableview.swing.PortableViewSwingLocator;
33
import org.gvsig.educa.portableview.swing.PortableViewSwingManager;
34

  
35
/**
36
 * Andami extension to create a View from a Portable view data.
37
 *
38
 * @author gvSIG Team
39
 * @version $Id$
40
 */
41
public class ExportPortableViewToViewExtension extends Extension {
42

  
43
    private PortableViewEditorManager editorManager;
44
    private PortableViewSwingManager swingManager;
45

  
46
    public void initialize() {
47
        // Do nothing
48
    }
49

  
50
    @Override
51
    public void postInitialize() {
52
        editorManager = PortableViewEditorLocator.getManager();
53
        swingManager = PortableViewSwingLocator.getSwingManager();
54
    }
55

  
56
    public void execute(String actionCommand) {
57
        IWindow window = PluginServices.getMDIManager().getActiveWindow();
58
        if (!(window instanceof PortableViewDocumentViewer)) {
59
            return;
60
        }
61
        final PortableViewDocument tmDocument =
62
            ((PortableViewDocumentViewer) window).getPortableViewDocument();
63

  
64
        SwingUtilities.invokeLater(new Runnable() {
65

  
66
            public void run() {
67
                try {
68
                    editorManager.exportPortableViewToView(tmDocument, true);
69
                } catch (Exception ex) {
70
                    NotificationManager.addError(
71
                        swingManager
72
                            .getTranslation("problems_exporting_portable_view_to_view"),
73
                        ex);
74
                }
75

  
76
            }
77
        });
78
    }
79

  
80
    public boolean isEnabled() {
81
        return true;
82
    }
83

  
84
    public boolean isVisible() {
85
        IWindow window = PluginServices.getMDIManager().getActiveWindow();
86
        return window instanceof PortableViewDocumentViewer;
87
    }
88
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/java/org/gvsig/educa/portableview/app/editor/impl/CompilationListenerAdapter.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.educa.portableview.app.editor.impl;
23

  
24
import org.gvsig.andami.messages.NotificationManager;
25
import org.gvsig.educa.portableview.app.editor.CompilationListener;
26
import org.gvsig.educa.portableview.compilation.PortableViewCompilation;
27
import org.gvsig.educa.portableview.compilation.PortableViewCompilerStatus;
28

  
29
/**
30
 * 
31
 * Utility class which allow just override {@link CompilationListener} that you
32
 * need without override the other (useful for inner class)
33
 * 
34
 * @author gvSIG Team
35
 * @version $Id$
36
 * 
37
 */
38
public abstract class CompilationListenerAdapter implements CompilationListener {
39

  
40
    /** {@inheridDoc} */
41
    public void finished(PortableViewCompilerStatus status) {
42
        // Nothing to do
43
    }
44

  
45
    /** {@inheridDoc} */
46
    public void fail(PortableViewCompilerStatus status) {
47
        // Nothing to do
48
    }
49

  
50
    /** {@inheridDoc} */
51
    public void canceledCompilation(PortableViewCompilerStatus status) {
52
        // Nothing to do
53
    }
54

  
55
    /** {@inheridDoc} */
56
    public void canceledEditing(PortableViewCompilation compilation) {
57
        // Nothing to do
58
    }
59

  
60
    public void exception(String message, Throwable exception) {
61
        // use notification manager by default
62
        NotificationManager.addError(message, exception);
63
    }
64
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/java/org/gvsig/educa/portableview/app/editor/impl/PortableViewEditorDefaultImplLibrary.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.educa.portableview.app.editor.impl;
23

  
24
import org.gvsig.educa.portableview.app.editor.PortableViewEditorLibrary;
25
import org.gvsig.educa.portableview.app.editor.PortableViewEditorLocator;
26
import org.gvsig.educa.portableview.app.editor.PortableViewEditorManager;
27
import org.gvsig.tools.library.AbstractLibrary;
28
import org.gvsig.tools.library.LibraryException;
29

  
30
/**
31
 * Library for default {@link PortableViewEditorManager} implementation
32
 * register.
33
 *
34
 * @author gvSIG team
35
 * @version $Id$
36
 */
37
public class PortableViewEditorDefaultImplLibrary extends AbstractLibrary {
38

  
39
    @Override
40
    public void doRegistration() {
41
        registerAsImplementationOf(PortableViewEditorLibrary.class);
42
    }
43

  
44
    /** {@inheridDoc} */
45
    @Override
46
    protected void doInitialize() throws LibraryException {
47
        PortableViewEditorLocator
48
            .registerManager(DefaultPortableViewEditorManager.class);
49
    }
50

  
51
    /** {@inheridDoc} */
52
    @Override
53
    protected void doPostInitialize() throws LibraryException {
54
        // Do Nothing
55
    }
56

  
57
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/java/org/gvsig/educa/portableview/app/editor/impl/DefaultPortableViewEditorManager.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.educa.portableview.app.editor.impl;
23

  
24
import java.io.File;
25
import java.io.IOException;
26
import java.util.List;
27

  
28
import javax.swing.JFileChooser;
29
import javax.swing.SwingUtilities;
30

  
31
import org.apache.commons.lang3.ObjectUtils;
32
import org.apache.commons.lang3.StringUtils;
33
import org.gvsig.andami.PluginServices;
34
import org.gvsig.andami.messages.NotificationManager;
35
import org.gvsig.andami.ui.mdiManager.IWindow;
36
import org.gvsig.app.project.Project;
37
import org.gvsig.app.project.ProjectManager;
38
import org.gvsig.app.project.documents.Document;
39
import org.gvsig.app.project.documents.view.ViewDocument;
40
import org.gvsig.app.project.documents.view.ViewManager;
41
import org.gvsig.educa.portableview.PortableViewException;
42
import org.gvsig.educa.portableview.PortableViewFileServices;
43
import org.gvsig.educa.portableview.PortableViewLocator;
44
import org.gvsig.educa.portableview.PortableViewManager;
45
import org.gvsig.educa.portableview.app.editor.CompilationListener;
46
import org.gvsig.educa.portableview.app.editor.PortableViewEditorManager;
47
import org.gvsig.educa.portableview.app.viewer.PortableViewDocument;
48
import org.gvsig.educa.portableview.app.viewer.PortableViewDocumentManager;
49
import org.gvsig.educa.portableview.compilation.PortableViewCompilation;
50
import org.gvsig.educa.portableview.compilation.PortableViewCompilationInformation;
51
import org.gvsig.educa.portableview.compilation.PortableViewCompiler;
52
import org.gvsig.educa.portableview.compilation.PortableViewCompilerStatus;
53
import org.gvsig.educa.portableview.map.CantLoadContextException;
54
import org.gvsig.educa.portableview.map.InvalidPortableViewFormatException;
55
import org.gvsig.educa.portableview.map.PortableView;
56
import org.gvsig.educa.portableview.map.PortableViewInformation;
57
import org.gvsig.educa.portableview.swing.PortableViewSwingLocator;
58
import org.gvsig.educa.portableview.swing.PortableViewSwingManager;
59
import org.gvsig.educa.portableview.swing.PortableViewWindowManager;
60
import org.gvsig.educa.portableview.swing.PortableViewWindowManager.MESSAGE_DIALOG_TYPE;
61
import org.gvsig.educa.portableview.swing.editor.PortableViewCompilationEditor;
62
import org.gvsig.educa.portableview.swing.editor.PortableViewCompilationEditorListener;
63
import org.gvsig.fmap.mapcontext.MapContext;
64
import org.gvsig.tools.persistence.exception.PersistenceException;
65
import org.gvsig.tools.swing.api.windowmanager.WindowManager.MODE;
66

  
67
/**
68
 * <p>
69
 * Default implementation of {@link PortableViewEditorManager}
70
 * </p>
71
 *
72
 * @author gvSIG Team
73
 * @version $Id$
74
 *
75
 */
76
public class DefaultPortableViewEditorManager implements
77
		PortableViewEditorManager {
78

  
79
	private PortableViewDocumentManager docManager;
80
	private final PortableViewManager manager;
81
	private final PortableViewSwingManager swingManager;
82
	private final PortableViewWindowManager winManager;
83
	private final PortableViewFileServices fileServices;
84
	private File workFolder;
85
	private final JFileChooser fileChooser;
86

  
87
	/**
88
     *
89
     */
90
	public DefaultPortableViewEditorManager() {
91
		swingManager = PortableViewSwingLocator.getSwingManager();
92
		manager = swingManager.getManager();
93
		fileServices = PortableViewLocator.getFileServices();
94
		winManager = swingManager.getWindowManager();
95
		fileChooser = new JFileChooser();
96
	}
97

  
98
	/**
99
	 * <p>
100
	 * {@link CompilationListener} instance which create a new
101
	 * {@link PortableViewDocument} from a {@link ViewDocument}
102
	 * </p>
103
	 * <p>
104
	 * Delegates on previously received listener (if any)
105
	 * </p>
106
	 *
107
	 * @author gvSIG Team
108
	 * @version $Id$
109
	 *
110
	 */
111
	private class CreateDocumentListener implements CompilationListener {
112

  
113
		private final CompilationListener delegate;
114
		private final boolean openWindow;
115
		private final ViewDocument sourceView;
116

  
117
		/**
118
		 * @param openWindow
119
		 *
120
		 */
121
		public CreateDocumentListener(ViewDocument sourceView,
122
				CompilationListener delegate, boolean openWindow) {
123
			this.sourceView = sourceView;
124
			this.delegate = delegate;
125
			this.openWindow = openWindow;
126
		}
127

  
128
		/** {@inheridDoc} */
129
		public void finished(PortableViewCompilerStatus status) {
130
			// Gets created map
131
			PortableView map = manager.getMapById(status.getResultCompilation()
132
					.getInformation().getId());
133

  
134
			// Check if a document already exist for this map
135
			PortableViewDocumentManager docManager = getDocManager();
136
			PortableViewDocument doc = docManager.getDocumentForMap(map);
137
			if (doc == null) {
138
				doc = docManager.createDocument(map);
139
				getProject().add(doc);
140
			} else {
141
				// If exist reload
142
				try {
143
					doc.reloadPortableView();
144
				} catch (Exception ex) {
145
					NotificationManager
146
							.addError(
147
									swingManager
148
											.getTranslation("problems_reloading_portable_view"),
149
									ex);
150
				}
151
			}
152
			// Link view to portable view
153
			doc.setSourceView(sourceView);
154

  
155
			if (openWindow) {
156
				final IWindow window = docManager.getMainWindow(doc);
157
				SwingUtilities.invokeLater(new Runnable() {
158

  
159
					public void run() {
160
						PluginServices.getMDIManager().addWindow(window);
161
					}
162
				});
163
			}
164

  
165
			if (delegate != null) {
166
				delegate.finished(status);
167
			}
168
		}
169

  
170
		/** {@inheridDoc} */
171
		public void canceledCompilation(PortableViewCompilerStatus status) {
172
			if (delegate != null) {
173
				delegate.canceledCompilation(status);
174
			}
175
		}
176

  
177
		/** {@inheridDoc} */
178
		public void canceledEditing(PortableViewCompilation compilation) {
179
			if (delegate != null) {
180
				delegate.canceledEditing(compilation);
181
			}
182
		}
183

  
184
		/** {@inheridDoc} */
185
		public void fail(PortableViewCompilerStatus status) {
186
			if (delegate != null) {
187
				delegate.fail(status);
188
			} else {
189
				String msg = swingManager
190
						.getTranslation(
191
								"problems_creating_portable_view_from_a_view")
192
						.concat(": ").concat(status.getFailMessage());
193
				if (status.getException() != null) {
194
					NotificationManager.addWarning(msg, status.getException());
195
				} else {
196
					NotificationManager.addWarning(msg);
197
				}
198
			}
199
		}
200

  
201
		public void exception(String message, Throwable exception) {
202
			if (delegate != null) {
203
				delegate.exception(message, exception);
204
			} else {
205
				String msg = swingManager
206
						.getTranslation(
207
								"problems_creating_portable_view_from_a_view")
208
						.concat(": ").concat(message);
209
				NotificationManager.addError(msg, exception);
210
			}
211
		}
212

  
213
	}
214

  
215
	/**
216
	 * <p>
217
	 * {@link CompilationListener} instance which update the
218
	 * {@link PortableViewDocument} from its related {@link ViewDocument} (
219
	 * {@link PortableViewDocument#getSourceView()})
220
	 * </p>
221
	 * <p>
222
	 * Delegates on previously received listener (if any)
223
	 * </p>
224
	 *
225
	 * @author gvSIG Team
226
	 * @version $Id$
227
	 *
228
	 */
229
	private class UpdateDocumentListener implements CompilationListener {
230

  
231
		private final CompilationListener delegate;
232
		private final boolean openWindow;
233
		private final PortableViewDocument toUpdate;
234

  
235
		/**
236
		 * @param openWindow
237
		 *
238
		 */
239
		public UpdateDocumentListener(PortableViewDocument toUpdate,
240
				CompilationListener delegate, boolean openWindow) {
241
			this.toUpdate = toUpdate;
242
			this.delegate = delegate;
243
			this.openWindow = openWindow;
244
		}
245

  
246
		/** {@inheridDoc} */
247
		public void finished(PortableViewCompilerStatus status) {
248

  
249
			// close doc windows if it was opened
250
			PluginServices.getMDIManager().closeSingletonWindow(toUpdate);
251

  
252
			// Reload maps
253
			try {
254
				toUpdate.reloadPortableView();
255
			} catch (Exception ex) {
256
				NotificationManager
257
						.addError(
258
								swingManager
259
										.getTranslation("problems_reloading_portable_view"),
260
								ex);
261
				return;
262
			}
263

  
264
			if (openWindow) {
265
				final IWindow window = toUpdate.getFactory().getMainWindow(
266
						toUpdate);
267
				SwingUtilities.invokeLater(new Runnable() {
268

  
269
					public void run() {
270
						PluginServices.getMDIManager().addWindow(window);
271
					}
272
				});
273
			}
274

  
275
			if (delegate != null) {
276
				delegate.finished(status);
277
			}
278
		}
279

  
280
		/** {@inheridDoc} */
281
		public void canceledCompilation(PortableViewCompilerStatus status) {
282
			if (delegate != null) {
283
				delegate.canceledCompilation(status);
284
			}
285
		}
286

  
287
		/** {@inheridDoc} */
288
		public void canceledEditing(PortableViewCompilation compilation) {
289
			if (delegate != null) {
290
				delegate.canceledEditing(compilation);
291
			}
292
		}
293

  
294
		/** {@inheridDoc} */
295
		public void fail(PortableViewCompilerStatus status) {
296
			if (delegate != null) {
297
				delegate.fail(status);
298
			} else {
299
				String msg = swingManager
300
						.getTranslation("problems_regeneration_portable_view")
301
						.concat(": ").concat(status.getFailMessage());
302
				if (status.getException() != null) {
303
					NotificationManager.addWarning(msg, status.getException());
304
				} else {
305
					NotificationManager.addWarning(msg);
306
				}
307
			}
308
		}
309

  
310
		public void exception(String message, Throwable exception) {
311
			if (delegate != null) {
312
				delegate.exception(message, exception);
313
			} else {
314
				String msg = swingManager
315
						.getTranslation("problems_regeneration_portable_view")
316
						.concat(": ").concat(message);
317
				NotificationManager.addError(msg, exception);
318
			}
319
		}
320

  
321
	}
322

  
323
	/** {@inheridDoc} */
324
	public void createPortableViewFromView(ViewDocument view,
325
			CompilationListener listener, boolean openWindow) {
326

  
327
		if (view == null) {
328
			throw new IllegalArgumentException("View document required");
329
		}
330

  
331
		PortableViewCompilation compilation = manager
332
				.createCompilationInstance();
333

  
334
		PortableViewCompilationInformation info = compilation.getInformation();
335
		info.setName(view.getName());
336
		info.setId(generateIdForViewName(view.getName()));
337
		info.setVersion(1);
338

  
339
		compilation.setMapContext(view.getMapContext().cloneFMap());
340

  
341
		PortableViewCompilationEditor editor = swingManager
342
				.getCopilationEditor(compilation, false);
343

  
344
		final CreateDocumentListener myListener = new CreateDocumentListener(
345
				view, listener, openWindow);
346

  
347
		editor.setListener(new PortableViewCompilationEditorListener() {
348

  
349
			public void finished(final PortableViewCompilationEditor editor) {
350
				editor.getSwingComponent().setVisible(false);
351
				SwingUtilities.invokeLater(new Runnable() {
352

  
353
					public void run() {
354
						try {
355
							compileInInstallFolder(editor.getCompilation(),
356
									myListener);
357
						} catch (Exception ex) {
358
							myListener.exception("Exception compiling", ex);
359
						}
360
					}
361
				});
362
			}
363

  
364
			public void canceled(final PortableViewCompilationEditor editor) {
365
				editor.getSwingComponent().setVisible(false);
366
				SwingUtilities.invokeLater(new Runnable() {
367

  
368
					public void run() {
369
						myListener.canceledEditing(editor.getCompilation());
370
					}
371
				});
372
			}
373

  
374
		});
375

  
376
		winManager.showCompilationEditor(editor, MODE.WINDOW);
377
	}
378

  
379
	/** {@inheridDoc} */
380
	public void compileInInstallFolder(PortableViewCompilation compilation,
381
			CompilationListener listener) {
382

  
383
		if (compilation == null) {
384
			throw new IllegalArgumentException("Compilation required");
385
		}
386

  
387
		PortableViewCompiler compiler = manager.createCompilerInstance();
388

  
389
		compiler.setTargetFolder(manager.getInstallationMapFolder());
390

  
391
		// prepare a temp folder
392
		compiler.setWorkFolder(getWorkFolder());
393

  
394
		PortableViewCompilerStatus result = compiler.compile(compilation);
395
		if (listener != null) {
396
			if (result.getStatus() == PortableViewCompilerStatus.Status.finished_ok) {
397
				listener.finished(result);
398
				return;
399
			}
400
			if (result.getStatus() == PortableViewCompilerStatus.Status.canceled) {
401
				listener.canceledCompilation(result);
402
				return;
403
			}
404
			listener.fail(result);
405
		}
406
	}
407

  
408
	/**
409
	 * Generates a PortableView id from a View Document name
410
	 *
411
	 * @param viewName
412
	 * @return
413
	 */
414
	private String generateIdForViewName(String viewName) {
415
		String name = StringUtils.replace(viewName.trim(), " ", "_");
416
		return name;
417
	}
418

  
419
	/**
420
	 * Prepare a work folder for compiler base on
421
	 * {@link PortableViewManager#getTemporalFolder()}
422
	 *
423
	 * @return
424
	 */
425
	private String getWorkFolder() {
426
		if (workFolder == null) {
427
			workFolder = fileServices.getNewWritableFolder(
428
					new File(manager.getTemporalFolder()), "_compiler_");
429
			workFolder.deleteOnExit();
430
		}
431
		return workFolder.getAbsolutePath();
432
	}
433

  
434
	/** {@inheridDoc} */
435
	public PortableViewDocumentManager getDocManager() {
436
		if (docManager == null) {
437
			docManager = (PortableViewDocumentManager) ProjectManager
438
					.getInstance().getDocumentManager(
439
							PortableViewDocumentManager.TYPENAME);
440
		}
441
		return docManager;
442
	}
443

  
444
	/** {@inheridDoc} */
445
	public File generatePackage(PortableViewDocument portableView,
446
			File targetFolder) throws PortableViewException, IOException {
447

  
448
		if (portableView == null) {
449
			throw new IllegalArgumentException(
450
					"Portable View document required");
451
		}
452

  
453
		return manager.generatePackageFile(portableView.getPortableView()
454
				.getInformation().getId(), targetFolder);
455

  
456
	}
457

  
458
	/** {@inheridDoc} */
459
	public File generatePackage(PortableViewDocument portableView)
460
			throws PortableViewException, IOException {
461
		File target = askForAOutputFolder(swingManager
462
				.getTranslation("Select_folder_to_store_package"));
463
		if (target != null) {
464
			return generatePackage(portableView, target);
465
		}
466
		return null;
467

  
468
	}
469

  
470
	/** {@inheridDoc} */
471
	public PortableViewDocument getPortableViewDocumentByView(ViewDocument view) {
472

  
473
		if (view == null) {
474
			throw new IllegalArgumentException("View document required");
475
		}
476

  
477
		List<Document> documents = getProject().getDocuments(
478
				PortableViewDocumentManager.TYPENAME);
479
		PortableViewDocument map;
480
		for (Document doc : documents) {
481
			map = (PortableViewDocument) doc;
482
			if (ObjectUtils.equals(map.getSourceView(), view)) {
483
				return map;
484
			}
485
		}
486
		return null;
487
	}
488

  
489
	/**
490
	 * Gets current gvSIG project
491
	 *
492
	 * @return
493
	 */
494
	public Project getProject() {
495
		return ProjectManager.getInstance().getCurrentProject();
496
	}
497

  
498
	/**
499
	 * Shows a dialog to ask a output folder
500
	 *
501
	 * @param description
502
	 *            of the file is for
503
	 * @return
504
	 */
505
	public File askForAOutputFolder(String description) {
506
		fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
507
		int targetFolderAnswere = fileChooser.showDialog(null, description);
508
		if (targetFolderAnswere != JFileChooser.APPROVE_OPTION) {
509
			return null;
510
		}
511
		return fileChooser.getSelectedFile();
512
	}
513

  
514
	/** {@inheridDoc} */
515
	public ViewDocument exportPortableViewToView(PortableViewDocument map,
516
			boolean openViewWindow) throws IOException,
517
			InvalidPortableViewFormatException, PersistenceException {
518
		File target;
519
		while (true) {
520
			target = askForAOutputFolder(swingManager
521
					.getTranslation("Select_folder_to_extract_data"));
522
			if (target == null) {
523
				return null;
524
			}
525
			if (!target.exists()) {
526
				continue;
527
			}
528
			if (target.list().length == 0) {
529
				break;
530
			} else {
531
				winManager.showMessageDialog(swingManager
532
						.getTranslation("Select_folder_to_extract_data"),
533
						swingManager.getTranslation("folder_must_be_empty"),
534
						MESSAGE_DIALOG_TYPE.WARNING);
535
			}
536
		}
537
		return exportPortableViewToView(map, target, openViewWindow);
538
	}
539

  
540
	/** {@inheridDoc} */
541
	public ViewDocument exportPortableViewToView(PortableViewDocument map,
542
			File exportFolder, boolean openViewWindow) throws IOException,
543
			InvalidPortableViewFormatException, PersistenceException {
544

  
545
		if (map == null) {
546
			throw new IllegalArgumentException(
547
					"Portable View document required");
548
		}
549

  
550
		if (!fileServices.isWritableFolder(exportFolder)) {
551
			throw new IllegalArgumentException(
552
					"Not a writable folder: ".concat(exportFolder
553
							.getAbsolutePath()));
554
		}
555
		if (exportFolder.list().length > 0) {
556
			throw new IllegalArgumentException(
557
					"Not a empty folder: ".concat(exportFolder
558
							.getAbsolutePath()));
559
		}
560

  
561
		File mapFile = new File(map.getPortableView().getSourceFilePath());
562
		fileServices.unzipFile(mapFile, exportFolder);
563

  
564
		// Prepares mapContext file path
565
		File mapContextFile = new File(exportFolder,
566
				"mapContext/mapContext.xml");
567

  
568
		// Check if mapContext file exists
569
		if (!mapContextFile.exists()) {
570
			throw new InvalidPortableViewFormatException(mapFile,
571
					"Missing mapContext/mapContext.xml file in deployed map: "
572
							.concat(mapContextFile.getAbsolutePath()));
573
		}
574
		if (!mapContextFile.isFile()) {
575
			throw new InvalidPortableViewFormatException(mapFile,
576
					"mapContext/mapContext.xml file in deployed map is not a file: "
577
							.concat(mapContextFile.getAbsolutePath()));
578
		}
579

  
580
		// Load map context
581
		MapContext mapContext = fileServices.loadMapContext(mapContextFile,
582
				exportFolder);
583

  
584
		// Create view document
585
		ProjectManager projectManager = ProjectManager.getInstance();
586
		final ViewDocument view = (ViewDocument) projectManager
587
				.createDocument(ViewManager.TYPENAME);
588

  
589
		PortableViewInformation info = map.getPortableView().getInformation();
590

  
591
		// Fill view values
592
		view.setName(map.getName());
593
		view.setComment(String.format(
594
				swingManager.getTranslation("generated_from_portable_view"),
595
				info.getId(), info.getName(), info.getVersion(),
596
				info.getBuildNumber()));
597
		view.setMapContext(mapContext);
598

  
599
		// Add view document to project
600
		getProject().add(view);
601

  
602
		if (openViewWindow) {
603
			// Open view window
604
			SwingUtilities.invokeLater(new Runnable() {
605

  
606
				public void run() {
607
					IWindow viewWindow = view.getFactory().getMainWindow(view);
608
					PluginServices.getMDIManager().addWindow(viewWindow);
609

  
610
				}
611
			});
612
		}
613

  
614
		// If map has no source view link it to the new one
615
		if (map.getSourceView() == null) {
616
			map.setSourceView(view);
617
		}
618

  
619
		return view;
620
	}
621

  
622
	/** {@inheridDoc} */
623
	public void regeneratePortableView(PortableViewDocument map,
624
			CompilationListener listener, boolean openWindow)
625
			throws InvalidPortableViewFormatException,
626
			CantLoadContextException, IOException {
627
		if (map == null) {
628
			throw new IllegalArgumentException(
629
					"Portable View document is required");
630
		}
631
		if (map.getSourceView() == null) {
632
			// No source view it can't regenerate it
633
			return;
634
		}
635
		ViewDocument document = map.getSourceView();
636

  
637
		// Get a compilation instance from map
638
		PortableViewCompilation compilation = manager
639
				.createCompilationInstanceFromMap(map.getPortableView());
640

  
641
		// Update map context from view
642
		compilation.setMapContext(document.getMapContext());
643

  
644
		// Create a editor and disable id change
645
		PortableViewCompilationEditor editor = swingManager
646
				.getCopilationEditor(compilation, false);
647
		editor.allowChangeId(false);
648

  
649
		// Add update listener
650
		final UpdateDocumentListener myListener = new UpdateDocumentListener(
651
				map, listener, openWindow);
652

  
653
		// Add editor listener which call to compiler or notify cancel to
654
		// listener
655
		editor.setListener(new PortableViewCompilationEditorListener() {
656

  
657
			public void finished(final PortableViewCompilationEditor editor) {
658
				editor.getSwingComponent().setVisible(false);
659
				SwingUtilities.invokeLater(new Runnable() {
660

  
661
					public void run() {
662
						try {
663
							compileInInstallFolder(editor.getCompilation(),
664
									myListener);
665
						} catch (Exception ex) {
666
							myListener.exception("Exception compiling", ex);
667
						}
668

  
669
					}
670
				});
671
			}
672

  
673
			public void canceled(final PortableViewCompilationEditor editor) {
674
				editor.getSwingComponent().setVisible(false);
675
				SwingUtilities.invokeLater(new Runnable() {
676

  
677
					public void run() {
678
						myListener.canceledEditing(editor.getCompilation());
679
					}
680
				});
681
			}
682

  
683
		});
684

  
685
		// Show editor
686
		winManager.showCompilationEditor(editor, MODE.WINDOW);
687

  
688
	}
689
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.50/org.gvsig.educa.portableview.app/org.gvsig.educa.portableview.app.editor/src/main/java/org/gvsig/educa/portableview/app/editor/RegeneratePortableViewExtension.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.educa.portableview.app.editor;
23

  
24
import javax.swing.SwingUtilities;
25

  
26
import org.gvsig.andami.PluginServices;
27
import org.gvsig.andami.messages.NotificationManager;
28
import org.gvsig.andami.plugins.Extension;
29
import org.gvsig.andami.ui.mdiManager.IWindow;
30
import org.gvsig.app.project.documents.view.gui.IView;
31
import org.gvsig.educa.portableview.app.viewer.PortableViewDocument;
32
import org.gvsig.educa.portableview.app.viewer.ui.PortableViewDocumentViewer;
33
import org.gvsig.educa.portableview.swing.PortableViewSwingLocator;
34
import org.gvsig.educa.portableview.swing.PortableViewSwingManager;
35

  
36
/**
37
 * Andami extension to update a Portable View from its source View.
38
 *
39
 * @author gvSIG Team
40
 * @version $Id$
41
 */
42
public class RegeneratePortableViewExtension extends Extension {
43

  
44
    private PortableViewEditorManager editorManager;
45
    private PortableViewSwingManager swingManager;
46

  
47
    public void initialize() {
48
        // Do nothing
49
    }
50

  
51
    @Override
52
    public void postInitialize() {
53
        editorManager = PortableViewEditorLocator.getManager();
54
        swingManager = PortableViewSwingLocator.getSwingManager();
55
    }
56

  
57
    public void execute(String actionCommand) {
58
        IWindow window = PluginServices.getMDIManager().getActiveWindow();
59
        final PortableViewDocument tmDocument = getRelatedPortableView(window);
60

  
61
        SwingUtilities.invokeLater(new Runnable() {
62

  
63
            public void run() {
64
                try {
65
                    editorManager.regeneratePortableView(tmDocument, null, true);
66
                } catch (Exception ex) {
67
                    NotificationManager.addError(swingManager
68
                        .getTranslation("problems_regeneration_portable_view"),
69
                        ex);
70
                }
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff