cancel
Showing results for 
Search instead for 
Did you mean: 

Changer la valeur de NavigationBean.workAreaWidth

tomen
Champ in-the-making
Champ in-the-making
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 6

cleseach
Star Contributor
Star Contributor
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
Champ in-the-making
Champ in-the-making
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
Star Contributor
Star Contributor
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
Champ in-the-making
Champ in-the-making
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
Star Contributor
Star Contributor
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
Champ in-the-making
Champ in-the-making
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.