Changes between Initial Version and Version 1 of Es:Help/Plugin/Scripting


Ignore:
Timestamp:
2011-04-17T22:05:59+02:00 (13 years ago)
Author:
ovruni
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Es:Help/Plugin/Scripting

    v1 v1  
     1[[TranslatedPages(revision=4)]]
     2= Complemento Scripting =
     3
     4== En pocas palabras ==
     5
     6El complemento {{{scripting}}} le permite ejecutar secuencias de comandos dentro de JOSM.
     7
     8Se usa para automatizar las tareas pequeñas para las que no se dedican complementos o no están disponibles, es decir,
     9
     10* pruebas adicionales de calidad para la invalidación de los casos de prueba que se encuentren disponibles
     11* ingresar automáticamente datos en situaciones muy específicas (es decir, secuencias de números de casas)
     12* importación de un formato de archivo personalizado que no es compatible con JOSM
     13* exportar a un formato de archivo personalizado que no es compatible con JOSM
     14
     15Usted puede utilizar cualquier lenguaje de programación que proporcione un JSR-223 compatible con el motor de scripting, en particular:
     16* [http://groovy.codehaus.org/ Groovy]
     17* [http://www.jython.org/ Python]
     18* [http://www.mozilla.org/rhino/ JavaScript]
     19* [http://jruby.org/ Ruby]
     20
     21== Configurando un Motor de Scripting ==
     22
     23El complemente {{{scripts}}} no viene con un motor de scripts. Una instalación estándar de Java 6 ya debería incluir un motor de JavaScript (Rhino).
     24Si desea utilizar otro lenguaje de script, tiene que configurar el respectivo motor de scripts primero:
     25
     261. Seleccione el ítem del menú '''Scripting''' -> '''Configure ...'''
     272. Compruebe si el motor de scripting preferido ya está configurado. Si no es así,
     28     * Descarga el archivo jar que proporciona el motor de scripting
     29     * Añadir la ruta de este archivo jar en la lista de jars de motores de scripting
     30
     31== Ejecutando un Script ==
     32
     331. Seleccione el ítem del menú '''Scripting''' -> '''Run...'''
     342. Introduzca la ruta hacia el script
     353. Pulse '''Run'''
     36
     37== Escribiendo un script ==
     38El complemento {{{scripting}}} no proporciona una consola para el desarrollo de scripts (todavía).
     39
     40Utilice su editor preferido o entorno de desarrollo para escribir el script en su idioma preferido.
     41
     42Aquí hay tres ejemplos que muestran el número de capas en JOSM. Si desea escribir scripts más complejos, tendrá que familiarizarse con el modelo de objetos JOSM y, en consecuencia, con la base de código de JOSM, porque no hay explícito una secuencias de comandos de la API, ni ninguna documentación fuera del código de JOSM.
     43
     44=== Groovy ===
     45{{{
     46/*
     47 * HelloWorld.groovy - displays the number of actually open layers
     48 */
     49import javax.swing.JOptionPane;
     50import org.openstreetmap.josm.Main;
     51
     52def numlayers = Main.main?.map?.mapView?.numLayers
     53if (numlayers == null) numlayers = 0
     54
     55JOptionPane.showMessageDialog(Main.parent, "[Groovy] Hello World!\nYou have ${numlayers} layer(s).")
     56}}}
     57
     58=== JavaScript ===
     59{{{
     60/*
     61* HelloWorld.js  -  displays the number of currently open layers
     62*/
     63importClass(Packages.javax.swing.JOptionPane)
     64importClass(Packages.org.openstreetmap.josm.Main)
     65
     66function getMapView() {
     67        if (Main.main == null) return null
     68        if (Main.main.map == null) return null
     69        return Main.main.map.mapView
     70}
     71
     72var numlayers = 0
     73var mv = getMapView()
     74if (mv != null){
     75        numlayers = mv.getNumLayers()
     76}
     77JOptionPane.showMessageDialog(Main.parent, "[JavaScript] Hello World! You have " + numlayers + " layer(s).")
     78}}}
     79
     80=== Python ===
     81{{{
     82#!python
     83#
     84# HelloWorld.py  - displays the number of currently open layers
     85#
     86from javax.swing import JOptionPane
     87from org.openstreetmap.josm import Main
     88
     89def getMapView():
     90        if Main.main == None:
     91                return None
     92        if Main.main.map == None:
     93                return None
     94        return Main.main.map.mapView
     95
     96
     97numlayers = 0
     98mv = getMapView()
     99if mv != None:
     100        numlayers = mv.getNumLayers()
     101       
     102JOptionPane.showMessageDialog(Main.parent, "[Python] Hello World! You have %s layer(s)." % numlayers)
     103}}}