Changer la valeur de NavigationBean.workAreaWidth

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

Changer la valeur de NavigationBean.workAreaWidth

Bonjour,

version alfresco 3.4.d

Pour les besoins de mon CSS, j'ai besoin que la valeur indiquée par
NavigationBean.workAreaWidth
prenne la valeur de 100% au lieu de 80%.

J'ai remplacé la valeur en dur dans quelques fichiers, mais je trouve ça très moche.

Je n'ai pas réussi à localiser la classe Java, ou du moins le code à changer pour changer cette valeur.

Est-ce que vous savez si cela est possible ? si oui, pourriez vous m'indiquer le fichier à modifier ?

Merci Smiley Happy
6 Replies
cleseach
Active Member II

Re: Changer la valeur de NavigationBean.workAreaWidth

Bonjour,

La classe que vous cherchez est : org.alfresco.web.bean.NavigationBean.
On la détermine en consultant la définition du managed bean NavigationBean dans le fichier faces-confing-beans.xml.

Le code de la classe indique :
   public String getWorkAreaWidth()
   {
      return this.shelfExpanded ? "80%" : "100%";
   }

En clair, si vous repliez le panneau latéral, vous aurez une largeur de 100%.

Pour fixer cette valeur "en dur" :
  • Créez un nouveau bean NavigationBeanFullWidth (par exemple) qui va étendre NavigationBean

  • Redéfinissez uniquement la méthode getWorkAreaWidth()

  • Dupliquez la définition du managed bean original dans le fichier faces-config-custom.xml

  • Rempalcez le texte de l'élément <managed-bean-class> pour référencez votre nouveau bean (ne touchez pas à <managed-bean-name>)
Ca devrait être suffisant.

Cordialement,
Charles Le Seac'h
tomen
Member II

Re: Changer la valeur de NavigationBean.workAreaWidth

Bonjour.

Merci pour votre réponse. J'ai cependant une petite question :
Est-ce que ça ne serait pas plutôt :
this.isShelfExpanded()

Car Eclipse me signale :
The field NavigationBean.shelfExpanded is not visible

Merci Smiley Happy
cleseach
Active Member II

Re: Changer la valeur de NavigationBean.workAreaWidth

Bonjour,

J'ai oublié dans ma première réponse une précision importante : ma proposition de développement correspond au fait de fixer la largeur à 100%, quelle que soit la visibilité du panneau latéral.

Si l'on veut jouer avec la visibilité du panneau latéral, vous disposez du paramétre de configuration shelf-visible dans le fichier web-client-config-custom.xml. Le passer à false permettra que le panneau latéral ne soit pas visible par défaut.
<shelf-visible>false</shelf-visible>

A vous d'expérimenter les deux solutions et de choisir celle qui vous convient le mieux.

Cordialement,
Charles Le Seac'h
tomen
Member II

Re: Changer la valeur de NavigationBean.workAreaWidth

Tout d'abord, merci de répondre aussi rapidement et clairement !

Je souhaite bien garder le panneau latéral de gauche. Mais je dois quand même avoir une largeur de 100% (que le panneau soit masqué ou non).

Donc mon code ressemblera à :
public class NavigationBeanFullWidth extends NavigationBean{
   public String getWorkAreaWidth()
      {
         return this.isShelfExpanded() ? "100%" : "100%";
      }
}

et mon fichier faces-config-beans.xml à :
   <managed-bean>
      <description>
         The bean that holds navigation state.
      </description>
      <managed-bean-name>NavigationBean</managed-bean-name>
      <managed-bean-class>org.alfresco.web.bean.NavigationBeanFullWidth</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
      <managed-property>
         <property-name>nodeService</property-name>
         <value>#{NodeService}</value>
      </managed-property>
      <managed-property>
         <property-name>searchService</property-name>
         <value>#{SearchService}</value>
      </managed-property>
      <managed-property>
         <property-name>namespaceService</property-name>
         <value>#{NamespaceService}</value>
      </managed-property>
      <managed-property>
         <property-name>serverConfiguration</property-name>
         <value>#{fileServerConfiguration}</value>
      </managed-property>
      <managed-property>
         <property-name>ruleService</property-name>
         <value>#{RuleService}</value>
      </managed-property>
      <managed-property>
         <property-name>userPreferencesBean</property-name>
         <value>#{UserPreferencesBean}</value>
      </managed-property>
      <managed-property>
         <property-name>authenticationService</property-name>
         <value>#{AuthenticationService}</value>
      </managed-property>
      <managed-property>
         <property-name>permissionService</property-name>
         <value>#{PermissionService}</value>
      </managed-property>
   </managed-bean>

Merci pour vos réponses qui me sont très utiles !
cleseach
Active Member II

Re: Changer la valeur de NavigationBean.workAreaWidth

Tout d'abord, merci de répondre aussi rapidement et clairement !
Je vous en prie ;-)

Votre code ressemblera plutôt à :
public class NavigationBeanFullWidth extends NavigationBean{
   public String getWorkAreaWidth()
      {
         return "100%";
      }
}

En effet, quelque soit le résultat de la condition this.isShelfExpanded(), nous voulons renvoyer "100%" !

Pour le fichier faces-config-beans.xml, veillez à bien conserver les éléments qui sont déjà présents et ajouter votre contenu entre les balises <faces-config> et </faces-config>.
Dernier point, évitez de créer vos bean dans les package Alfresco : org.alfresco.web.bean
Créez de préférence votre propre package par exemple : tomtom.alfresco.web.bean

Cordialement,
Charles Le Seac'h
tomen
Member II

Re: Changer la valeur de NavigationBean.workAreaWidth

Merci beaucoup !

je teste tout ça et si ça fonctionne, je passe le sujet en résolu.

Merci.

EDIT : tout fonctionne très bien ! Encore une fois merci !
Problème résolu.