XINX - Editeur de feuille de style

Posté le Wednesday, 18 February 2009 in XINX

Bonjours à tous,

Ce billet, parle de XINX, un logiciel libre que j'ai développé et que je continue à développer sur mon temps libre. Le but de se billet est de présenter XINX et d'être le début d'une longue série de billet parlant de son développement.

En effet, même si le programme est propre à une utilisation particulière pour un cercle de personne restreint, les méthodes, classes, et idées utilisées dans ce programme peuvent intéresser d'autres personnes.

Nouvelle

Présentation

XINX est un éditeur de feuille de style sur lequel je travail depuis début 2006. En faite j'avais commencé un autre éditeur à l'aide de Borland/Delphi 7 mais il a été rapidement arrêté pour prendre une nouvelle direction dans un nouveau langage avec un nouveau départ1.

Cet éditeur de feuille de style à la particularité de pouvoir être utilisé dans le cadre de mon travail : sur l'application eGx (de la société Générix2). XINX permet non seulement l'édition de feuille de style (XSL), en proposant une complétion intuitive, mais propose également un mode projet, dans lequel il est possible de dérivé une feuille de style plutôt que de la remplacer (de façon spécifique à notre méthode de travail en projet chez le client).

XINX est un acronyme récursive3 qui signifie XINX Is Not XDME. Ce nom a été choisis car XINX est le complément idéal à XDME (l'éditeur de fichier de configuration d'eGx).

Logo

Au niveau du choix du langage, a contrario des autres applications Generix écritent en JAVA, XINX a été programmé en C++. Le framework Qt de la société TrolltechNokia a été choisis pour simplifier la programmation. Pourquoi ce choix de langage :

  • XINX est une application écrite sur mon temps libre, j'ai donc choisis un langage que je souhaité apprendre. En faite la raison de l'existence de XINX, et la volonté d'apprendre à utiliser ce framework.
  • Le framework Qt est utilisé par l'environnement de bureau KDE. Cet environnement de bureau est celui que j'utilise tous les jours, pendant mon temps libre (chez moi), sous Gnu/Linux.
  • La version 4 de ce framework est utilisable sous MS/Windows, sans payer de licence, dans le cadre de l'écriture d'un logiciel libre (au bureau tout nos poste sont sous MS/Windows)4.

Architecture

Architecture

XINX est décomposé en plusieurs parties :

  • la librairie de composant (contenant un gestionnaire de plugin en Qt, un combobox pour choisir une couleur, une liste de valeur avec les boutons pour ajouter ou supprimer des éléments, une barre d'édition pour faciliter l'édition de dossier)
  • la librairie principale (externalisant ce qui peut être nécessaire aux plugins).
  • une série de plugin permettant, dans XINX de

    • gérer CVS
    • gérer SubVersion
    • gérer les extentions XSL, JS, XML, HTML
    • gérer les WebServices
  • l'application elle-même

  • une application de migration de projet (pour migrer les fichiers projets XINX quand ces derniers changent)
  • une librairie gérant l'éditeur de code (l'éditeur utilisé pour la prochaine version est QCodeEdit5)
  • les librairies du framework Qt

Vous pouvez une documentation sur l'écriture de plugins sur le site de XINX ainsi qu'une documentation au format Doxygen des librairies.


  1. Borland/Delphi 7 étant limité à la plateforme de Microsoft, et l'application ayant pris dés le début une mauvaise direction (orienté fichier de configuration plutôt que feuille de style) 

  2. Generix est un éditeur de logiciel de gestion d'entreprise, dit ERP 

  3. Un acronyme qui contient l'acronyme même, comme Gnu pour Gnu Is not Unix 

  4. XINX est un logiciel libre non parce que je n'avais pas le choix dû à la double licence de la librairie Qt mais bien par choix personnelle de développer du logiciel libre sur mon temps personnel. 

  5. QCodeEdit est un éditeur de code écrit pour Qt. Il est très performant, et possède beaucoup de fonctionnalité utile.