Nouveau composant : AsWing Look and Feel Chooser
Par Romain Ecarnot, mardi 3 octobre 2006 à 18:25 :: Fever :: #54 :: rss
Welcome au petit dernier, j'ai nommé le composant FvThemeChooser
Ou "comment customiser son application à la volée".( demo )
Suite à la parution de nouveaux thèmes pour AsWing, la question s'est posée d'elle-même :
Comment gérer ces thèmes et comment modifier mon application en jouant avec ?
Une 1ère réponse se trouve dans ce composant FvThemeChooser accompagné de sa petite soeur FvTheme.
Voyons comment définir nos thèmes et les utiliser par la suite.
Il faut tout d'abord enregistrer tous les thèmes dont nous allons avoir besoin :
FvTheme.register( "WinXP 2003", new WinXPLAF(), "themes/winxp2003.jpg" ); FvTheme.register( "High-Tech", new HightecLAF(), "themes/tech.jpg" ); FvTheme.register( "Spring", new SaladLAF(), "themes/spring" ); FvTheme.register( "AsWing basic", new ASWingLookAndFeel() );Par défaut aucun thème enregistré n'est appliqué par défaut. Pour appliquer un thème on peut faire un simple :
if( FvTheme.register( "Office 2003", new Office2003LAF(), "themes/office2003.jpg" ) ) FvTheme.start( "Office 2003" );
qui teste la validité de mon ajout et applique ce thème dès maintenant sur mon application.
Petite note pour la signature de la méthode #register() : #register( "nom_lisible_du_theme", 'instance_du_theme", "lien_vers_image_de_preview" ) : Boolean
Simple n'est-il pas 
Bon c'est bien gentil tout ça... mais si on avait un petit outil pour gérer ces thèmes de façon un peu plus graphique, ça serait pas mal du tout !
Et bien pour ça nous allons appeler, quand on le souhaite :
FvThemeChooser.open();
Et nous voilà en présence d'une petite boite de dialogue affichant les thèmes disponibles ( ainsi qu'un aperçu si disponible ).

On notera la possiblité d'interdire l'application à la volée pour préférer un système "Les modifications seront apportées au prochain redémarrage".
Pour cela on attribuera true à la méthode enabledRuntimeSwapping.
FvThemeChooser.enabledRuntimeSwapping = false;
Une petite démo est disponible à cette adresse ou bien via le Fever Sample Viewer ( rubrique AsWing )
Avant de finir, je reviens sur le terme employé au début de ce billet : "1ère solution".
Pourquoi 1ère ? et bien pour signaler qu'une autre façon de faire est en cours de développement, utilisant et mettant en place l'API de configuration de Fever ce qui permettra à terme une gestion plus dynamique de l'affaire plutot que de tout placer dans notre code ;).
Pour les intéressés, l'utilisation du ConfigLoader de Pixlib et cie vont être au menu.... miam miam... 
Sur ce, bonne soirée à tous

Commentaires
1. Le mardi 3 octobre 2006 à 23:08, par Tchup
2. Le mercredi 4 octobre 2006 à 08:50, par Romain
3. Le mercredi 4 octobre 2006 à 21:53, par Tchup
Ajouter un commentaire