Liste de liens :
Liste de liens :
Cette page contient les spécifications de développement des plugins dans TXM.
Actuellement, il est possible d'étendre TXM selon deux cycles :
Dans le cycle long le partage se réalise par le biais de SVN puis du setup.
Dans le cycle court le partage se réalise par échanges directs.
Nous cherchons à obtenir un cycle moyen de publication ayant un niveau d'intégration équivalent à celui du cycle long et un mode de production plus organisé que celui du cycle court.
Nous cherchons également à modulariser TXM.
S'appuyer sur le mécanisme d'extension d'Eclipse et livrer des nouvelles fonctionnalités via des features RCP organisées par catégorie.
Tutoriels développeur Eclipse :
La mise en place des mises à jour dans TXM, nous permet de profiter aussi du mécanisme de plugins P2 d'Eclipse pour installer des extensions de TXM.
Cela présente plusieurs avantages :
Le code sources des extensions est dans le SVN de TXM : plugins.
Les binaires sont disponibles dans 4 repositories P2 :
Les dépendances sont très diverses.
Souvent, une extension déclare une dépendance à :
Parfois une dépendance à :
Les niveaux d'update ALPHA, BETA, etc. des extensions correspondent aux niveaux correspondants d'update ALPHA, BETA, etc. de TXM RCP (org.txm.rcpapplication).
Actuellement, les extensions ne sont pas maintenues pour plusieurs versions de TXM. Seule la dépendance à la version STABLE courante de TXM sont disponibles et maintenues.
Nous prévoyions de maintenir les extensions de toutes les versions STABLE de TXM à partir de TXM 0.7.7 STABLE.
Les dépendances sont très diverses.
De la même façon que les macros, la page publique du wiki txm-users Extensions contient à la fois :
Deux commandes dans le menu principal “Fichier” permettent l'installation d'extension :
La post installation d'une extension se déroulle à 2 moment lors du lancement de TXM, dans la classe ApplicationWorkbenchAdvisor dans les méthodes :
Ces 2 méthodes chargent tous les plugins de type “org.txm.rcp.extentionpoint.command” (implémentant la classe “TxmCommand”), c'est à dire appelle la méthode “TxmCommand.preInstall() ou TxmCommand.install()” du plugin.
Une extension peut alors créé sa propre commande qui va finaliser son installation pour par exemple :
Pour qu'une extension puisse savoir si elle doit refaire sa post-installation, il faut créer une préférence VERSION qui stocke le numéro de l'extension lors de sa post-installation, si ce numéro est différent du numéro actuel, il faut alors refaire la post-installation.
à lire : http://www.vogella.com/tutorials/OSGi/article.html
L'extension peut définir les filtres de démarrage du plugin à l'aide des champs du fichier MANIFEST.MF (ou depuis la page 'Overview' du plugin) :
Les extensions ont une version qui permet de distinguer ses états successifs ainsi qu'établir un réseau de dépendences entre extensions tenant compte de leur état de développement.
La gestion des version se fera de la même façon que celle des versions de TXM : un numéro de version suivi d'une date au format (YYYYMMDDHHhh) généré automatiquement par le “qualifier” de la version déclarée dans le fichier METAINF.MF
Il faut rajouter des entrées de menu dans les menus d'URI suivantes :
Il faut indiquer quand c'est possible à TXM où les nouvelles entrées de menu doivent s'afficher en ajoutant le préfix “after” ou before dans la déclaration de la contribution de menu de l'extension (plugin.xml) :
<menuContribution allPopups="true" locationURI="toolbar:org.txm.rcpapplication.toolbarcorpus?before=org.txm.rcpapplication.toolbarcorpus.description">
Dans la mesure du possible, lors de la création de menu contextuel dans un éditeur, construire l'identifiant du menu selon :
popup:ID_DE_L_EDITEUR
Si cela n'est pas possible, (par exemple, il y a plusieurs menus) et suffixé l'identifiant de menu avec dièse (#)
Pour utiliser une image de la toolbox :
platform:/plugin/org.txm.toolbox/src/groovy/org/txm/macro/oriflamms/prepare/images/toolbar/out.png
Pour connaître facilement les références vers les différentes images disponibles dans les plugins hôtes la vue Plugin-in Image Browser peut être utilisée sous Eclipse (Windows\Show View\Plug-in Development\Plugin-in Image Browser) qui affiche les références pouvant être utilisées ensuite dans les plugin.xml (ex. dans “icon” d'une extension, menus, etc.).
Lorsqu'on lance la commande “Ajouter une extension”, TXM ouvre une fenêtre de dialogue qui contient une liste d'extensions disponibles à l'installation. Chaque élément de la liste est constitué d'une entête, le nom de l’extension, et d'une petite zone (4-5 lignes de hauteur) qui contient la description de l'extension.
La description de l'extension affichée est stockée dans le champ “description” du fichier “feature.xml” du projet Feature de l'extension. Le contenu du champ est du code HTML qui sera rendu dans la liste des extensions disponibles.
La zone de description les informations contient les infos suivantes :