[Gvsig_desarrolladores] Cambiar LaF de gvSIG

Iago Alonso Alonso ialonso en enxenio.es
Mie Jun 14 11:25:04 CEST 2017


Tras hacer un debug rápido y por encima, creo que el error está en cómo
procesáis los parámetros que se indican cuando se arranca gvSIG.

Si por terminal ejecutas (los dos primeros es para el debug, podeís
ignorarlos):

gvsig-desktop.cmd --debug --pause enablelaf=true 

En la clase "PluginServices" en el método:

public static void setArguments(String[] arguments) {
    PluginServices.arguments = arguments;
} 

Se recibe lo siguiente (contenido de arguments):

- [0]: gvSIG
- [1]: gvSIG/extensiones
- [2]: --debug
- [3]: --pause
- [4]: enablelaf
- [5]: true 

Como se puede ver, ya se han procesado mal los argumentos. Por lo tanto,
después cuando se ejecuta en la clase "AppearancePage" el método
"getLookAndFeelComboBox()", en la línea:

-  boolean enablelaf =
BooleanUtils.toBoolean(PluginServices.getArgumentByName("enablelaf"));

En "PluginServices.getArgumentByName("enablelaf")" ocurre esto:

Al recorrer los argumentos de "PluginServices" (los descritos arriba) se
hace (me salto --debug y --pause):

Teniendo esto recibido -> String name = enablelaf 

String arg = PluginServices.arguments[i]; -> le llega "enablelaf"

Ahora, se intenta buscar el valor:

int index = arg.indexOf(name + "="); -> Ups, devuelve -1

Debido a que el parámetro es "enablelaf" en lugar de "enablelaf=true"

Por lo tanto, justo después:

if (index != -1)
   return arg.substring(index + name.length() + 1); 

Debería devolverse el string "true" (en este caso), pero como se tiene
-1, se salta y se devuelve "null".

Por tanto,  BooleanUtils.toBoolean() recibe "null" en lugar de un string
con "true" (en este caso) y la documentación del método ya explica:

Converts a String to a boolean (optimised for performance). 

'true', 'on' or 'yes' (case insensitive) will return true. Otherwise,
false is returned. 

Y justo después, que sería donde se cargarían las opciones:

if (enablelaf ) { 

.................. 

} 

Nunca va a entrar y salta al:

else {
   lookAndFeelCombo = new JComboBox();
} 

Que crea un combobox vacio. 

Esto es lo que he podido deducir de forma rápida, espero que sea de
utilidad. 

Un saludo. 

El 13-06-2017 08:34 PM, Joaquin Jose del Cerro Murciano escribió:

> El 13 de junio de 2017, 19:46, Alex Irmel Oviedo Solis <alleinerwolf en gmail.com> escribió:
> 
>> Hola a todos, quisiera saber como puedo cambiar el Look and Feel de gvSIG y algo de documentación para crear temas de iconos, gracias de antemano
> 
> Hola Alex.
> Me temo que no tengo buenas noticias para ninguna de las dos preguntas.
> 
> Ahora que lo dices me he acordado que hay algun error y no funciona el cambio de L&F.
> la teoria es que esta en preferencias de gvSIG, pero el combo siempre sale vacio.
> Doy de alta un ticket con el error para tenerlo en cuenta.
> No se si estas compilando gvSIG o trabajas contra una instalacion. Si estas compilando gvSIG y quieres echarle un vistazo, en la 2.3.1, la cosa esta por...
> 
> org.gvsig.desktop.plugin/org.gvsig.coreplugin.app/org.gvsig.coreplugin.app.mainplugin/src/main/java/org/gvsig/coreplugin/preferences/general/AppearancePage.java
> 
> hasta donde vi no hace mucho (pase por ahi por otras cosas) la funcion getLookAndFeelComboBox acaba creando siempre el combo vacio.
> Si decides echarle un vistazo y ves que le pasa, ya nos lo cuentas.
> 
> Lo otro.
> El tema de iconos. Aunque ya hace versiones que se empezo a trabajar en ello, la prioridad no era muy alta, y no lo hemos terminado hasta hace unas semanas. Con esto quiero decir, que en la 2.3.1, no esta acabado y no funciona correctamente. Saldra con la 2.4, y llevara dos partes, por un lado en preferencias se puede seleccionar un tema de iconos, y por otro hay una pequeña herramienta para crear un tema de iconos a partir del tema por defecto (el que va en codigo) para que puedas cambiar los iconos en el, y que puedas crear paquetes para el administrador de complementos con los juegos de iconos que crees.
> Pero lo dicho, estara para la 2.4, que espero tengamos en breve builds para que la comunidad pueda probar.
> 
> Un saludo
> Joaquin
> 
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en listserv.gva.es
>> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores [1]
> 
> -- 
> --------------------------------------
> Joaquin Jose del Cerro Murciano
> Development and software arquitecture manager at gvSIG Team
> jjdelcerro en gvsig.com
> jjdelcerro en gvsig.org
> gvSIG Association
> www.gvsig.com [2]
> www.gvsig.org [3] 
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
 

Links:
------
[1]
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
[2] http://www.gvsig.com
[3] http://www.gvsig.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20170614/ab54c149/attachment.html>


Más información sobre la lista de distribución gvSIG_desarrolladores