Menu

#117 Ecriture de plugins

v1.0_(example)
open
nobody
None
5
2021-03-25
2021-03-22
Anonymous
No

Bonjour,
Il est dit sur la page d'accueil que Yapbam est extensible à l'aide de plugins. Je n'ai pas trouvé de mode d'emploi pour démarrer l'écriture et l’intégration de ces extensions. Pouvez-vous me donner un minimum de directives pour aborder ce sujet ?

Merci d'avance.
Michel Graindorge

Discussion

  • Fathzer

    Fathzer - 2021-03-22

    Bonjour,
    Je n'ai effectivement pas de doc clairement construite sur le sujet.
    Voici quelques info, si vous avez besoin de plus n'hésitez pas à demander, et si votre envie d'écrire un plugin se confirme, j'essaierai de trouver un peu de temps pour faire quelque chose de construit.

    Pré-requis :
    Etre familier de Java, et de Maven.
    Si vous voulez faire un plugin qui affiche des choses à l'écran, il faut connaître Swing.
    * C'est mieux si vous connaissez Eclipse. Ça permet de récupérer un projet qui fonctionne directement dans un environnement de développement.

    Architecture :
    En préambule, il faut admettre que l'architecture est un peu bancale (c'était un premier jet, et je m'étais dit que si besoin, j'améliorerais ça ... 12 ans après, c'est toujours mon avis ;-)). En effet, les classes permettant de définir un plugin ne sont pas dans un artifact Maven à part, mais directement dans le source de l'application (https://svn.code.sf.net/p/yapbam/code/Yapbam). Du coup, le plus simple pour démarrer est de travailler directement dans le projet de l'application ... dans un package séparé pour le plugin.

    La classe net.yapbam.gui.AbstractPlugIn définit un plugin abstrait. On définit un plugin en sous-classant cette classe et en surchargeant ces méthodes.

    Les plugins peuvent définir des choses assez variées. Ça va du simple menu sans autre IHM, au panneau supplémentaire dans l'IHM.

    La plupart des fonctionnalités de Yapbam sont déjà implémentées sous forme de plugin.
    Par exemple :
    net.yapbam.gui.accountsummary.AccountsSummaryPlugin qui gère l'onglet "Bilan des comptes"
    net.yapbam.gui.tools.ToolsPlugIn qui gère tout ce qui est sous le menu "Outils"
    * net.yapbam.gui.recent.RecentFilesPlugin qui gère le menu Fichier/fichiers récents.

    Comment ajouter le plugin en cours de dév à Yapbam ?
    Au démarrage Yapbam charge automatiquement la classe dont le nom complet est spécifié dans la propriété système testedPlugin.className. La classe principale de Yapbam est net.yapbam.gui.MainFrame.
    Donc, avec la commande java -DtestedPlugin.className=com.myname.yapbam.MyPlugin le plugin défini dans la classe com.myname.yapbam.MyPlugin doit être pris en compte.
    Il me semble qu'il y a un endroit où on peut mettre des jar de plugins, pour qu'ils soient pris automatiquement en compte dans le Yapbam officiel ... mais il faudrait que je vérifie (c'est peut-être un truc auquel j'ai pensé, mais qui est resté à l'état d'idée).

    C'est tout ce qui me vient pour l'instant. Encore une fois, n'hésitez pas à poser des questions ...
    Cordialement,
    Jean-Marc Astesana

     
  • Anonymous

    Anonymous - 2021-03-23

    Bonjour,

    Merci beaucoup pour votre réponse rapide. Etant utilisateur de Yapbam depuis longtemps, je suis curieux de voir comment, avec un minimum d'effort - en fait un minimum de temps ;-) ! - on pourrait par exemple personnaliser certaines actions, ou certains paramètres.

    En tout cas cette application me rend déjà telle quelle de grands services. Et en plus je constate qu'en cas de besoin on peut compter sur votre grande réactivité, alors encore bravo. Je verrai bien si, au-delà du plaisir d’entrer dans le vif du sujet, je serai capable d'imaginer quelque chose de réellement utile.

    Cordialement,
    Michel Graindorge

     
  • Fathzer

    Fathzer - 2021-03-25

    Bonjour,
    Merci pour les compliments :-)
    Cordialement,
    Jean-Marc Astesana

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.