Modification de l'affichage des proprietes customisées

cancel
Showing results for 
Search instead for 
Did you mean: 
milona
Member II

Modification de l'affichage des proprietes customisées

Bonsoir,

Savez vous comment changer le style des propriétés customisés lors de l'affichage des propriétés d'un element
(par exemple j'ai une propriété que j'ai défini dans mon model  : rg:nomdepropriété)
je voudrais, lors de l'affichage des propriétés customisées du document, que cette propriété s'affiche en gras ou en italique,….
Ce que j'ai fait pour ça :
J'ai modifié la classe PropertySheetItemRender et j'ai ajouté le style en brut, ça marche mais je ne suis pas sûre que ce soit une préconisation Alfresco. J'aimerais savoir s'il existe une autre méthode.

Je vous remercie de votre réponse,

Bien cordialement
12 Replies
rivarola
Active Member

Re: Modification de l'affichage des proprietes customisées

Bonjour,

Regarde de ce côté : http://wiki.alfresco.com/wiki/Component_Generator_Framework
C'est un framework dédié à la spécialisation de l'édition (mais on peut aussi gérer l'affichage) des propriétés du modèle.
C'est parfois un peu compliqué à mettre en oeuvre mais ça marche bien.
milona
Member II

Re: Modification de l'affichage des proprietes customisées

Merci beaucoup !
rguinko
Member II

Re: Modification de l'affichage des proprietes customisées

Bonjour,
J'ai créé mon générateur et il fonctionne bien. J'arrive pas à savoir comment injecter un style(police, couleur) au label en question. J'ai essayé de modifier la méthode createComponent(FacesContext context, UIPropertySheet propertySheet, PropertySheetItem item) mais en vain.
Merci de votre aide,
Cordialement
rivarola
Active Member

Re: Modification de l'affichage des proprietes customisées

C'est du JSF, donc il faut ajouter des attributs HTML dans la map des attributs du UIComponent, du genre :
component.getAttributes.put("style", "color: blue");

Ote-moi un doute, c'est bien la valeur de la propriété que tu veux customiser, pas son label ?
rguinko
Member II

Re: Modification de l'affichage des proprietes customisées

Merci de ta réponse.
En fait c'est le label de la propriété que je veux customiser (mettre en gras, et changer la couleur).
rivarola
Active Member

Re: Modification de l'affichage des proprietes customisées

OK, c'est un peu différent alors. C'est le même générateur de label qui est utilisé pour toutes les propriétés mais tu peux le redéfinir avec ta propre classe aussi. Voila comment il est défini dans la conf de base :
   <managed-bean>
      <description>
         Bean that generates a label component
      </description>
      <managed-bean-name>LabelGenerator</managed-bean-name>
      <managed-bean-class>org.alfresco.web.bean.generator.LabelGenerator</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
   </managed-bean>

Si tu redéfinis ce bean avec une classe à toi tu seras éventuellement capable de détecter ta propriété spécifique et de forcer qqs attributs spécifiques juste dans ce cas. Attention aux effets de bord sur l'utilisation "normale" de ce bean !
rguinko
Member II

Re: Modification de l'affichage des proprietes customisées

Encore merci pour tes réponses, je vais tenter cela de suite
rguinko
Member II

Re: Modification de l'affichage des proprietes customisées

Bonjour,
J'arrive à changer l'affichage des propriétés en injectant mon style css (dans mon bean LabelGenerator), merci Rivarola. J'aimerais maintenant modifier la valeur du label via mon bean. De façon plus claire je voudrais remplacer mon label Titre par <a href="">Titre</a>. Voici le code que j'ai effectué sous la condition du label "Titre" :

UIComponent label = FacesHelper.getComponentGenerator(context,
                 RepoConstants.GENERATOR_LABEL).generateAndAdd(context, propertySheet, item);   
label.getAttributes().put("value", "<a href="">Titre</a>" + ":");

ce code ne marche pas et je ne comprends pas pourquoi
Pourriez vous m'aider svp
rivarola
Active Member

Re: Modification de l'affichage des proprietes customisées

Pour changer la valeur du label, c'est beaucoup plus simple ! Il suffit d'ajouter display-label="ton label" dans l'élément show-property de ton web-client-config-custom.xml qui demande l'affichage de ta propriété (voir http://wiki.alfresco.com/wiki/Displaying_Custom_Metadata#Viewing_Aspect_Properties_in_the_Web_Client...).