JavaScool:DocCreationProgletExemple : Différence entre versions
m (→Functions.java) |
m |
||
(23 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Catégorie:JavaScoolDev]] __NOTOC__ | [[Catégorie:JavaScoolDev]] __NOTOC__ | ||
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. | 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 en [http://javascool.gforge.inria.fr/documents/javadoc/javascool-proglet-sampleCode.jar sauvegardant sur le disque] une archive zip, qui peut aussi être exécutée en [http://javascool.gforge.inria.fr/documents/javadoc/javascool-proglet-sampleCode.jar l'ouvrant avec Java]. | |
+ | |||
+ | * L'outil de création/complilation de proglets, le [[JavaScool:DocJavaScoolBuilder|Javascoolbuilder]] permet de proposer un modèle de fichier du type ci dessous | ||
+ | |||
+ | * La description de la [[JavaScool:DocCreationProglet|spécification]] des proglets donne une description complète des fonctionnalités mises à disposition (en particulier la possibilité de définir des sous-langages et de la complétion automatique dans l'éditeur) non détaillées ici dans un soucis de simplicté. | ||
+ | |||
+ | * '''proglets processing''': Pour créer des proglets avec [http://processing.org processing] se référer aussi à la [[JavaScool:ProgletProcessing|documentation spécifique]]. | ||
+ | |||
+ | * '''utiliser netbeans''': Pour créer des proglets avec [http://fr.netbeans.org netbeans] se référer aussi à la [[JavaScool:UsingNetbeans|documentation spécifique]]. | ||
+ | |||
+ | * Dans tous les cas quelqu'un qui crée un proglet le fait avec l'aide de l'équipe de Java's Cool : | ||
+ | ** ne pas hésiter à [http://javascool.gforge.inria.fr/?page=contact nous contacter]. | ||
= proglet.pml = | = proglet.pml = | ||
Ligne 13 : | Ligne 24 : | ||
icon="sample.png" | icon="sample.png" | ||
</pre> | </pre> | ||
+ | |||
+ | Note: http://www.iconfinder.com est un excellent outil pour trouver des icones, ici de 128x128. | ||
= sample.png = | = sample.png = | ||
Ligne 18 : | Ligne 31 : | ||
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 | 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 | + | 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 <tt>128x128</tt> pour respecter le design. | ||
= help.xml = | = help.xml = | ||
Ligne 36 : | Ligne 51 : | ||
La classe Panel doit hériter d'un composant graphique tel que <tt>javax.swing.JPanel</tt>. | La classe Panel doit hériter d'un composant graphique tel que <tt>javax.swing.JPanel</tt>. | ||
− | + | Note: le nom Panel.java est fixé par les spécifications | |
Dans notre exemple les éléments clés sont: | Dans notre exemple les éléments clés sont: | ||
Ligne 57 : | Ligne 72 : | ||
# La proglet de nom <tt>sampleCode</tt> est définie dans un package de nom <tt>org.javascool.proglets.sampleCode</tt>. | # La proglet de nom <tt>sampleCode</tt> est définie dans un package de nom <tt>org.javascool.proglets.sampleCode</tt>. | ||
# La classe se nomme bien <tt>Panel.java</tt> et hérite de <tt>javax.swing.JPanel</tt> | # La classe se nomme bien <tt>Panel.java</tt> et hérite de <tt>javax.swing.JPanel</tt> | ||
− | # Dans le fichier source il y a aussi une méthode <tt> | + | # Dans le fichier source il y a aussi une méthode <tt>run()</tt> qui permet de lancer une démo de la proglet (elle n'est pas recopiée ici): |
<pre> | <pre> | ||
− | public void | + | public void run() { |
} | } | ||
</pre> | </pre> | ||
+ | Note: ce n'est plus start() mais <tt>run()</tt> qu'il faut utiliser. | ||
+ | |||
+ | Note: La plateforme JavaScool propose: | ||
+ | * Des [http://javascool.gforge.inria.fr/?page=api:/org/javascool/widgets/package-summary.html widgets] pour aider à créer des interfaces graphiques. | ||
+ | * Des [http://javascool.gforge.inria.fr/?page=api:/org/javascool/macros/package-summary.html macros] et des [http://javascool.gforge.inria.fr/?page=api:/org/javascool/tools/package-summary.html tools] disposer de fonctions utilitaires facilitant l'implémentation. | ||
+ | * Un mécanisme d'[http://javascool.gforge.inria.fr/index.php?page=api&api=org/javascool/macros/Macros.html#assertion%28boolean,%20java.lang.String,%20java.lang.Object%29 assertion] aide à débugger le code. | ||
= Functions.java = | = Functions.java = | ||
− | Ce fichier définit les fonctions directement accessibles depuis Java's Cool, et qui permettent donc d'interagir avec la proglet. Dans cet exemple, nous définissons la méthode <tt>setMessage(String)</tt> qui permet de changer le texte affiché. | + | Ce fichier définit les fonctions directement accessibles depuis Java's Cool, et qui permettent donc d'interagir avec la proglet. |
+ | |||
+ | Note: le nom Functions.java est fixé par les spécifications. | ||
+ | |||
+ | Dans cet exemple, nous définissons la méthode <tt>setMessage(String)</tt> qui permet de changer le texte affiché. | ||
<pre> | <pre> | ||
package org.javascool.proglets.sampleCode; | package org.javascool.proglets.sampleCode; | ||
− | import org.javascool.macros.Macros.*; | + | import static org.javascool.macros.Macros.*; |
public class Functions { | public class Functions { | ||
Ligne 81 : | Ligne 106 : | ||
} | } | ||
</pre> | </pre> | ||
− | # | + | # La proglet de nom <tt>sampleCode</tt> est définie dans un package de nom <tt>org.javascool.proglets.sampleCode</tt>. |
− | + | # La classe se nomme bien <tt>Functions.java</tt> et la fonction <tt>setMessage(String)</tt> est bien publique et statique. | |
− | + | # La construction | |
+ | #* <tt>private static Panel getPane() { return org.javascool.macros.Macros.getProgletPane(); }</tt> | ||
+ | #* permet de renvoyer l'instance de classe <tt>org.javascool.proglets.sampleCode.Panel</tt> que la plateforme JavaScool utilise afin d'y accéder. | ||
+ | # La classe <tt>org.javascool.macros.Macros</tt> contient des fonctions utiles pour définir des proglets. |
Version actuelle datée du 17 août 2012 à 15:21
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 en sauvegardant sur le disque une archive zip, qui peut aussi être exécutée en l'ouvrant avec Java.
- L'outil de création/complilation de proglets, le Javascoolbuilder permet de proposer un modèle de fichier du type ci dessous
- La description de la spécification des proglets donne une description complète des fonctionnalités mises à disposition (en particulier la possibilité de définir des sous-langages et de la complétion automatique dans l'éditeur) non détaillées ici dans un soucis de simplicté.
- proglets processing: Pour créer des proglets avec processing se référer aussi à la documentation spécifique.
- utiliser netbeans: Pour créer des proglets avec netbeans se référer aussi à la documentation spécifique.
- Dans tous les cas quelqu'un qui crée un proglet le fait avec l'aide de l'équipe de Java's Cool :
- ne pas hésiter à nous contacter.
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"
Note: http://www.iconfinder.com est un excellent outil pour trouver des icones, ici de 128x128.
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; }
- La proglet de nom sampleCode est définie dans un package de nom org.javascool.proglets.sampleCode.
- La classe se nomme bien Panel.java et hérite de javax.swing.JPanel
- Dans le fichier source il y a aussi une méthode run() qui permet de lancer une démo de la proglet (elle n'est pas recopiée ici):
public void run() { }
Note: ce n'est plus start() mais run() qu'il faut utiliser.
Note: La plateforme JavaScool propose:
- Des widgets pour aider à créer des interfaces graphiques.
- Des macros et des tools disposer de fonctions utilitaires facilitant l'implémentation.
- Un mécanisme d'assertion aide à débugger le code.
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 Functions.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 static 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); } }
- La proglet de nom sampleCode est définie dans un package de nom org.javascool.proglets.sampleCode.
- La classe se nomme bien Functions.java et la fonction setMessage(String) est bien publique et statique.
- 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.
- La classe org.javascool.macros.Macros contient des fonctions utiles pour définir des proglets.