|
HOWTO d�veloppement Sashipa
Trucs et astuces en Sashipa.
Externaliser les infos de connexionsLorsque l'on cr�e une application, le fichier source XML est inclus dans le fichier jar g�n�r�. C'est pratique : on ne risque plus de perdre le code source. Mais c'est aussi dangereux puisque ce fichier contient en clair les informations de connexion. Le mieux est donc d'externaliser les �l�ments sensibles, puis d'y faire r�f�rence depuis le fichier XML principal. Cela se fait simplement en utilisant la technique des entit�s XML. On cr�e tout d'abord un fichier XML, appelons-le demo_connexion.xml. Voici son contenu :
Puis nous revenons � notre fichier source principal. En t�te de fichier nous ajoutons le nouveau fichier comme une entit� :
Il ne nous reste plus qu'� utiliser cette entit� dans notre �l�ment dbConnection :
Le m�canisme des entit�s XML est similaire � une inclusion par copier/coller au moment du parsing (de la lecture) du fichier XML.
Notez cependant que cette op�ration n'est qu'une forme de r�partition du code source. Si vous changez les informations de connexion, �a ne vous dispense pas de recompiler. De plus, il faut savoir que le login et le mot de passe sont aussi en clair dans le fichier compil� Java (.class) qui s'occupe des acc�s � la base de donn�es. Dans le cas d'une architecture de type client-database on ne peut pas y faire grand chose. En revanche, avec une architecture client-servlet-database, vous pouvez d�zipper le fichier jar, retirer les deux fichiers de la servlet (XXXServlet.class, XXXServletAnalyser.class), puis reconstruire le fichier jar (cf commande en ligne 'jar' dans le J2SDK).
Param�tres par d�faut des champs.On d�finit les param�tres par d�faut des champs dans l'�l�ment defaultParameterSet. Pour chaque type de param�tre, on d�finit une valeur applicable � tous (applyOn='field') et/ou � tous les fk-fields (applyOn='fkField'). De plus, on peut pr�ciser une valeur pour chaque champ en particulier (exemple : applyOn='comboBoxFkField'). Lorsque un champ cherche sa valeur par d�faut, il prend la valeur la plus pr�cise qu'il puisse trouver. Par exemple, un comboBoxFkField qui cherche sa taille, (type='size') va prendre celle d�finie dans applyOn='comboBoxFkField'. Si elle n'existe pas, il prendra celle de applyOn='fkField' et � d�faut, celle de applyOn='field'. Les couleurs se d�finissent dans les param�tres par d�faut, au format RGB (Rouge Vert Bleu) en hexad�cimal. On d�finit une couleur par ses composantes dans ces trois couleurs, entre 0 et ff. Le composant textAreaField (applyOn='textAreaField') supporte un param�tre qui lui est sp�cifique pour passer � la ligne automatiquement : wordWrap. La valeur est de type bool�enne.
D�finir des fichiers journaux.Il est possible de d�finir des fichiers journaux, qui seront mis � jour par la partie serveur de votre application. On les d�finit dans l'�l�ment dbAccessStage de la partie architecture du fichier source.
Il y en a trois, chacun est facultatif :
Cr�er une application insensible � la casse.Vous pouvez sp�cifier que votre application transforme (et affiche !) l'int�gralit� de son contenu en majuscules ou en minuscules. Cela se fait simplement en modifiant un param�tre par d�faut :
Vous avez le choix entre les valeurs lowerCase, upperCase et nothing (par d�faut).
En compl�ment (ou ind�pendamment), vous pouvez aussi faire en sorte que les comparaisons pour les crit�res de recherche soient insensibles � la casse :
G�n�rer une application en lecture-seule.Si l'application que vous d�veloppez est une application en lecture-seule, vous retirerez dans le source les boutons d'ajout dans les menus, les requ�tes de mise � jour dans les cardForm (cardSchemaTableRef ... queries='s'), les boutons d'ajout des listForm (l'�l�ment insertScreen) et ceux des fkFields. Pas de probl�mes... En revanche, si vous avez d�velopp� une application compl�te, peut-�tre que vous appr�cierez de pouvoir la reg�n�rer dans une version en lecture-seule, sans pour autant modifier le code source. Cette op�ration se fait le plus simplement du monde en passant un param�tre de plus � la commande melbabuild :
Le deuxi�me param�tre est le nom du fichier � g�n�rer (sans l'extension .jar), il est libre mais obligatoire. Le param�tre readonly doit venir en troisi�me et est pass� au programme Sashipa2Melba, qui g�n�re alors du code Java sans impl�menter les mises � jour. Notez que dans le cas d'une architecture client-servlet-database, la servlet g�n�r�e n'autorise pas les requ�tes de mises � jour. Si vous mettez en production votre application sous sa forme normale et sous sa forme en lecture-seule, alors il faut utiliser la servlet g�n�r�e par la commande de g�n�ration normale. Pas celle en lecture seule qui est brid�e. Derni�re info qui a son importance : les applications g�n�r�es en lecture-seule n�cessite le JRE (ou JDK) 1.4 ou sup�rieur. Elles ne sont plus compatibles JRE 1.3 .
D�finir un bouton 'quitter' ou 'revenir' dans un menu.Voil� un bout de code g�n�r� automatiquement par Database2Sashipa, mais �a n'emp�che pas de le comprendre :
Tout d'abord il faut savoir que chaque �cran dispose d'un bouton comeBack, sauf lorsqu'on pr�cise le contraire (comme ici : screenComeBackButton enable='no'). Le libell� du bouton est "Quitter" pour le premier �cran de l'application et "Revenir" pour tous les autres. Ces deux libell�s sont d�finis - comme tous les autres libell�s - dans le fichier de langage (<melbalab-home>/src_xml/resources/SashipaXXX.xml). Un menuForm peut afficher un bouton 'comeBack' en derni�re position. Il suffit pour ce d'ajouter l'�l�ment vide menuComeBackButton. Ce bouton prendra sa valeur selon le m�me principe que le bouton comeBack de l'�cran.
Ajouter un nouveau langageVous pouvez ais�ment ajouter un nouveau langage � la technologie Sashipa-Melba, sans d�velopper quoi que ce soit. 1) Traduire un des fichier de langage. Tous les messages et libell�s sont d�finis dans un unique fichier de langage. Aussi, fa�te une copie d'un des fichiers <melbalab>/src_xml/resources/SashipaXxx.xml puis �ditez la copie. Prenez garde � l'encodage. Traduisez tous les contenus de balises dans le nouveau langage. Mais attention � ne pas modifier un nom de balise ou d'attribut, ni une valeur d'attribut ! Traduisez uniquement le contenu des balises. Ensuite, il y a une (seule) valeur d'attribut � changer, il faut donner un nom au premier �l�ment:
2) Dans l'application Sashipa: ajouter le langage comme une entit�. Dans votre application Sashipa, en d�but de fichier, vous ajoutez votre nouveau fichier de langage :
2) Dans l'application Sashipa: utiliser le nouveau fichier de langage. Dans votre application Sashipa, dans la partie architecture, vous pouvez maintenant utiliser la nouvelle entit�:
NB : Pour ajouter un nouveau langage au programme Database2Sashipa, il est encore n�cessaire de modifier un fichier source Java (databasesashipa/Database2Sashipa.java) et de recompiler. D�sol�... Important : une fois que vous avez traduit le fichier de langage dans un nouveau langage, partagez votre travail pour les autres utilisateurs svp. Envoyez-moi le fichier par email ou posez un lien pour le t�l�chargez depuis le forum.
Porter Sashipa-Melba vers un autre syst�me d'exploitationTous les composants de la technologie Sashipa-Melba sont �crits en Java. Donc la technologie fonctionnera sur tout syst�me d'exploitation disposant d'un kit de d�veloppement Java. En revanche pour g�n�rer une application, vous avez besoin d'un script Shell (<melbalab>/melbabuild[.bat]) qui lui est sp�cifique � votre syst�me. Il ne vous reste plus qu'� le r�-�crire... Important : une fois que vous avez traduit le script melbabuild dans un nouveau langage de Shell, partagez votre travail pour les autres utilisateurs svp. Envoyez-moi le fichier par email ou posez un lien pour le t�l�chargez depuis le forum.
© Copyright 2003 Sashipa-Melba Team. Ce document de la technologie Sashipa-Melba est sous licence GNU FDL Vous pouvez le copier et modifier librement les copies tant que cette mention appara�t clairement. |