JavaScool:ProgletProcessing

De Sciencinfolycee
Révision datée du 30 août 2011 à 14:15 par Vthierry (discussion | contributions) (Le fichier Functions.java)
Aller à : navigation, rechercher

Cette page a pour but d'expliquer comment créer une proglet avec processing, consulter aussi à la documentation générale et la spécification d'une proglet pour voir les principes généraux.

Principe général

Tous les fichiers standards de la proglet sauf Panel.java sont définis comme pour uneproglet standard :

    • proglet.pml : le descripteur de la proglet.
    • help.xml : le fichier de documentation de la proglet.
    • Functions.java : qui définit les fonctions proposées à l'élève (optionnel).
    • completion.xml : qui définit les complétions automatiques proposées dans l'éditeur (optionnel).
    • Translator.java : qui implémente la traduction de Jvs en Java spécifique de cette proglet (optionnel).

L'interface graphique correspond lui à l'applete processing.

Le fichier proglet.pml

 title="Exemple de «proglet»"
 author="Guillaume Matheron <guillaume.quest@gmail.com>"
 icon="sample.png"
 processing="true"
 width="600"
 height="400"

c'est à dire que par rapport à un fichier standard il comporte en plus:

  1. la mention processing="true"
  2. les largeur width et hauteur height, qui doivent être spécifiées.

Le fichier Functions.java

Une seule chose diffère dans ce cas: la fonction qui renvoie l'instance de la proglet ne renvoie plus un objet de classe Panel mais un objet de nom sampleCode si sampleCode est le nom de la proglet.

Pour comprendre il faut noter que, avec processing:

  • une applete de nom sampleCode génère une classe (sans package) de nom sampleCode (qui étend la classe Applet),
  • donc qu'il faut bien récupérer ici un objet de ce nom.
package org.javascool.proglets.sampleCode;
import static org.javascool.macros.Macros.*;

public class Functions {
  /** Renvoie l'instance de la proglet. */
  private static sampleCode getPane() {
    return getProgletPane();
  }
  /** ../.. */
}

La méthode pas à pas

  1. S'assurer que le répertoire «sketchbook» de processing est bien le même que celui des proglets.
    • Voir la [JavaScool:DocJavaScoolBuilder mise en place du «sketchbook» ] pour plus de détails
    • C'est dans File -> Preferences -> Sketchbook location que cette option est donnée.
    • Voir les éléments de documentation pour Linux si besoin
  2. Lancer processing et travailler au développement de l'applete
    • Exporter le travail sous forme d'applete
    • C'est dans File -> Export qui effectue cette action
  3. Dans le même répertoire générer les fichiers proglet.pml, help.xml, Functions.java, completion.xml et Translator.java
    • Par exemple avec le [JavaScool:DocJavaScoolBuilder Javascoolbuilder] (ou à la main)
  4. Lancer ensuite le [JavaScool:DocJavaScoolBuilder Javascoolbuilder] qui
    • va prendre en charge l'intégration,
    • voir détailler les éventuelles erreurs.

Le Javascoolbuilder prend en compte les spécification d'une apllete processuing

  • Note: éviter de mettre dans le répertoire des fichiers inutiles ou trop volumineux car tous les fichiers sont intégrés à la jarre Java finale.

Processing et Svn

Si vos fichiers sont contrôlés par le système de versionning subversion (dit «svn») une difficulté survient: processing détruit les fichiers .svn qui permettent d'administrer l'archive (donc plus rien ne marche côté svn) ! La soluce:

  1. Avant d'exporter l'applete sauver le dossier caché applet/.svn par exemple sur le bureau
  2. Après l'export le remettre en place

ou ne pas inclure le dossier applet dans le svn.

Ce mécanisme est automatisés sur la plateforme Java'sCool

Discussion

  • Utiliser processing permet de
    • programmer facilement des proglets multimédia (son, 3D, vidéos, ..) et de profiter d'un très large panel existant;
    • de déplacer la vision de "programmeur" à "créateur d'objets numériques" qui est le fondement de la démarche de processing;
    • celà établi aussi que la plateforme Javas'Cool est techniquement et dans son principe "ouverte" et s'interopère avec d'autres plateformes de développement.