Dans un précédent billet, je mettais à disposition de la communauté Alfresco un WebPreviewer « optimisé ». Cette optimisation résultant d’une simple recompilation en mode « Release » plutôt que « debug ».
Il restait juste à expliquer comment parvenir à ce résultat.
Les instruments de ce travail sont :
- les sources du WebPreviewer : elles sont disponibles dans le SDK d’Alfresco, dans alfresco-share-src.zip, répertoire as;
- le SDK Flex version 3.6;
- l’environnement de développement FlashDevelop.
Ce dernier est facultatif, mais parfois un IDE est quand même bien pratique
Pour les amateurs de ligne de commande, voir directement en fin de page.
1ère étape : créer un projet
Après avoir exécuter le menu Project > New Project…, choisissez AS3 Project comme illustré ci-dessous :
Après avoir donné un nom et emplacement au projet, on se retrouve dans la fenêtre principale :
Il faut désormais importer les sources de WebPreviewer. La méthode la plus simple est de passer par l’explorateur de fichiers et de recopier le contenu du dossier src des sources Alfresco dans le dossier src de notre nouveau projet. L’arborescence du projet dans FlashDevelop se met à jour automatiquement.
Le fichier Main.as, généré à la création du projet, peut maintenant être supprimé.
Pour finir cette première étape, il faut définir le fichier WebPreviewer.mxml comme étant le point d’entrée du projet :
2ème étape : tenter la compilation
Le nom de cette étape le sous-entend : ça ne va pas marcher ! L’objectif est de voir les erreurs qui sont remontées pour pouvoir les corriger.
La compilation lancée par le menu Project > Build Project, 6 erreurs sont remontées :

La compilation "directe" remonte 6 erreurs.
Toutes ces erreurs ont la même cause : les images agrémentant WebPreviewer ne sont pas trouvées au moment de la compilation. La faut au chemin relatif : il faudrait écrire « /assets/cursor-hand.png » (par exemple) au lieu de « assets/cursor-hand.png ».
3ème étape : modifier les sources
Rien de plus simple : on recherche dans les sources et on ajoute le slash !
4ème étape : relancer la compilation
Ca, on sait déjà faire, alors on va plutôt s’intéresser à compilation en mode Release.
Rien de plus simple ! Il suffit de sélectionner le bon mode dans la barre de boutons :

Sélection du mode Release
5ème étape : installer le fichier
Le fichier généré est disponible dans le dossier bin du projet. Il n’y a plus qu’à le copier dans la webapp Share (ou de l’intégrer dans un module amp pour faire plus propre).
Et si je n’aime pas les IDE ? C’est tout aussi simple !
De manière synthétique, les étapes sont :
- corriger les sources pour que les « assets » soient référencés de manière absolue (cf. ci-dessus)
- exécuter la commande <flex sdk home>\bin\mxmlc.exe -optimize WebPreviewer.mxml
Et voila !
L’intérêt majeur de cette méthode est qu’il est ainsi possible de scripter la compilation du composant.
Merci beaucoup pour cet article car ça manque un peu sur le wiki de la communauté. En plus le web preview va évoluer pour intégrer la lecture de vidéo, donc avoir un peu de contrôle sur les source permettrons quelques petites custom.
C’est toujours un plaisir de pouvoir rendre service
Merci pour le retour.
WebPreviewer est effectivement un projet jeune qui va et peut connaître un certain nombre d’amélioration.
J’ai moi-même réalisé deux petits ajouts qui répondent à des problématiques de clients :
* l’impression de la page en cours de consultation
* le floutage de la page au timeout.
Ping : Howto : compiling Alfresco WebPreviewer | ECM & Co