12.05.2013 Views

Fundamentos de análisis geográfico con SEXTANTE - La Salle

Fundamentos de análisis geográfico con SEXTANTE - La Salle

Fundamentos de análisis geográfico con SEXTANTE - La Salle

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

338 CAPÍTULO 20. PROGRAMACIÓN DE MÓDULOS DE <strong>SEXTANTE</strong><br />

Process_Set_Text("Calculando capa <strong>de</strong> pendientes..."};<br />

EL progreso <strong>de</strong> la operación se pue<strong>de</strong> mostrar mediante el método Set Progress(double,<br />

double). El primer parámetro es el valor actual <strong>de</strong>l índice <strong>de</strong> progreso, mientras que el último<br />

es el valor final. Si el primero es igual a cero, la barra <strong>de</strong> progreso aparece completamente gris,<br />

mientras que en caso <strong>de</strong> ser igual al segundo la barra se muestra completamente azul.<br />

Aquí pue<strong>de</strong>s ver un ejemplo.<br />

Set_Progress(50,100);<br />

Esto indicaría que la operación actual se ha realizado hasta la mitad.<br />

En ocasiones, sin embargo, no sabes exactamente cuánto llevará terminar una operación<br />

(es <strong>de</strong>cir, que no tienes un valor final que pasar al anterior método), pero incluso en estos casos<br />

es interesante hacerle ver al usuario que el programa esta trabajando. Para ello pue<strong>de</strong>s utilizar<br />

el método Progress Blink(), el cual crea una barra <strong>de</strong> progreso oscilante. Aña<strong>de</strong> una llamada a<br />

este método cada vez que se complete un ciclo en el proceso. Al llamarla la barra se <strong>de</strong>splaza<br />

ligeramente, <strong>de</strong> tal modo que si la llamas <strong>de</strong>masiado frecuentemente se moverá muy rápido,<br />

mientras que si sitúas la llamada en otras partes <strong>de</strong>l código quizás vaya <strong>de</strong>masiado lenta y no<br />

dé sensación alguna <strong>de</strong> que el programa trabaja. Prueba diferentes <strong>con</strong>cepciones <strong>de</strong> la i<strong>de</strong>a <strong>de</strong><br />

ciclo (diferentes lugares <strong>de</strong>ntro <strong>de</strong> tu código), y escoge aquella que te gustaría <strong>de</strong>s<strong>de</strong> el punto<br />

<strong>de</strong> vista <strong>de</strong>l usuario, no <strong>de</strong>l programador.<br />

20.9. Soporte multilingüe y ayuda <strong>con</strong>textual<br />

Como ya sabes, <strong>SEXTANTE</strong> se basa en el software SAGA, y éste a su vez recibe aportaciones<br />

directas <strong>de</strong>s<strong>de</strong> el proyecto <strong>SEXTANTE</strong>, que a fecha <strong>de</strong> hoy incluyen cerca <strong>de</strong> 80 módulos<br />

y características <strong>de</strong>l núcleo y la API tan importantes como el motor <strong>de</strong> documentación encargado<br />

<strong>de</strong> generar ficheros en formato PDF. Tanto el núcleo como los módulos se encuentran en<br />

castellano, pero no es difícil imaginar que no existen dos versiones distintas <strong>de</strong>l código fuente<br />

— una en inglés para SAGA y otra en castellano para <strong>SEXTANTE</strong> — y que un cambio en el<br />

código <strong>de</strong> algún módulo existente obliga a reescribirlas ambas. Por una parte se encuentra el<br />

código, y por otra, en ficheros distintos, la traducción <strong>de</strong> los nombres <strong>de</strong> parámetros y otras<br />

ca<strong>de</strong>nas <strong>de</strong> texto que el módulo emplea. Para gestionar esto, la API <strong>de</strong> <strong>SEXTANTE</strong> incluye<br />

la función TL(), <strong>de</strong> la cual veremos a <strong>con</strong>tinuación un ejemplo <strong>de</strong> uso.<br />

Si no tienes intención <strong>de</strong> dar soporte multilingüe a tus módulos, no es necesario que leas<br />

este apartado. Si, por el <strong>con</strong>trario, <strong>de</strong>seas hacerlo, o quieres, por ejemplo, traducir a otro<br />

idioma distinto los módulos <strong>de</strong> <strong>SEXTANTE</strong>, he aquí algunas indicaciones al respecto.<br />

Para que una ca<strong>de</strong>na <strong>de</strong> texto no aparezca en el idioma original en que se encuentra en el<br />

código fuente <strong>de</strong>l módulo, sino que se busque su traducción en un fichero adicional, utiliza la<br />

función TL(). Para el caso <strong>de</strong> nuestro módulo <strong>de</strong> ejemplo, el siguiente bloque <strong>de</strong> texto muestra<br />

la creación <strong>de</strong> la ventana <strong>de</strong> parámetros teniendo en cuenta el soporte multilingüe.<br />

Parameters.Set_Name(_TL("MiModulo");<br />

Parameters.Set_Description(_TL("MiModulo");<br />

Parameters.Add_Grid(NULL, "INPUT", _TL("Input"),<br />

_TL("Input for module calculations."), PARAMETER_INPUT);<br />

Parameters.Add_Grid(NULL, "RESULT", "Output",<br />

_TL("Output of module calculations."), PARAMETER_OUTPUT);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!