Revision 945

View differences:

org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n/text_it.properties
1
#text_it.properties
2
accept=Accetta
3
add=Aggiungi
4
add_layer_group=Aggiungi gruppo di layer
5
add_layers=Aggiungi layer
6
are_you_sure_to_remove_selected_layers=Sei sicuro di voler rimuovere i layer selezionati?
7
cancel=Cancella
8
clean_messages=Cancella messaggi
9
current_values_are_not_valid=I valori attuali non sono validi
10
default=Predefinito
11
edit_source_properties=Edita le propriet\u00E0 della fonte di dati
12
explorer=Esploratore di fonte di dati
13
explorer_parameters=Parametri dell'esploratore
14
explorer_parameters_not_valid=Parametri dell'esploratore non validi
15
get_layer_group_name=Introdurre il nome del gruppo di layer
16
layer_name=Nome
17
layer_properties=Propriet\u00E0 del layer
18
layer_show_in_toc=Mostra nella TOC
19
layer_visible=Visibile
20
list_data_explorer=Elenca fonti di dati
21
list_sources=Elenca fonti di dati
22
new=Nuovo
23
no_layers_added=Nessun layer \u00E8 stato aggiunto
24
no_layers_to_add=Nessun layer da aggiungere
25
open_portable_view=Apri mappa tematica
26
parameters=Parametri
27
problem_adding_group=Problema nell'aggiunta del gruppo di layer
28
problems_opening_explorer=Problema nell'apertura dell'esploratore
29
remove_layers=Rimuovi layer
30
select_layer_show_properties=Seleziona layer per mostrare le sue propriet\u00E0
31
select_layers_to_remove=Seleziona layer da rimuovere
32
select_only_one_layer=Seleziona un unico layer
33
source_parameters=Parametri della fonte di dati
34
portable_view_compilation_editor=Editor di compilazione di mappa tematica
35
portable_view_description=Descrizione
36
portable_view_id=Identificatore
37
portable_view_information=Informazioni
38
portable_view_layers=Layer della mappa tematica
39
portable_view_name=Nome
40
portable_view_validation=Validazione della mappa tematica
41
portable_view_version=Versione
42
updateing_compilation_info=Aggiornamento delle informazioni di compilazione
43
validate=Valida
44
version=Versione
45
version_must_be_a_integer=La versione deve essere un intero
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n/text.properties
1
#text.properties
2
accept=Aceptar
3
add=A\u00F1adir
4
add_layer_group=A\u00F1adir agrupaci\u00F3n de capas
5
add_layers=A\u00F1adir capas
6
are_you_sure_to_remove_selected_layers=\u00BFEst\u00E1 seguro de eliminar las capas seleccionadas?
7
cancel=Cancelar
8
clean_messages=Limpiar mensajes
9
current_values_are_not_valid=Los valores actuales no son v\u00E1lidos
10
default=Por defecto
11
edit_source_properties=Editar propiedades de la fuente de datos
12
explorer=Explorador de fuentes de datos
13
explorer_parameters=Par\u00E1metros del explorador
14
explorer_parameters_not_valid=Par\u00E1metro del explorador no v\u00E1lidos
15
get_layer_group_name=Introduzca el nombre para la agrupaci\u00F3n
16
layer_name=Nombre
17
layer_properties=Propiedades de capa
18
layer_show_in_toc=Se muestra en el TOC
19
layer_visible=Visible
20
list_data_explorer=Listar fuentes de datos
21
list_sources=Listar fuentes
22
new=nuevo
23
no_layers_added=No se han a\u00F1adido capas
24
no_layers_to_add=No hay capas para a\u00F1adir
25
open_portable_view=Abrir Vista Portable
26
parameters=Par\u00E1metros
27
problem_adding_group=Se ha encontrado un problema a\u00F1adiendo la agrupaci\u00F3n
28
problems_opening_explorer=Se han encontrado problemas abriendo el explorador
29
remove_layers=Eliminar capas
30
select_layer_show_properties=Seleccione una capa para mostrar sus propiedades
31
select_layers_to_remove=Seleccione las capas a eliminar
32
select_only_one_layer=Seleccione una \u00FAnica capa
33
source_parameters=Par\u00E1metros de la fuente
34
portable_view_compilation_editor=Editor de compilaci\u00F3n de la vista portable
35
portable_view_description=Descripci\u00F3n
36
portable_view_id=Identificador
37
portable_view_information=Informaci\u00F3n de la vista portable
38
portable_view_layers=Capas de la vista portable
39
portable_view_name=Nombre
40
portable_view_validation=Validaci\u00F3n de la vista portable
41
portable_view_version=Versi\u00F3n
42
updateing_compilation_info=Actualizando datos de la compilaci\u00F3n
43
validate=Validar
44
version=Versi\u00F3n
45
version_must_be_a_integer=Versi\u00F3n debe ser un entero
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n/text_en.properties
1
#text_en.properties
2
accept=Accept
3
add=Add
4
add_layer_group=Add layer group
5
add_layers=Add layers
6
are_you_sure_to_remove_selected_layers=Are you sure to remove selected layers?
7
cancel=Cancel
8
clean_messages=Clean messages
9
current_values_are_not_valid=Current values are not valid\n
10
default=Default
11
edit_source_properties=Edit source properties
12
explorer=Sources Explorer
13
explorer_parameters=Explorer parameters
14
explorer_parameters_not_valid=Explorer parameters are not valid
15
get_layer_group_name=Input layer group name
16
layer_name=Name
17
layer_properties=Layer properties
18
layer_show_in_toc=Show in TOC
19
layer_visible=Visible
20
list_data_explorer=List sources
21
list_sources=List sources
22
new=New
23
no_layers_added=None layer has been added
24
no_layers_to_add=No layers to add
25
open_portable_view=Open Portable View
26
parameters=Parameters
27
problem_adding_group=Problems found adding layer group
28
problems_opening_explorer=Problems found opening explorer
29
remove_layers=Remove layers
30
select_layer_show_properties=Select a layer to show its properties
31
select_layers_to_remove=Select the layers to remove
32
select_only_one_layer=Select just one layer
33
source_parameters=Source parameters
34
portable_view_compilation_editor=Portable View Compilation Editor
35
portable_view_description=Description
36
portable_view_id=Identifier
37
portable_view_information=Information
38
portable_view_layers=Portable View Layers
39
portable_view_name=Name
40
portable_view_validation=Portable View Validation
41
portable_view_version=Version
42
updateing_compilation_info=Updating compilation information
43
validate=Validate
44
version=Version
45
version_must_be_a_integer=Version must be an integer
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n/text_pt_BR.properties
1
#text_pt_BR.properties
2
accept=Aceitar
3
add=Adicionar
4
add_layer_group=Adicionar grupo de camadas
5
add_layers=Adicionar camadas
6
are_you_sure_to_remove_selected_layers=Deseja realmente remover as camadas selecionadas?
7
cancel=Cancelar
8
clean_messages=Apagar mensagens
9
current_values_are_not_valid=Valores inv\u00E1lidos
10
default=Default
11
edit_source_properties=Editar propriedades da fonte de dados
12
explorer=Explorador de fonte de dados
13
explorer_parameters=Explorador de par\u00E2metros
14
explorer_parameters_not_valid=Explorador de par\u00E2metros inv\u00E1lido
15
get_layer_group_name=Forne\u00E7a um nome para o grupo de camadas
16
layer_name=Nome da camada
17
layer_properties=Propriedades da camada
18
layer_show_in_toc=Camada vis\u00EDvel no TOC
19
layer_visible=Camada vis\u00EDvel
20
list_data_explorer=Listar fontes de dados
21
list_sources=Listar fontes
22
new=Novo
23
no_layers_added=Nenhuma camada adicionada
24
no_layers_to_add=Nenhuma camada a adicionar
25
open_portable_view=Abrir mapa tem\u00E1tico
26
parameters=Par\u00E2metros
27
problem_adding_group=Problema ao adicionar grupo
28
problems_opening_explorer=Problemas ao abrir o explorador
29
remove_layers=Remover camadas
30
select_layer_show_properties=Selecione uma camada para mostrar suas propriedades
31
select_layers_to_remove=Selecione as camadas a remover
32
select_only_one_layer=Selecione apenas uma camada
33
source_parameters=Par\u00E2metros da fonte
34
portable_view_compilation_editor=Editor de compila\u00E7\u00E3o de mapa tem\u00E1tico
35
portable_view_description=Descri\u00E7\u00E3o do mapa tem\u00E1tico
36
portable_view_id=Identificador do mapa tem\u00E1tico
37
portable_view_information=Informa\u00E7\u00E3o do mapa tem\u00E1tico
38
portable_view_layers=Camadas do mapa tem\u00E1tico
39
portable_view_name=Nome do mapa tem\u00E1tico
40
portable_view_validation=Valida\u00E7\u00E3o do mapa tem\u00E1tico
41
portable_view_version=Vers\u00E3o do mapa tem\u00E1tico
42
updateing_compilation_info=Atualizadno dados da compila\u00E7\u00E3o
43
validate=Validar
44
version=Vers\u00E3o
45
version_must_be_a_integer=Vers\u00E3o deve ser n\u00FAmero inteiro
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n/text_ru.properties
1
#text_ru.properties
2
accept=\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C
3
add=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C
4
add_layer_group=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443 \u0441\u043B\u043E\u0435\u0432
5
add_layers=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u043B\u043E\u0438
6
are_you_sure_to_remove_selected_layers=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0441\u043B\u043E\u0438?
7
cancel=\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C
8
clean_messages=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F
9
current_values_are_not_valid=\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435
10
default=\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E
11
edit_source_properties=\u0418\u0437\u043C\u0435\u043D\u0438\u0442 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430 \u0434\u0430\u043D\u043D\u044B\u0445
12
explorer=\u041C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432 \u0434\u0430\u043D\u043D\u044B\u0445
13
explorer_parameters=\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B
14
explorer_parameters_not_valid=\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B
15
get_layer_group_name=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u0433\u0440\u0443\u043F\u043F\u044B \u0441\u043B\u043E\u0435\u0432
16
layer_name=\u0418\u043C\u044F
17
layer_properties=\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0441\u043B\u043E\u044F
18
layer_show_in_toc=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432 \u0422\u041E\u0421
19
layer_visible=\u0412\u0438\u0434\u0438\u043C\u044B\u0439
20
list_data_explorer=\u0421\u043F\u0438\u0441\u043E\u043A \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432 \u0434\u0430\u043D\u043D\u044B\u0445
21
list_sources=\u0421\u043F\u0438\u0441\u043E\u043A \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432
22
new=\u041D\u043E\u0432\u044B\u0439
23
no_layers_added=\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0441\u043B\u043E\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442
24
no_layers_to_add=\u041D\u0435\u0442 \u0441\u043B\u043E\u0435\u0432 \u0434\u043B\u044F \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F
25
open_portable_view=\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u043A\u0430\u0440\u0442\u0443
26
parameters=\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B
27
problem_adding_group=\u041F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u0433\u0440\u0443\u043F\u043F\u044B \u0441\u043B\u043E\u0435\u0432 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430 
28
problems_opening_explorer=\u041F\u0440\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0438 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u0430 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432 \u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430
29
remove_layers=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043B\u043E\u0438
30
select_layer_show_properties=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043B\u043E\u0439, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0435\u0433\u043E \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430
31
select_layers_to_remove=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043B\u043E\u0438 \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F
32
select_only_one_layer=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u0438\u043D \u0441\u043B\u043E\u0439
33
source_parameters=\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430
34
portable_view_compilation_editor=\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043A\u043E\u043C\u043F\u0438\u043B\u044F\u0446\u0438\u0438 \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B
35
portable_view_description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435
36
portable_view_id=\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440
37
portable_view_information=\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
38
portable_view_layers=\u0421\u043B\u043E\u0438 \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B
39
portable_view_name=\u0418\u043C\u044F
40
portable_view_validation=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0422\u0435\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u043A\u0430\u0440\u0442\u044B
41
portable_view_version=\u0412\u0435\u0440\u0441\u0438\u044F
42
updateing_compilation_info=\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u043A\u043E\u043C\u043F\u0438\u043B\u044F\u0446\u0438\u0438
43
validate=\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C
44
version=\u0412\u0435\u0440\u0441\u0438\u044F
45
version_must_be_a_integer=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0446\u0435\u043B\u044B\u043C \u0447\u0438\u0441\u043B\u043E\u043C
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n/text_es.properties
1
#text_es.properties
2
accept=Aceptar
3
add=A\u00F1adir
4
add_layer_group=A\u00F1adir agrupaci\u00F3n de capas
5
add_layers=A\u00F1adir capas
6
are_you_sure_to_remove_selected_layers=\u00BFEst\u00E1 seguro de eliminar las capas seleccionadas?
7
cancel=Cancelar
8
clean_messages=Limpiar mensajes
9
current_values_are_not_valid=Los valores actuales no son v\u00E1lidos
10
default=Por defecto
11
edit_source_properties=Editar propiedades de la fuente de datos
12
explorer=Explorador de fuentes de datos
13
explorer_parameters=Par\u00E1metros del explorador
14
explorer_parameters_not_valid=Par\u00E1metro del explorador no v\u00E1lidos
15
get_layer_group_name=Introduzca el nombre para la agrupaci\u00F3n
16
layer_name=Nombre
17
layer_properties=Propiedades de capa
18
layer_show_in_toc=Se muestra en el TOC
19
layer_visible=Visible
20
list_data_explorer=Listar fuentes de datos
21
list_sources=Listar fuentes
22
new=nuevo
23
no_layers_added=No se han a\u00F1adido capas
24
no_layers_to_add=No hay capas para a\u00F1adir
25
open_portable_view=Abrir Vista Portable
26
parameters=Par\u00E1metros
27
problem_adding_group=Se ha encontrado un problema a\u00F1adiendo la agrupaci\u00F3n
28
problems_opening_explorer=Se han encontrado problemas abriendo el explorador
29
remove_layers=Eliminar capas
30
select_layer_show_properties=Seleccione una capa para mostrar sus propiedades
31
select_layers_to_remove=Seleccione las capas a eliminar
32
select_only_one_layer=Seleccione una \u00FAnica capa
33
source_parameters=Par\u00E1metros de la fuente
34
portable_view_compilation_editor=Editor de compilaci\u00F3n de la vista portable
35
portable_view_description=Descripci\u00F3n
36
portable_view_id=Identificador
37
portable_view_information=Informaci\u00F3n de la vista portable
38
portable_view_layers=Capas de la vista portable
39
portable_view_name=Nombre
40
portable_view_validation=Validaci\u00F3n de la vista portable
41
portable_view_version=Versi\u00F3n
42
updateing_compilation_info=Actualizando datos de la compilaci\u00F3n
43
validate=Validar
44
version=Versi\u00F3n
45
version_must_be_a_integer=Versi\u00F3n debe ser un entero
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/org/gvsig/educa/portableview/swing/impl/i18n/text_de.properties
1
#text_de.properties
2
accept=Akzeptieren
3
add=Hinzuf\u00FCgen
4
add_layer_group=Layergruppe hinzuf\u00FCgen
5
add_layers=Layer hinzuf\u00FCgen
6
are_you_sure_to_remove_selected_layers=M\u00F6chten Sie die ausgew\u00E4hlten Layer wirklich l\u00F6schen?
7
cancel=Abbrechen
8
clean_messages=Benachrichtigungen l\u00F6schen
9
current_values_are_not_valid=Aktuelle Werte sind nicht g\u00FCltig
10
default=Standard
11
edit_source_properties=Quelldaten-Eigenschaften bearbeiten
12
explorer=Explorer
13
explorer_parameters=Explorer Parameter
14
explorer_parameters_not_valid=Explorer Parameter ung\u00FCltig
15
get_layer_group_name=Layergruppenname eingeben
16
layer_name=Name
17
layer_properties=Layer Eigenschaften
18
layer_show_in_toc=Layer in TOC anzeigen
19
layer_visible=Sichtbar
20
list_data_explorer=Datenquellen anzeigen
21
list_sources=Quellen anzeigen
22
new=Neu
23
no_layers_added=Keine Layer hinzugef\u00FCgt
24
no_layers_to_add=Keine Layer zum hinzuf\u00FCgen vorhanden
25
open_portable_view=Thematische Karte \u00F6ffnen
26
parameters=Parameter
27
problem_adding_group=Problem beim Hinzuf\u00FCgen der Layergruppe
28
problems_opening_explorer=Problem beim \u00D6ffnen des Explorer
29
remove_layers=Layer entfernen
30
select_layer_show_properties=Layer Ausw\u00E4hlen um seine Eigenschaften anzuzeigen
31
select_layers_to_remove=Layer zum Entfernen ausw\u00E4hlen
32
select_only_one_layer=Nur einen Layer ausw\u00E4hlen
33
source_parameters=Quellparameter
34
portable_view_compilation_editor=Editor zum Kompilieren Thematischer Karten
35
portable_view_description=Beschreibung
36
portable_view_id=ID
37
portable_view_information=Information
38
portable_view_layers=Layer der Thematischen Karte
39
portable_view_name=Name
40
portable_view_validation=Validierung der Thematischen Karte
41
portable_view_version=Version
42
updateing_compilation_info=Kompilierungsinformationen aktualisieren
43
validate=Validieren
44
version=Version
45
version_must_be_a_integer=Version muss eine Ganzzahl sein
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.educa.portableview.swing.impl.PortableViewSwingDefaultImplLibrary
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/java/org/gvsig/educa/portableview/swing/impl/viewer/DefaultPortableViewToc.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.swing.impl.viewer;
23

  
24
import java.awt.BorderLayout;
25
import java.awt.Dimension;
26
import java.awt.Image;
27
import java.awt.Rectangle;
28
import java.awt.event.MouseEvent;
29
import java.awt.event.MouseListener;
30
import java.util.ArrayList;
31
import java.util.Arrays;
32
import java.util.List;
33

  
34
import javax.swing.JComponent;
35
import javax.swing.JPanel;
36
import javax.swing.JScrollPane;
37
import javax.swing.JTree;
38
import javax.swing.SwingUtilities;
39
import javax.swing.event.TreeSelectionEvent;
40
import javax.swing.event.TreeSelectionListener;
41
import javax.swing.tree.DefaultMutableTreeNode;
42
import javax.swing.tree.DefaultTreeModel;
43
import javax.swing.tree.TreePath;
44
import javax.swing.tree.TreeSelectionModel;
45

  
46
import org.gvsig.andami.IconThemeHelper;
47
import org.gvsig.educa.portableview.swing.impl.viewer.TocTreeNode.TYPE;
48
import org.gvsig.educa.portableview.swing.PortableViewSwingLocator;
49
import org.gvsig.educa.portableview.swing.PortableViewSwingManager;
50
import org.gvsig.educa.portableview.swing.viewer.PortableViewToc;
51
import org.gvsig.educa.portableview.swing.viewer.PortableViewTocImageProvider;
52
import org.gvsig.educa.portableview.swing.viewer.PortableViewViewer;
53
import org.gvsig.fmap.mapcontext.MapContext;
54
import org.gvsig.fmap.mapcontext.layers.FLayer;
55
import org.gvsig.fmap.mapcontext.layers.FLayers;
56
import org.gvsig.fmap.mapcontext.layers.LayerEvent;
57
import org.gvsig.fmap.mapcontext.layers.LayerListener;
58
import org.gvsig.fmap.mapcontext.layers.operations.Classifiable;
59
import org.gvsig.fmap.mapcontext.layers.operations.IHasImageLegend;
60
import org.gvsig.fmap.mapcontext.layers.operations.LayerCollection;
61
import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer;
62
import org.gvsig.fmap.mapcontext.rendering.legend.IClassifiedLegend;
63
import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
64
import org.gvsig.fmap.mapcontext.rendering.legend.ISingleSymbolLegend;
65
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
66
import org.gvsig.fmap.swing.toc.TOCFactory;
67
import org.gvsig.fmap.swing.toc.event.ActiveLayerChangeEventListener;
68
import org.gvsig.fmap.swing.toc.event.LayerActionEventListener;
69
import org.gvsig.fmap.swing.toc.event.LegendActionEventListener;
70
import org.gvsig.tools.dynobject.DynObject;
71
import org.gvsig.tools.service.Manager;
72

  
73
/**
74
 * <p>
75
 * Default implementation of {@link PortableViewToc}
76
 * </p>
77
 *
78
 * @author gvSIG Team
79
 * @version $Id$
80
 *
81
 */
