[Gvsig_desarrolladores] Ampliación del control <combo-scale> de GvSig
Pablo Piqueras Bartolomé
pablo.piqueras en iver.es
Lun Mar 17 10:19:18 CET 2008
Jorge Bellido Diez escribió:
> Hola,
> Estoy pensando en una herramienta similar al selector de escala que se presenta en el "Status bar" de gvSig
> Lo consigo aplicando la configuración <combo-scale> en el config.xml de mi extensión. El problema que tengo es que está pensado para números y no para textos. ¿Existe algo implementado que pueda utilizar? Alguien me podría orientar al respecto?
>
> Gracias de antemano y un Saludo.
>
> Jorge Bellido
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
>
>
Hola Jorge,
me temo que actualmente el combo que deseas utilizar está adaptado para
trabajar solo con números de tipo "long".
Hasta que no salga una nueva versión que supla tu necesidad, te propongo
una posible solución, que puede ser algo costosa: deberías de modificar
dicho combo y la parte del framework que lo utiliza para que soportase
ítems de tipo /String/ en vez de /long:/
Por ejemplo: _líneas 881 - 915_ de /Launcher.java/ en el proyecto/
_fwAndami/ podrían quedar así:
//ArrayList componentList = new ArrayList();
ComboScale[] comboScaleArray = ext.getComboScale();
for (int k=0; k < comboScaleArray.length; k++) {
org.gvsig.gui.beans.controls.comboscale.ComboScale combo
= new org.gvsig.gui.beans.controls.comboscale.ComboScale();
String label = comboScaleArray[k].getLabel();
if (label!=null)
combo.setLabel(label);
String name = comboScaleArray[k].getName();
if (name!=null)
combo.setName(name);
String[] elementsString =
((String)comboScaleArray[k].getElements()).split(";");
combo.setItems(elementsString);
combo.setScale((String)comboScaleArray[k].getValue());
try {
frame.addStatusBarControl(loader.loadClass(ext.getClassName()),combo);
} catch (ClassNotFoundException e1) {
logger.error(Messages.getString("Launcher.error_getting_class_loader_for_status_bar_control"),
e1);
}
}
Mientras que /org.gvsig.gui.beans.controls.comboscale.ComboScale/ en el
proyecto /libUI /habría de adaptarse para que sus ítems fuesen String.
Si en un momento dado se desea saber si un String es número:
/s.matches("[0-9]+([.][0-9]+)?")) (siendo s de tipo String)
/
Espero que te haya servido de ayuda u orientación. El código no lo he
probado :-) , y estoy suponiendo que estás con la distribución 1.0.X .
Ahora se delegaría la comprobación que los ítems sean de tipo /long /al
código que los obtiene del del combo.
Saludos.
--
Pablo Piqueras Bartolomé
Equipo de gvSIG
IVER T.I. S.A.
C/. Lérida, 20
46005 - Valencia (Spain)
www.iver.es
www.gvsig.com
Este mensaje y sus archivos son confidenciales. No está permitida su reproducción o distribución sin la autorización expresa de "IVER Tecnologías de la Información". Si usted no es el destinatario previsto, queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido este mensaje por error, por favor bórrelo e infórmenos por esta misma vía.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20080317/2050b146/attachment.htm
Más información sobre la lista de distribución gvSIG_desarrolladores