JavaScool:DocCreationProgletExemple

De Sciencinfolycee
Révision datée du 20 août 2011 à 00:29 par Vthierry (discussion | contributions) (sample.png)
Aller à : navigation, rechercher

Cette page a pour but d'expliquer comment créer une proglet concrètement. Elle présente une proglet d'exemple, affichant simplement un label, et permettant à l'utilisateur d'interagir avec ce dernier.

  • Le code est commenté et disponible dans une archive ZIP.
  • Il peut être exécuter en lançant ce fichier JAR.

proglet.pml

Ce fichier donne la description de la proglet, le nom de son icône et les auteurs

 title="Exemple de «proglet»"
 author="Guillaume Matheron <guillaume.quest@gmail.com>"
 icon="sample.png"

sample.png

Cette image est le logo de la proglet. Elle peut avoir n'importe quel nom mais celui-ci doit être mentionné dans le fichier proglet.pml

Note : il est quasi-indispensable que cette image soit au format png transparent. Sans cela il est très difficile de l'intégrer sur le site sans affecter son design.

Note: la taille maximale de cette image est de 128x128 pour respecter le design.

help.xml

Ce fichier définit la documentation pour l'utilisateur. Le fichier est écrit en XML. L'aide quant à comment rédiger ce fichier est disponible ici.

Il est possible, de créer plusieurs fichiers d'aide XML, mais ils seront tous convertis au format HTML, dans un fichier d'extension .htm. Toutes les pages d'aide peuvent être liées les unes aux autres, en utilisant l'extension .htm.

Note : le nom du fichier help.xml est fixé par les spécifications d'une proglet.

Panel.java

C'est le fichier qui contient la description de l'objet graphique qui incarne la proglet. Cette classe Java implémente le code à exécuterau lancement de la proglet (initialisation des variables, lancer des tâches, etc..).

La classe Panel doit hériter d'un composant graphique tel que javax.swing.JPanel.

Note: le nom Panel.java est fixé par les spécifications

Dans notre exemple les éléments clés sont:

package org.javascool.proglets.sampleCode;
import javax.swing.JLabel;

public class Panel extends javax.swing.JPanel {
  // Construction de la proglet
  public Panel() {
    // On crée un label
    label = new JLabel("");
    // Et on l'ajoute au panel
    add(label);
  }
  // Ce label sera utilisé par la routine Functions.setMessage()
  JLabel label;
}
  1. La proglet de nom sampleCode est définie dans un package de nom org.javascool.proglets.sampleCode.
  2. La classe se nomme bien Panel.java et hérite de javax.swing.JPanel
  3. Dans le fichier source il y a aussi une méthode start() qui permet de lancer une démo de la proglet (elle n'est pas recopiée ici):
  public void start() {
  }

Functions.java

Ce fichier définit les fonctions directement accessibles depuis Java's Cool, et qui permettent donc d'interagir avec la proglet.

Note: le nom Panel.java est fixé par les spécifications

Dans cet exemple, nous définissons la méthode setMessage(String) qui permet de changer le texte affiché.

package org.javascool.proglets.sampleCode;
import org.javascool.macros.Macros.*;

public class Functions {
  /** Renvoie l'instance de la proglet. */
  private static Panel getPane() {
    return getProgletPane();
  }
  /** Permet de changer le message affiché sur le panel de la proglet */
  public static void setMessage(String text) {
    getPane().label.setText(text);
  }
}
  1. La proglet de nom sampleCode est définie dans un package de nom org.javascool.proglets.sampleCode.
  2. La classe se nomme bien Functions.java et la fonction setMessage(String) est bien publique et statique.
  3. La construction
    • private static Panel getPane() { return org.javascool.macros.Macros.getProgletPane(); }
    • permet de renvoyer l'instance de classe org.javascool.proglets.sampleCode.Panel que la plateforme JavaScool utilise afin d'y accéder.
  4. La classe org.javascool.macros.Macros contient des fonctions utiles pour définir des proglets.