Les fonctionnalités d’OpenJUMP peuvent être étendues à l’infini grâce au langage de script Beanshell qui est accessible de trois manières différentes :
beanshell en mode console
Pour écrire une commande très brève, passer par le menu : Personnaliser>BeanShell Console...
Taper par exemple :
print(wc.layerManager.layers);
puis Entrée.
La liste des couches présentes dans le projet doit s’afficher.
bsh % print(wc.layerManager.layers);
[Routes, Riviere, Ville]
Pour afficher le nombre de points d’un objet sélectionné, taper :
print(((Geometry)wc.layerViewPanel
.selectionManager
.getSelectedItems()
.iterator()
.next()).coordinates.length);
Vous l’aurez compris, pour écrire des scripts, il faut connaitre l’API d’OpenJUMP (et un peu celle de java-), alors dépêchez-vous d’enregistrer ces adresses dans vos favoris.
Vous aurez aussi noté plusieurs manières d’alléger le code beanshell par rapport à java :
print() au lieu de System.out.println()
layerViewPanel au lieu de getLayerViewPanel()
les variables ne sont pas typées, et n’ont pas besoin d’être déclarées avant leur utilisation
BeanshellEditor
Le plugin BeanShellEditor vous permet de coder plus confortablement vos scripts, de les exécuter, de les enregistrer, de les gérer...
De plus, grâce à l’éditeur basé sur une ancienne version du célèbre jEdit, BeanShellEditor offre la coloration syntaxique, qui rend le code plus lisible et plus facile à écrire. Il ne lui manque que la complétion de code (avis aux amateurs...).
Les sources et un manuel utilisateur sont téléchargeables ici
BeanTools
Lorsque votre script est au point, pour l’utiliser facilement, il suffit de le glisser dans le répertoire ext/beantools du répertoire d’installation d’OpenJUMP.
Une nouvelle commande portant le nom du fichier (sans son extension) apparait dans le menu Personnaliser>BeanTools>
(Il vous faudra peut-être cliquer une fois sur Personnaliser > BeanTools > RefreshScriptsMenu pour le voir apparaître)
Traitements simples, analyse, création d’interfaces graphiques, les possibilités de ce que vous pouvez scripter n’ont pas d’autres limites que votre imagination.
Un problème, un script
Scripts manipulant la géométrie des données
2008-09-17 : création d’une couche contenant tous les points de construction des objets source. Chaque point possède le numéro de l’objet source et l’indexe du point dans la géométrie. Télécharger PointsIndexés.bsh