82
public class DefaultPortableViewToc extends JPanel implements PortableViewToc,
83
		LayerListener, TreeSelectionListener {
84

  
85
	/**
86
     *
87
     */
88
	private static final long serialVersionUID = 3761640139439674486L;
89

  
90
	@SuppressWarnings("unused")
91
	private static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory
92
			.getLogger(DefaultPortableViewToc.class);
93

  
94
	private static final FLayer[] EMPTY_SELECTION = new FLayer[0];
95

  
96
	private PortableViewViewer viewer;
97

  
98
	private boolean initialized;
99

  
100
	private JTree tree;
101

  
102
	private FLayers rootLayer;
103

  
104
	private TocTreeNode rootNode;
105

  
106
	private DefaultTreeModel treeModel;
107

  
108
	private PortableViewTocImageProvider imageProvider;
109

  
110
	private TocTreeCellRenderer cellRenderer;
111

  
112
	private boolean internalSelectionChanging;
113

  
114
	private final PortableViewSwingManager swingManager;
115

  
116
	public DefaultPortableViewToc() {
117
		swingManager = PortableViewSwingLocator.getSwingManager();
118
		initialized = false;
119
		imageProvider = swingManager.getDefaultTocImageProvider();
120
	}
121

  
122
	public void setImageProvider(PortableViewTocImageProvider imageProvider) {
123
		this.imageProvider = imageProvider;
124

  
125
		if (cellRenderer != null) {
126
			cellRenderer.setImageProvider(imageProvider);
127
		}
128
	}
129

  
130
	/**
131
	 * Load tree model from mapContext
132
	 */
133
	private void loadTreeModel() {
134
		rootLayer = getMapContext().getLayers();
135
		// rootNode = new LayerTreeNode(rootLayer);
136
		// rootLayer.addLayerCollectionListener(this);
137
		loadLayerNode(rootLayer, null);
138
		treeModel = new DefaultTreeModel(rootNode);
139
		tree.setModel(treeModel);
140
		tree.invalidate();
141
		tree.getSelectionModel().addTreeSelectionListener(this);
142
	}
143

  
144
	/**
145
	 * Load a layer Node
146
	 *
147
	 * @param layer
148
	 * @param parent
149
	 */
150
	private void loadLayerNode(FLayer layer, TocTreeNode parent) {
151
		layer.addLayerListener(this);
152
		TocTreeNode node;
153
		if (layer instanceof LayerCollection) {
154
			LayerCollection collection = (LayerCollection) layer;
155
			node = new TocTreeNode((LayerCollection) layer);
156
			// collection.addLayerCollectionListener(this);
157
			for (int i = collection.getLayersCount(); i > 0; i--) {
158
				loadLayerNode(collection.getLayer(i - 1), node);
159
			}
160
			if (parent == null) {
161
				rootNode = node;
162
			} else {
163
				parent.add(node);
164
			}
165

  
166
		} else {
167
			loadSingleLayerNode((SingleLayer) layer, parent);
168
		}
169

  
170
	}
171

  
172
	private void loadSingleLayerNode(SingleLayer layer, TocTreeNode parent) {
173
		TocTreeNode node;
174
		if (layer instanceof Classifiable) {
175
			Classifiable classifLayer = (Classifiable) layer;
176
			if (classifLayer.getLegend() != null) {
177
				loadLayerWithLegendNode(layer, classifLayer.getLegend(), parent);
178
				return;
179
			}
180
		}
181
		if (layer instanceof IHasImageLegend) {
182
			if (layer.isAvailable()) {
183
				Image imgLegend = ((IHasImageLegend) layer).getImageLegend();
184
				loadLayerWithImageLegendNode(layer, imgLegend, parent);
185
			}else {
186
				loadLayerWithImageLegendNode(layer, null, parent);
187
			}
188
			return;
189
		}
190
		node = new TocTreeNode(layer);
191
		parent.add(node);
192
	}
193

  
194
	/**
195
	 * @param layer
196
	 * @param imgLegend
197
	 * @param parent
198
	 */
199
	private void loadLayerWithImageLegendNode(SingleLayer layer,
200
			Image imgLegend, TocTreeNode parent) {
201
		TocTreeNode node;
202
		if (imgLegend == null) {
203
			node = new TocTreeNode(layer);
204
		} else {
205
			node = new TocTreeNode(layer, imgLegend);
206
			TocTreeNode legendNode = new TocTreeNode(imgLegend, layer);
207
			node.add(legendNode);
208
		}
209
		parent.add(node);
210
	}
211

  
212
	/**
213
	 * @param layer
214
	 * @param legend
215
	 * @param parent
216
	 */
217
	private void loadLayerWithLegendNode(SingleLayer layer, ILegend legend,
218
			TocTreeNode parent) {
219
		TocTreeNode node;
220
		ISymbol defSymbol = legend.getDefaultSymbol();
221
		if (legend instanceof IClassifiedLegend) {
222
			node = new TocTreeNode(layer, true);
223
			IClassifiedLegend cl = (IClassifiedLegend) legend;
224
			String[] descriptions = cl.getDescriptions();
225
			ISymbol[] symbols = cl.getSymbols();
226

  
227
			TocTreeNode symNode;
228
			for (int j = 0; j < descriptions.length; j++) {
229
				symNode = new TocTreeNode(symbols[j], descriptions[j], layer);
230
				node.add(symNode);
231
			}
232
		} else if (legend instanceof ISingleSymbolLegend && defSymbol != null) {
233
			node = new TocTreeNode(layer, true);
234

  
235
			TocTreeNode symNode = new TocTreeNode(defSymbol,
236
					defSymbol.getDescription(), layer);
237
			node.add(symNode);
238

  
239
		} else {
240
			node = new TocTreeNode(layer, false);
241
		}
242
		parent.add(node);
243
	}
244

  
245
	private List<TocTreeNode> getNodesFromType(TYPE... types) {
246
		List<TocTreeNode> nodesFound = new ArrayList<TocTreeNode>();
247
		getNodesFromType(rootNode, nodesFound, types);
248

  
249
		return nodesFound;
250
	}
251

  
252
	private void getNodesFromType(TocTreeNode node,
253
			List<TocTreeNode> nodesFound, TYPE... types) {
254
		for (TYPE type : types) {
255
			if (node.getType() == type) {
256
				nodesFound.add(node);
257
			}
258
		}
259
		for (int index = 0; index < node.getChildCount(); index++) {
260
			getNodesFromType((TocTreeNode) node.getChildAt(index), nodesFound,
261
					types);
262
		}
263
	}
264

  
265
	/** {@inheridDoc} */
266
	public JComponent getSwingComponent() {
267
		if (viewer == null) {
268
			throw new IllegalStateException("Viewer not set yet");
269
		}
270
		return this;
271
	}
272

  
273
	/** {@inheridDoc} */
274
	public FLayer[] getSelectedLayers() {
275
		if (viewer == null) {
276
			throw new IllegalStateException("Viewer not set yet");
277
		}
278

  
279
		List<FLayer> selectedLayers = new ArrayList<FLayer>();
280
		TocTreeNode node;
281
		TreePath[] paths = tree.getSelectionPaths();
282

  
283
		if (paths != null && paths.length > 0) {
284
			for (TreePath path : paths) {
285
				node = (TocTreeNode) path.getLastPathComponent();
286
				if (node.isLayer()) {
287
					selectedLayers.add(node.getLayer());
288
				}
289
			}
290
		} else {
291
			return EMPTY_SELECTION;
292
		}
293

  
294
		return selectedLayers.toArray(EMPTY_SELECTION);
295
	}
296

  
297
	/** {@inheridDoc} */
298
	public void attachTo(PortableViewViewer viewer) {
299
		if (this.viewer != null && !this.viewer.equals(viewer)) {
300
			throw new IllegalStateException("Viewer already attached");
301
		}
302
		this.viewer = viewer;
303
		initializeUI();
304
		loadTreeModel();
305
	}
306

  
307
	/** {@inheridDoc} */
308
	public PortableViewViewer getViewer() {
309
		return viewer;
310
	}
311

  
312
	/**
313
	 * Initialize User Interface components
314
	 */
315
	private void initializeUI() {
316
		if (initialized) {
317
			return;
318
		}
319
		setLayout(new BorderLayout());
320

  
321
		tree = new JTree();
322

  
323
		cellRenderer = new TocTreeCellRenderer();
324
		if (imageProvider != null) {
325
			cellRenderer.setImageProvider(imageProvider);
326
		}
327

  
328
		tree.setCellRenderer(cellRenderer);
329

  
330
		tree.setRootVisible(false);
331

  
332
		tree.getSelectionModel().setSelectionMode(
333
				TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
334

  
335
		add(new JScrollPane(tree), BorderLayout.CENTER);
336

  
337
		tree.addMouseListener(new MouseListener() {
338

  
339
			public void mouseReleased(MouseEvent e) {
340
				processTreeMouseEvent(e);
341
			}
342

  
343
			public void mousePressed(MouseEvent e) {
344
				processTreeMouseEvent(e);
345
			}
346

  
347
			public void mouseExited(MouseEvent e) {
348
				processTreeMouseEvent(e);
349
			}
350

  
351
			public void mouseEntered(MouseEvent e) {
352
				processTreeMouseEvent(e);
353
			}
354

  
355
			public void mouseClicked(MouseEvent e) {
356
				processTreeMouseEvent(e);
357
			}
358
		});
359

  
360
		setMinimumSize(new Dimension(200, 100));
361

  
362
		initialized = true;
363
	}
364

  
365
	/**
366
	 * Locates the layer node in all tree structure from root
367
	 *
368
	 * @param layer
369
	 * @return
370
	 */
371
	private DefaultMutableTreeNode findLayerNode(FLayer layer) {
372
		if (rootNode == null) {
373
			return null;
374
		}
375
		return findLayerNode(rootNode, layer);
376
	}
377

  
378
	/**
379
	 * Locates the layer node in all tree structure from root
380
	 *
381
	 * @param node
382
	 * @param layer
383
	 * @return
384
	 */
385
	private TocTreeNode findLayerNode(TocTreeNode node, FLayer layer) {
386
		if (node.getLayer() == layer) {
387
			return node;
388
		}
389
		if (node.isLeaf()) {
390
			return null;
391
		}
392
		TocTreeNode aNode;
393
		TocTreeNode result;
394
		for (int i = 0; i < node.getChildCount(); i++) {
395
			aNode = (TocTreeNode) node.getChildAt(i);
396
			result = findLayerNode(aNode, layer);
397
			if (result != null) {
398
				return result;
399
			}
400
		}
401
		return null;
402

  
403
	}
404

  
405
	public DynObject getParameters() {
406
		// TODO Auto-generated method stub
407
		return null;
408
	}
409

  
410
	public TOCFactory getFactory() {
411
		// TODO Auto-generated method stub
412
		return null;
413
	}
414

  
415
	public JComponent getComponent() {
416
		return getSwingComponent();
417
	}
418

  
419
	public MapContext getMapContext() {
420
		if (viewer == null) {
421
			return null;
422
		}
423
		return viewer.getPortableView().getMapContext();
424
	}
425

  
426
	public void showAll() {
427
		List<TocTreeNode> nodes = getNodesFromType(TYPE.values());
428
		for (TocTreeNode node : nodes) {
429
			tree.expandPath(new TreePath(node.getPath()));
430
		}
431
	}
432

  
433
	public void hideAll() {
434
		DefaultMutableTreeNode node;
435
		for (int i = rootNode.getChildCount(); i < rootNode.getChildCount(); i++) {
436
			node = (DefaultMutableTreeNode) rootNode.getChildAt(i);
437
			tree.collapsePath(new TreePath(node.getPath()));
438
		}
439

  
440
	}
441

  
442
	public void showAllLegends() {
443
		List<TocTreeNode> nodes = getNodesFromType(TYPE.LAYER_WITH_LEGEND,
444
				TYPE.LAYER_WITH_IMAGE_LEGEND);
445
		for (TocTreeNode node : nodes) {
446
			tree.expandPath(new TreePath(node.getPath()));
447
		}
448
	}
449

  
450
	public void hideAllLegends() {
451
		List<TocTreeNode> nodes = getNodesFromType(TYPE.LAYER_WITH_LEGEND,
452
				TYPE.LAYER_WITH_IMAGE_LEGEND);
453
		for (TocTreeNode node : nodes) {
454
			tree.collapsePath(new TreePath(node.getPath()));
455
		}
456
	}
457

  
458
	public void show(FLayer lyr, boolean detailed) {
459
		DefaultMutableTreeNode node = findLayerNode(lyr);
460
		if (detailed && node.getChildCount() > 0) {
461
			node = (DefaultMutableTreeNode) node.getFirstChild();
462
		}
463
		tree.scrollPathToVisible(new TreePath(node.getPath()));
464
	}
465

  
466
	public void showLegend(FLayer lyr) {
467
		show(lyr, true);
468
	}
469

  
470
	public void hideLegend(FLayer lyr) {
471
		DefaultMutableTreeNode node = findLayerNode(lyr);
472
		tree.collapsePath(new TreePath(node.getPath()));
473
	}
474

  
475
	public void selectLayer(FLayer lyr) {
476
		DefaultMutableTreeNode node = findLayerNode(lyr);
477
		tree.getSelectionModel().addSelectionPath(new TreePath(node.getPath()));
478
	}
479

  
480
	public void unselectLayer(FLayer lyr) {
481
		DefaultMutableTreeNode node = findLayerNode(lyr);
482
		tree.getSelectionModel().removeSelectionPath(
483
				new TreePath(node.getPath()));
484
	}
485

  
486
	public void clearSelection() {
487
		tree.clearSelection();
488
	}
489

  
490
	public void setActiveLayer(FLayer lyr) {
491
		TocTreeNode node = (TocTreeNode) findLayerNode(lyr);
492
		tree.getSelectionModel().setSelectionPath(new TreePath(node.getPath()));
493
	}
494

  
495
	public FLayer getActiveLayer() {
496
		if (tree.getSelectionCount() < 1) {
497
			return null;
498
		}
499
		TocTreeNode node = (TocTreeNode) tree.getSelectionPath()
500
				.getLastPathComponent();
501
		if (!node.isLayer()) {
502
			return null;
503
		}
504
		return node.getLayer();
505
	}
506

  
507
	public void invokeAction(FLayer lyr, String action) {
508
		throw new UnsupportedOperationException();
509
	}
510

  
511
	public void addLegendActionListener(LegendActionEventListener lel) {
512
		throw new UnsupportedOperationException();
513
	}
514

  
515
	public void removeLegendActionListener(LegendActionEventListener lel) {
516
		throw new UnsupportedOperationException();
517
	}
518

  
519
	public void addLayerActionListener(LayerActionEventListener lel) {
520
		throw new UnsupportedOperationException();
521
	}
522

  
523
	public void removeLayerActionListener(LayerActionEventListener lel) {
524
		throw new UnsupportedOperationException();
525
	}
526

  
527
	public void addActiveLayerChangeListener(
528
			ActiveLayerChangeEventListener alcel) {
529
		throw new UnsupportedOperationException();
530
	}
531

  
532
	public void removeActiveLayerChangeListener(
533
			ActiveLayerChangeEventListener alcel) {
534
		throw new UnsupportedOperationException();
535
	}
536

  
537
	public Manager getManager() {
538
		// Nothing to do
539
		return null;
540
	}
541

  
542
	public void visibilityChanged(LayerEvent e) {
543
		DefaultMutableTreeNode node = findLayerNode(e.getSource());
544
		treeModel.nodeChanged(node);
545
	}
546

  
547
	public void activationChanged(LayerEvent e) {
548
		if (internalSelectionChanging) {
549
			return;
550
		}
551
		FLayer layer = e.getSource();
552
		TocTreeNode node = (TocTreeNode) findLayerNode(layer);
553
		TreePath path = new TreePath(node.getPath());
554
		if (layer.isActive()) {
555
			tree.addSelectionPath(path);
556
		} else {
557
			tree.removeSelectionPath(path);
558
		}
559
	}
560

  
561
	public void nameChanged(LayerEvent e) {
562
		DefaultMutableTreeNode node = findLayerNode(e.getSource());
563
		treeModel.nodeChanged(node);
564
	}
565

  
566
	public void editionChanged(LayerEvent e) {
567
		// Nothing to do
568
	}
569

  
570
	public void drawValueChanged(LayerEvent e) {
571
		// Nothing to do
572
	}
573

  
574
	protected void processTreeMouseEvent(MouseEvent e) {
575
		if (!tree.isEnabled()) {
576
			return;
577
		}
578
		if (e.getID() != MouseEvent.MOUSE_CLICKED) {
579
			return;
580
		}
581
		int x = e.getX();
582
		int y = e.getY();
583
		int row = tree.getRowForLocation(x, y);
584
		if (row < 0) {
585
			return;
586
		}
587
		// click inside some node
588
		Rectangle rect = tree.getRowBounds(row);
589
		if (rect == null) {
590
			return;
591
		}
592

  
593
		// Get the node
594
		TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
595
		final TocTreeNode node = (TocTreeNode) selPath.getLastPathComponent();
596
		if (!node.isLayer() || !node.getLayer().isAvailable()) {
597
			// no layer or unavailable layer: do nothing
598
			return;
599
		}
600

  
601
		// click on a valid node
602
		TocTreeCellRenderer renderer = (TocTreeCellRenderer) tree
603
				.getCellRenderer();
604
		// adjust renderer for node and check box has been clicked
605
		renderer.getTreeCellRendererComponent(tree, node, false, false, false,
606
				row, false);
607
		if (!renderer.isOnCheck(x - rect.x, y - rect.y)) {
608
			return;
609
		}
610
		SwingUtilities.invokeLater(new Runnable() {
611

  
612
			public void run() {
613
				swichLayerVisibilid(node);
614
			}
615
		});
616
	}
617

  
618
	/**
619
	 * @param node
620
	 */
621
	private void swichLayerVisibilid(TocTreeNode node) {
622
		if (!node.isLayer()) {
623
			return;
624
		}
625
		FLayer layer = node.getLayer();
626
		setLayerVisibilid(node, !layer.isVisible());
627
	}
628

  
629
	private void setLayerVisibilid(TocTreeNode node, boolean newValue) {
630
		if (node.isLayer()) {
631
			FLayer layer = node.getLayer();
632
			layer.setVisible(newValue);
633
			treeModel.nodeChanged(node);
634
		}
635
		if (node.isLeaf()) {
636
			return;
637
		}
638
		TocTreeNode child;
639
		for (int index = 0; index < node.getChildCount(); index++) {
640
			child = (TocTreeNode) node.getChildAt(index);
641
			setLayerVisibilid(child, newValue);
642
		}
643
	}
644

  
645
	public void valueChanged(TreeSelectionEvent e) {
646
		internalSelectionChanging = true;
647

  
648
		getMapContext().beginAtomicEvent();
649

  
650
		List<FLayer> prevActives = new ArrayList<FLayer>(
651
				Arrays.asList(rootLayer.getActives()));
652

  
653
		TreePath[] selectedPaths = e.getPaths();
654

  
655
		List<FLayer> newActives = new ArrayList<FLayer>(selectedPaths.length);
656

  
657
		// mark new active
658
		TocTreeNode node;
659
		FLayer layer;
660
		for (TreePath path : selectedPaths) {
661
			node = (TocTreeNode) path.getLastPathComponent();
662
			if (node.isLayer()) {
663
				layer = node.getLayer();
664
				if (!layer.isActive()) {
665
					layer.setActive(true);
666
				} else {
667
					prevActives.remove(layer);
668
				}
669
				newActives.add(layer);
670
			}
671
		}
672

  
673
		// Clear the previous
674
		for (FLayer aLayer : prevActives) {
675
			aLayer.setActive(false);
676
		}
677

  
678
		getMapContext().endAtomicEvent();
679
		internalSelectionChanging = false;
680
	}
681
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/java/org/gvsig/educa/portableview/swing/impl/viewer/DefaultPortableViewInformationViewer.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.swing.impl.viewer;
23

  
24
import java.awt.BorderLayout;
25
import java.awt.Container;
26
import java.awt.GridLayout;
27

  
28
import javax.swing.JComponent;
29
import javax.swing.JPanel;
30

  
31
import org.gvsig.educa.portableview.map.PortableView;
32
import org.gvsig.educa.portableview.swing.InformationJPanelComponent;
33
import org.gvsig.educa.portableview.swing.PortableViewSwingLocator;
34
import org.gvsig.educa.portableview.swing.PortableViewSwingManager;
35
import org.gvsig.educa.portableview.swing.viewer.PortableViewInforamtionViewer;
36
import org.gvsig.tools.dynobject.DynObject;
37

  
38
/**
39
 * <p>
40
 * Default implementation of {@link PortableViewInforamtionViewer}
41
 * </p>
42
 * <p>
43
 * Uses {@link DynObjectSwingManager} to generate the dialog
44
 * </p>
45
 *
46
 * @author gvSIG Team
47
 * @version $Id$
48
 *
49
 */
50
public class DefaultPortableViewInformationViewer implements
51
		PortableViewInforamtionViewer {
52

  
53
	private static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory
54
			.getLogger(DefaultPortableViewInformationViewer.class);
55

  
56
	private final PortableViewSwingManager portableViewSwingManager;
57

  
58
	private PortableView currentMap = null;
59

  
60
	private final JPanel container;
61

  
62
	public DefaultPortableViewInformationViewer() {
63
		portableViewSwingManager = PortableViewSwingLocator.getSwingManager();
64

  
65
		container = new JPanel();
66
		container.setLayout(new GridLayout(1, 1, 10, 10));
67
	}
68

  
69
	/** {@inheridDoc} */
70
	public JComponent getSwingComponent() {
71
		return container;
72
	}
73

  
74
	/** {@inheridDoc} */
75
	public void loadMapInformation(PortableView map) {
76
		currentMap = map;
77
		DynObject mapInfo = currentMap.getInformation().getDynObject();
78
		InformationJPanelComponent informationPanel = null;
79

  
80
		container.removeAll();
81
		informationPanel = portableViewSwingManager
82
				.createInformationJpanelComponent(mapInfo);
83

  
84
		container.add(informationPanel.getJPanel(), BorderLayout.CENTER);
85
		container.doLayout();
86
		container.validate();
87
		Container parentContanier = container.getParent();
88
		if (parentContanier != null) {
89
			parentContanier.doLayout();
90
		}
91
	}
92

  
93
	/** {@inheridDoc} */
94
	public PortableView getCurrentMapLoaded() {
95
		return currentMap;
96
	}
97

  
98
	/** {@inheridDoc} */
99
	public void clean() {
100
	}
101

  
102
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/java/org/gvsig/educa/portableview/swing/impl/viewer/DefaultPortableViewInformationViewerComponent.java
1
package org.gvsig.educa.portableview.swing.impl.viewer;
2

  
3
public class DefaultPortableViewInformationViewerComponent extends
4
		DefaultPortableViewInformationViewer {
5

  
6
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/java/org/gvsig/educa/portableview/swing/impl/viewer/DefaultPortableViewViewer.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.swing.impl.viewer;
23

  
24
import java.awt.BorderLayout;
25
import java.awt.Dimension;
26
import java.io.IOException;
27
import java.util.List;
28

  
29
import javax.swing.JComponent;
30
import javax.swing.JPanel;
31
import javax.swing.JSplitPane;
32

  
33
import org.apache.commons.lang3.StringUtils;
34

  
35
import org.gvsig.educa.portableview.PortableViewRuntimeException;
36
import org.gvsig.educa.portableview.map.CantLoadContextException;
37
import org.gvsig.educa.portableview.map.InvalidPortableViewFormatException;
38
import org.gvsig.educa.portableview.map.PortableView;
39
import org.gvsig.educa.portableview.swing.PortableViewSwingLocator;
40
import org.gvsig.educa.portableview.swing.PortableViewSwingManager;
41
import org.gvsig.educa.portableview.swing.viewer.MapControlToolRegistrant;
42
import org.gvsig.educa.portableview.swing.viewer.PortableViewToc;
43
import org.gvsig.educa.portableview.swing.viewer.PortableViewViewer;
44
import org.gvsig.fmap.dal.exception.ReadException;
45
import org.gvsig.fmap.mapcontext.MapContext;
46
import org.gvsig.fmap.mapcontext.layers.LayerEvent;
47
import org.gvsig.fmap.mapcontext.layers.LayerListener;
48
import org.gvsig.fmap.mapcontrol.MapControl;
49
import org.gvsig.fmap.mapcontrol.MapControlCreationException;
50
import org.gvsig.fmap.mapcontrol.MapControlLocator;
51
import org.gvsig.tools.ToolsLocator;
52
import org.gvsig.tools.dispose.DisposableManager;
53

  
54
/**
55
 *
56
 * Implementation of {@link PortableViewViewer}
57
 *
58
 * @author gvSIG Team
59
 * @version $Id$
60
 *
61
 */
62
public class DefaultPortableViewViewer extends JPanel implements
63
    PortableViewViewer {
64

  
65
    /**
66
     *
67
     */
68
    private static final long serialVersionUID = -8405474764132950973L;
69

  
70
    private final DisposableManager disposableManager;
71

  
72
    private final PortableView portableView;
73
    private final PortableViewToc toc;
74

  
75
    private MapControl mapControl;
76

  
77
    private final PortableViewSwingManager swingManager;
78

  
79
    private final JSplitPane splitPane;
80

  
81
    public DefaultPortableViewViewer(PortableView portableView)
82
        throws InvalidPortableViewFormatException, CantLoadContextException,
83
        IOException {
84
        super();
85
        swingManager = PortableViewSwingLocator.getSwingManager();
86
        disposableManager = ToolsLocator.getDisposableManager();
87

  
88
        disposableManager.bind(this);
89

  
90
        this.portableView = portableView;
91

  
92
        if (portableView == null) {
93
            throw new IllegalArgumentException();
94
        }
95

  
96
        if (!portableView.isOpen()) {
97
            portableView.open();
98
        }
99

  
100
        toc = PortableViewSwingLocator.getSwingManager().newToc();
101

  
102
        toc.attachTo(this);
103

  
104
        try {
105
            this.mapControl =
106
                MapControlLocator.getMapControlManager()
107
                    .createJMapControlPanel(null);
108
        } catch (MapControlCreationException e) {
109
            // FIMXE exception
110
            throw new PortableViewRuntimeException(
111
                "Problem creating MapControl for viewer", e);
112
        }
113
        // Hide grid (avoid problem of Global grid configuration)
114
        mapControl.setGridVisibility(false);
115

  
116
        MapContext mapContext = portableView.getMapContext();
117
        mapControl.setMapContext(mapContext);
118
        mapContext.getLayers().addLayerListener(new LayerListener() {
119

  
120
            public void visibilityChanged(LayerEvent e) {
121
                // Nothing to do
122
                mapControl.rePaintDirtyLayers();
123
            }
124

  
125
            public void nameChanged(LayerEvent e) {
126
                // Nothing to do
127
            }
128

  
129
            public void editionChanged(LayerEvent e) {
130
                // Nothing to do
131
            }
132

  
133
            public void drawValueChanged(LayerEvent e) {
134
                // XXX removed this redraw to avoid problem in raster layers
135
                // which always changed "drawValue" in every draw process
136
                // (so drawing never ends )
137

  
138
                // mapControl.rePaintDirtyLayers();
139
            }
140

  
141
            public void activationChanged(LayerEvent e) {
142
                // Nothing to do
143
            }
144
        });
145

  
146
        loadMapTools(mapControl);
147

  
148
        setLayout(new BorderLayout(10, 10));
149

  
150
        mapControl.setMinimumSize(new Dimension(300, 300));
151

  
152
        splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false);
153
        splitPane.setLeftComponent(toc.getSwingComponent());
154
        splitPane.setResizeWeight(0);
155
        splitPane.setRightComponent(mapControl);
156
        splitPane.setOneTouchExpandable(true);
157

  
158
        add(splitPane, BorderLayout.CENTER);
159
    }
160

  
161
    protected void loadMapTools(MapControl theMapControl) {
162
        // Register tools
163
        List<MapControlToolRegistrant> registrants =
164
            swingManager.getMapControlRegistrantList();
165
        for (MapControlToolRegistrant registrant : registrants) {
166
            registrant.registerTools(theMapControl);
167
        }
168
        if (StringUtils.isBlank(theMapControl.getCurrentTool())) {
169
            if (!theMapControl.getNamesMapTools().isEmpty()) {
170
                theMapControl.setTool((String) theMapControl.getNamesMapTools()
171
                    .keySet().iterator().next());
172
            }
173
        }
174
    }
175

  
176
    /** {@inheridDoc} */
177
    public JComponent getSwingComponent() {
178
        return this;
179
    }
180

  
181
    /** {@inheridDoc} */
182
    public PortableView getPortableView() {
183
        return portableView;
184
    }
185

  
186
    /** {@inheridDoc} */
187
    public void zoomAll() {
188
        try {
189
            mapControl.getViewPort().setEnvelope(
190
                mapControl.getMapContext().getFullEnvelope());
191
        } catch (ReadException e) {
192
            mapControl.setEnabled(false);
193
            throw new PortableViewRuntimeException("Problem in zoom all", e);
194
        }
195
    }
196

  
197
    /** {@inheridDoc} */
198
    public void setTool(String toolId) {
199
        mapControl.setTool(toolId);
200
    }
201

  
202
    /** {@inheridDoc} */
203
    public MapControl getMapControl() {
204
        return mapControl;
205
    }
206

  
207
    /** {@inheridDoc} */
208
    public PortableViewToc getTOC() {
209
        return toc;
210
    }
211

  
212
    /** {@inheridDoc} */
213
    public String getCurrentToolId() {
214
        return mapControl.getCurrentTool();
215
    }
216

  
217
    /** {@inheridDoc} */
218
    public void dispose() {
219
        disposableManager.release(this);
220
        mapControl = null;
221
    }
222

  
223
    public boolean isTocVisible() {
224
        return splitPane.getDividerLocation() > 5;
225
    }
226

  
227
    public void setTocVisible(boolean visible) {
228
        if (isTocVisible() == visible) {
229
            return;
230
        }
231
        if (visible) {
232
            splitPane.resetToPreferredSizes();
233
        } else {
234
            splitPane.setDividerLocation(0);
235
        }
236

  
237
    }
238
}
org.gvsig.educa.portableview/tags/org.gvsig.educa.portableview-1.0.131/org.gvsig.educa.portableview.swing/org.gvsig.educa.portableview.swing.impl/src/main/java/org/gvsig/educa/portableview/swing/impl/viewer/TocTreeNode.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.swing.impl.viewer;
23

  
24
import java.awt.Image;
25

  
26
import javax.swing.ImageIcon;
27
import javax.swing.tree.DefaultMutableTreeNode;
28

  
29
import org.gvsig.educa.portableview.swing.impl.editor.layers.DefaultPortableViewLayersEditor;
30
import org.gvsig.fmap.mapcontext.layers.FLayer;
31
import org.gvsig.fmap.mapcontext.layers.operations.IHasImageLegend;
32
import org.gvsig.fmap.mapcontext.layers.operations.LayerCollection;
33
import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer;
34
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
35

  
36
/**
37
 * Node representation of a layer in JTree of
38
 * {@link DefaultPortableViewLayersEditor}
39
 *
40
 * @author gvSIG Team
41
 * @version $Id$
42
 *
43
 */
44
public class TocTreeNode extends DefaultMutableTreeNode {
45

  
46
    /**
47
     *
48
     */
49
    private static final long serialVersionUID = -5660745136587795464L;
50

  
51
    /**
52
     * Nodes type
53
     *
54
     * @author gvSIG Team
55
     * @version $Id$
56
     *
57
     */
58
    public enum TYPE {
59
        LAYER_COLLECTION, LAYER_WITHOUT_LEGEND, LAYER_WITH_LEGEND, LAYER_WITH_IMAGE_LEGEND, LEGEND, IMAGE_LEGEND
60
    };
61

  
62
    private final FLayer layer;
63
    private final FLayer sourceLayer;
64
    private final Image image;
65
    private final TYPE type;
66
    private final ISymbol symbol;
67
    private final String symbolDescription;
68

  
69
    /**
70
     * Constructor for a {@link LayerCollection} node
71
     *
72
     * @param layer
73
     */
74
    public TocTreeNode(LayerCollection layer) {
75
        super(layer);
76
        this.layer = (FLayer) layer;
77
        this.symbol = null;
78
        this.symbolDescription = null;
79
        this.sourceLayer = null;
80
        this.image = null;
81
        type = TYPE.LAYER_COLLECTION;
82
    }
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff