# TODO - PrimeFaces Freya Extension **Date** : 2025-12-25 **Statut** : 🚧 EN COURS - Composants composites Ă  crĂ©er --- ## 📊 État Actuel du Projet ### ✅ Ce qui est FAIT 1. **Structure du projet** - ✅ Architecture multi-modules (runtime, deployment, integration-tests) - ✅ Configuration Maven complĂšte (pom.xml) - ✅ MĂ©tadonnĂ©es Quarkus extension 2. **Templates et Layout** - ✅ `template.xhtml` - Template principal - ✅ `menu.xhtml` - Menu latĂ©ral - ✅ `topbar.xhtml` - Barre supĂ©rieure - ✅ `footer.xhtml` - Pied de page - ✅ `config.xhtml` - Panneau de configuration - ✅ `rightpanel.xhtml` - Panneau latĂ©ral droit 3. **Pages prĂ©dĂ©finies** - ✅ `landing.xhtml` - Page d'accueil - ✅ `login.xhtml` - Page de connexion - ✅ `error.xhtml` - Page d'erreur - ✅ `notfound.xhtml` - Page 404 - ✅ `access.xhtml` - AccĂšs refusĂ© - ✅ `help.xhtml` - Aide - ✅ `invoice.xhtml` - Facture - ✅ `empty.xhtml` - Page vide 4. **Java** - ✅ `GuestPreferences.java` - Bean de gestion des prĂ©fĂ©rences 5. **Configuration** - ✅ `freya.taglib.xml` - DĂ©claration de 25 composants composites - ✅ `primefaces-freya.taglib.xml` - Composant menu personnalisĂ© 6. **Documentation** - ✅ `README.md` - Documentation utilisateur - ✅ `ANALYSE_INTEGRALE.md` - Analyse technique --- ## ❌ Ce qui MANQUE (CRITIQUE) ### 1. Composants Composites (25 fichiers .xhtml) **RĂ©pertoire cible** : `runtime/src/main/resources/META-INF/resources/freya/` Le fichier `freya.taglib.xml` dĂ©clare 25 composants mais les fichiers XHTML correspondants **n'existent pas encore** : #### Composants de Layout (5) - [ ] `freya/menu.xhtml` - Menu rĂ©utilisable - [ ] `freya/card.xhtml` - Carte avec header/footer - [ ] `freya/panel.xhtml` - Panneau pliable - [ ] `freya/dialog.xhtml` - Dialogue modal - [ ] `freya/formDialog.xhtml` - Dialogue avec formulaire #### Composants de Formulaire (10) - [ ] `freya/inputText.xhtml` - Champ texte avec validation - [ ] `freya/inputTextarea.xhtml` - Zone de texte multiligne - [ ] `freya/inputNumber.xhtml` - Champ numĂ©rique formatĂ© - [ ] `freya/inputPassword.xhtml` - Mot de passe avec feedback - [ ] `freya/selectOneMenu.xhtml` - Menu dĂ©roulant avec filtre - [ ] `freya/selectManyMenu.xhtml` - SĂ©lection multiple - [ ] `freya/calendar.xhtml` - SĂ©lecteur de date - [ ] `freya/checkbox.xhtml` - Case Ă  cocher - [ ] `freya/radioButton.xhtml` - Bouton radio - [ ] `freya/fileUpload.xhtml` - Upload de fichier #### Composants de DonnĂ©es (3) - [ ] `freya/dataTable.xhtml` - Tableau avec pagination/tri - [ ] `freya/dataView.xhtml` - Vue de donnĂ©es (list/grid) - [ ] `freya/treeTable.xhtml` - Tableau arborescent #### Composants de Navigation (2) - [ ] `freya/breadcrumb.xhtml` - Fil d'Ariane - [ ] `freya/steps.xhtml` - Étapes (wizard) #### Composants d'Action (3) - [ ] `freya/button.xhtml` - Bouton simple - [ ] `freya/commandButton.xhtml` - Bouton avec action serveur - [ ] `freya/linkButton.xhtml` - Bouton lien #### Composants de Feedback (2) - [ ] `freya/message.xhtml` - Message pour un composant - [ ] `freya/growl.xhtml` - Notifications toast #### Composants Utilitaires (4) - [ ] `freya/spacer.xhtml` - Espaceur - [ ] `freya/divider.xhtml` - SĂ©parateur - [ ] `freya/badge.xhtml` - Badge - [ ] `freya/avatar.xhtml` - Avatar **Total : 25 composants Ă  crĂ©er** --- ### 2. Documentation des Composants - [ ] **COMPOSITE_COMPONENTS_DOCUMENTATION.md** - Localisation : `runtime/src/main/resources/META-INF/resources/freya/` - Contenu : Documentation complĂšte de chaque composant avec : - Description - Attributs - Exemples d'utilisation - Snippets de code --- ### 3. Tests d'IntĂ©gration Le module `integration-tests/` contient seulement une page de vĂ©rification basique. À ajouter : - [ ] Page de dĂ©monstration complĂšte des composants - [ ] Tests automatisĂ©s (JUnit/Selenium) - [ ] Tests de validation de formulaires - [ ] Tests d'intĂ©gration avec Quarkus --- ### 4. Composant Menu PersonnalisĂ© (Optionnel) Le fichier `primefaces-freya.taglib.xml` dĂ©clare un composant `menu` avec renderer personnalisĂ©, mais : - [ ] Classe Java `FreyaMenuRenderer` manquante - [ ] Classe Java `FreyaMenu` (component-type) manquante **Note** : Cela peut ĂȘtre optionnel si le composant composite `freya/menu.xhtml` suffit. --- ## 🎯 PrioritĂ©s ### PrioritĂ© CRITIQUE (Bloquant) **1. CrĂ©er les 25 composants composites** - Sans ces composants, l'extension ne peut pas ĂȘtre utilisĂ©e - Le README promet ces composants mais ils n'existent pas - Localisation : `runtime/src/main/resources/META-INF/resources/freya/` ### PrioritĂ© HAUTE **2. Documentation des composants** - Fichier `COMPOSITE_COMPONENTS_DOCUMENTATION.md` - Explique comment utiliser chaque composant - RĂ©fĂ©rencĂ© dans le README mais manquant ### PrioritĂ© MOYENNE **3. Page de dĂ©monstration** - CrĂ©er `components-demo.xhtml` dans `integration-tests/` - Montre tous les composants en action - Permet de tester visuellement l'extension ### PrioritĂ© BASSE **4. Tests automatisĂ©s** - Tests JUnit pour validation - Tests Selenium pour UI - Tests d'intĂ©gration Quarkus --- ## 📋 Structure des Composants Composites Chaque composant doit suivre la structure JSF Composite Component : ```xhtml
``` --- ## đŸ› ïž Plan d'Action RecommandĂ© ### Phase 1 : Composants Essentiels (PrioritĂ© 1) **Temps estimĂ© : 2-3 jours** 1. CrĂ©er le rĂ©pertoire `runtime/src/main/resources/META-INF/resources/freya/` 2. CrĂ©er les composants de formulaire (les plus utilisĂ©s) : - `inputText.xhtml` - `inputTextarea.xhtml` - `inputNumber.xhtml` - `selectOneMenu.xhtml` - `calendar.xhtml` - `checkbox.xhtml` 3. CrĂ©er les composants de layout : - `card.xhtml` - `panel.xhtml` - `dialog.xhtml` 4. CrĂ©er les composants d'action : - `button.xhtml` - `commandButton.xhtml` ### Phase 2 : Composants AvancĂ©s (PrioritĂ© 2) **Temps estimĂ© : 2 jours** 1. CrĂ©er les composants de donnĂ©es : - `dataTable.xhtml` - `dataView.xhtml` 2. CrĂ©er les composants utilitaires : - `badge.xhtml` - `avatar.xhtml` - `divider.xhtml` - `spacer.xhtml` 3. CrĂ©er les composants restants : - `breadcrumb.xhtml` - `steps.xhtml` - `message.xhtml` - `growl.xhtml` ### Phase 3 : Documentation et Tests (PrioritĂ© 3) **Temps estimĂ© : 1-2 jours** 1. CrĂ©er `COMPOSITE_COMPONENTS_DOCUMENTATION.md` 2. CrĂ©er `components-demo.xhtml` avec exemples de tous les composants 3. Tester chaque composant dans `integration-tests/` 4. Valider la compilation et l'utilisation de l'extension --- ## 📚 Ressources NĂ©cessaires ### Documentation Officielle - [JSF Composite Components](https://docs.oracle.com/javaee/6/tutorial/doc/giqzr.html) - [PrimeFaces Components](https://www.primefaces.org/showcase/) - [Freya Theme Demo](https://www.primefaces.org/freya/) ### Exemples de Code - Templates PrimeFaces existants dans `WEB-INF/` - Bean `GuestPreferences.java` pour accĂšs aux prĂ©fĂ©rences - Composant menu dans `WEB-INF/menu.xhtml` (rĂ©fĂ©rence) --- ## ⚠ Points d'Attention ### 1. Binding Bidirectionnel Les composants Ă©ditables (input, select, etc.) doivent utiliser `` pour permettre le binding bidirectionnel avec `value="#{bean.property}"`. ### 2. Validation JSF Tous les composants de formulaire doivent supporter les validateurs JSF standard et afficher les messages d'erreur avec ``. ### 3. AJAX et Update Les composants doivent supporter les attributs AJAX standards de PrimeFaces (`update`, `process`, `oncomplete`, etc.). ### 4. AccessibilitĂ© Utiliser les attributs ARIA et labels appropriĂ©s pour l'accessibilitĂ©. ### 5. Responsive Design Les composants doivent ĂȘtre responsive et utiliser PrimeFlex pour le layout (`w-full`, `p-field`, etc.). --- ## 🎯 CritĂšres de SuccĂšs L'extension sera **COMPLÈTE** quand : 1. ✅ Les 25 composants composites existent et fonctionnent 2. ✅ La documentation `COMPOSITE_COMPONENTS_DOCUMENTATION.md` est complĂšte 3. ✅ Une page de dĂ©monstration montre tous les composants 4. ✅ L'extension peut ĂȘtre ajoutĂ©e Ă  un projet Quarkus et utilisĂ©e immĂ©diatement 5. ✅ Tous les composants suivent les conventions PrimeFaces et JSF 6. ✅ Le README est Ă  jour et reflĂšte l'Ă©tat rĂ©el du projet --- ## 🚀 Pour DĂ©marrer ### 1. CrĂ©er le rĂ©pertoire des composants ```bash mkdir -p primefaces-freya-extension/runtime/src/main/resources/META-INF/resources/freya ``` ### 2. CrĂ©er le premier composant (exemple: inputText) ```bash cat > primefaces-freya-extension/runtime/src/main/resources/META-INF/resources/freya/inputText.xhtml << 'EOF'
EOF ``` ### 3. Tester le composant ```bash cd primefaces-freya-extension/integration-tests mvn quarkus:dev ``` Créer une page de test dans `integration-tests/src/main/resources/META-INF/resources/test.xhtml` : ```xhtml ``` --- **Conclusion** : Le projet a une **excellente base** (templates, layout, bean, configuration) mais il manque **l'essentiel** : les 25 composants composites promis dans le README. C'est la **priorité absolue** pour rendre l'extension utilisable. **Temps total estimé** : 5-7 jours de développement pour compléter tous les composants + documentation.