[jboss-user] [JBoss Portal] - Re: probleme with

eagleIT do-not-reply at jboss.com
Thu Jun 14 12:51:40 EDT 2007


DashboardManager.java :


  | package fr.cpage.PersonnalizePortlet.backingbean;
  | 
  | import java.io.Serializable;
  | import java.util.ArrayList;
  | import java.util.Collection;
  | import java.util.Collections;
  | import java.util.Iterator;
  | import java.util.LinkedHashMap;
  | import java.util.List;
  | import java.util.Map;
  | 
  | import javax.faces.context.FacesContext;
  | import javax.faces.model.SelectItem;
  | 
  | import org.jboss.portal.core.admin.ui.actions.WindowComparator;
  | import org.jboss.portal.core.model.content.Content;
  | import org.jboss.portal.core.model.content.ContentType;
  | import org.jboss.portal.core.model.instance.Instance;
  | import org.jboss.portal.core.model.instance.InstanceContainer;
  | import org.jboss.portal.core.model.portal.DuplicatePortalObjectException;
  | import org.jboss.portal.core.model.portal.Page;
  | import org.jboss.portal.core.model.portal.Portal;
  | import org.jboss.portal.core.model.portal.PortalObject;
  | import org.jboss.portal.core.model.portal.PortalObjectContainer;
  | import org.jboss.portal.core.model.portal.PortalObjectId;
  | import org.jboss.portal.core.model.portal.Window;
  | import org.jboss.portal.theme.LayoutService;
  | import org.jboss.portal.theme.PortalLayout;
  | import org.jboss.portal.theme.ThemeConstants;
  | import org.jboss.seam.ScopeType;
  | import org.jboss.seam.annotations.Create;
  | import org.jboss.seam.annotations.In;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.annotations.Out;
  | import org.jboss.seam.annotations.Scope;
  | 
  | /**
  |  * 
  |  */
  | 
  | @Name("dashboardManager")
  | @Scope(ScopeType.SESSION)
  | public class DashboardManager implements Serializable {
  |   
  |   private static final PortalObjectId dashboardId = PortalObjectId.parse("/dashboard", PortalObjectId.CANONICAL_FORMAT);
  |   
  | 
  |   // liste des portlets disponible en SelectItem pour les afficher dans
  |   // MaPage.xhtml
  |   List<String> lstPortletDispo;
  | 
  |   List<Instance> lstPortletDispoObj;
  | 
  |   // Nom de la portlet sélectionnée
  |   String selectedPortletName;
  | 
  |   // liste des layouts disponible en SelectItem pour les afficher dans
  |   // MaPage.xhtml
  |   List<String> lstLayouts;
  | 
  |   List<PortalLayout> lstLayoutsObject;
  | 
  |   // liste des pages disponible en SelectItem pour les afficher dans
  |   // MaPage.xhtml
  |   List<String> lstPages;
  | 
  |   // PortalObjectContainer = conteneur de tous les portails déployés sur jboss
  | 
  |   public PortalObjectContainer portalObjectContainer;
  |   
  | 
  |   public LayoutService layoutService;
  |   
  |   public InstanceContainer instanceContainer;
  | 
  |   // portail de l'utilisateur connecté
  |   Portal userPortal;
  | 
  |   // nom de l'utilisateur connecté
  |   String userId;
  | 
  |   // portletInfo injecté grâce au service
  |   @In(create = true)
  |   PortletInfo portletInfo;
  | 
  |   // liste des windows dans une page
  |   List<PortalObject> lstWindows;
  | 
  |   // clé : nom de la région valeur : nom de la région + portlet dans cette
  |   // région
  |   Map<String, Region> mapRegions;
  | 
  |   // Nom de la région sélectionnée
  |   String selectedRegionName;
  | 
  |   // Nom de la page sélectionnée
  |   String selectedPageName;
  | 
  |   // Position de la portlet dans la région
  |   int orderPortlet;
  | 
  |   // object de la page sélectionnée
  |   PortalObject selectedPage;
  | 
  |   String windowName;
  | 
  |   int nbWindowName;
  | 
  |   String infosPortlet;
  | 
  |   // Constructeur
  |   @Create
  |   public void initialize() {
  |     // PortalObjectContainer = conteneur de tous les portails déployés sur jboss
  |     }
  |     initLstPortletDispo();
  |     initLstLayouts();
  |     initUser();
  |     initLstPages();
  |     initLstRegions();
  |     initLstWindows();
  |   }
  | 
  |   /**
  |    * Initialisation de la liste des portlets disponibles
  |    */
  |   public void initLstPortletDispo() {
  |     // chargement de la liste de Portlets Définitions
  |     this.lstPortletDispo = new ArrayList<String>();
  |     this.lstPortletDispoObj = new ArrayList<Instance>();
  |     // listes des portlets dans la collection colIntances
  |     Collection<Instance> colInstances = instanceContainer.getDefinitions();
  | 
  |     // Chargement de la liste des porlets dans notre liste (pas triée)
  |     for (Instance instance : colInstances) { // Ajout portlet par portlet dans
  |       // la liste de SelectItem
  |       this.lstPortletDispo.add(instance.getId());
  |       this.lstPortletDispoObj.add(instance);
  | 
  |     }
  |     // tri par ordre alphabétique
  |     Collections.sort(this.lstPortletDispo);
  |   }
  | 
  |   /**
  |    * Initialisation de la liste des layouts disponibles
  |    */
  |   public void initLstLayouts() {
  |     // chargement de la liste de Layouts
  |     this.lstLayouts = new ArrayList<String>();
  |     this.lstLayoutsObject = new ArrayList<PortalLayout>();
  |  this.portletInfo.getPortletContext().getAttribute("LayoutService");
  |     // liste des layouts dans la collection colLayouts
  |     Collection<PortalLayout> colLayouts = layoutService.getLayouts();
  |     // Chargement de la liste des layouts dans notre liste (pas triée)
  |     for (PortalLayout layout : colLayouts) { // Ajout layout par layout dans la
  |       // liste de SelectItem
  |       this.lstLayouts.add(layout.getLayoutInfo().getName());
  |       this.lstLayoutsObject.add(layout);
  |     }
  |   }
  | 
  |   /**
  |    * initialise le nom de utilisateur connecté
  |    */
  |   public void initUser() {
  |     // Get user name
  |     this.userId = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
  |   }
  | 
  |   /**
  |    * Initialisation de la liste des pages disponibles
  |    * 
  |    * @param object conteneur de tous les objets dans les potails
  |    */
  |   public void initLstPages() {
  |     // chargement de la liste des pages
  |     this.lstPages = new ArrayList<String>(); 
  |     userPortal = (Portal)portalObjectContainer.getObject(dashboardId).getChild(userId);
  |     // Collection des objects appartenant à utilisateur = pages contenues dans
  |     // le dashboard
  |     Collection<PortalObject> colPages = this.userPortal.getChildren();
  |     for (PortalObject page : colPages) { // Ajout page par page dans la liste
  |       // de SelectItem
  |       this.lstPages.add(page.getName());
  |     }
  |   }
  | 
  |   /**
  |    * Initialisation de la map des regions disponibles + les portlets dans cette
  |    * région
  |    */
  |   public void initLstRegions() {
  |     // initialisation de lstRegions
  |     this.selectedPage = this.userPortal.getChild(this.selectedPageName);
  |     this.mapRegions = new LinkedHashMap<String, Region>();
  |     // nom du layout de la page en cours
  |     String layoutName = this.selectedPage.getProperty("layout.id");
  |     // object layout de la page en cours
  |     PortalLayout layout = getLayout(layoutName);
  |     // On fait une liste de toutes les régions de ce layout
  |     Collection<String> colRegions = layout.getLayoutInfo().getRegionNames();
  |     // On les ajoute dans la liste d'items pour pourvoir les utiliser avec le
  |     // SelectManyMenu
  |     for (String region : colRegions) {
  |       // si la région est "navigation", on l'ajoute pas
  |       if (!"navigation".equals(region)) {
  |         this.mapRegions.put(region, new Region(region));
  |       }
  |     }
  |   }
  | 
  |   /**
  |    * Retourne l'objet PortalLayout dont l'identifiant est lay
  |    * 
  |    * @param lay identifiant du layout
  |    * @return l'objet PortalLayout
  |    */
  |   private PortalLayout getLayout(String lay) {
  |     int index = this.lstLayouts.indexOf(lay);
  |     PortalLayout retLayout = this.lstLayoutsObject.get(index);
  |     return retLayout;
  | 
  |   }
  | 
  |   /**
  |    * Action changer de page, liés au boutton dans la jsp
  |    */
  |   public void actionSelectedPageChange() {
  |     // object PortalObject de la page en cours
  |     System.out.println("----------------DEBUG" + selectedPageName);
  |     initLstPages();
  |     initLstRegions();
  |     initLstWindows();
  |   }
  | 
  |   /**
  |    * Action pour ajouter une window dans une page donnée, avec une région donnée
  |    */
  |   public void actionAddWindow() {
  |     Page page = (Page) this.selectedPage;
  |     try {
  | 
  |       String instanceName = this.selectedPortletName;
  |       String nameWindow = this.selectedPortletName.replaceAll("Instance", "Window");
  |       nameWindow = nameWindow + (int) (100 * Math.random());
  |       Window window = page.createWindow(nameWindow, ContentType.PORTLET, instanceName);
  |       Content content = window.getContent();
  | 
  |       window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_REGION, this.selectedRegionName);
  |       window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER, "" + Integer.MAX_VALUE);
  |       
  |       
  |       reinitOrderWindows(window);
  |       
  |       //this.portletInfo.getPortletContext().setAttribute("PortalObjectContainer", portalObjectContainer);
  |       //this.portletInfo.getPortletContext().setAttribute("InstanceContainer", instanceContainer);
  | 
  |     } catch (DuplicatePortalObjectException unexpected) {
  |       unexpected.printStackTrace();
  |     }
  | 
  |   }
  | 
  |   private void reinitOrderWindows(Window window) {
  | //  Get the windows belonging to the selected region sorted by order
  |     List windows = new ArrayList();
  |     for (Iterator i = selectedPage.getChildren(PortalObject.WINDOW_MASK).iterator();i.hasNext();)
  |     {
  |        Window tmp = (Window)i.next();
  |        if (selectedRegionName.equals(tmp.getProperty(ThemeConstants.PORTAL_PROP_REGION)))
  |        {
  |           windows.add(tmp);
  |        }
  |     }
  | 
  |     // Add the created one
  |     windows.add(window);
  | 
  |     // Update the order states
  |     for (int i = 0;i < windows.size();i++)
  |     {
  |        Window tmp = (Window)windows.get(i);
  |        tmp.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER, "" + i);
  |     }
  |   }
  |   
  |   public void changeSelectedPortlet() {
  |     int index = this.lstPortletDispoObj.indexOf(this.selectedPortletName);
  |     Instance porlet = this.lstPortletDispoObj.get(index);
  |     String idAttribute = porlet.INSTANCE_ID_ATTRIBUTE;
  |     String id = porlet.getId();
  |     this.infosPortlet = "Id de l'attribut de la portlet : ";
  |     this.infosPortlet += idAttribute;
  |     this.infosPortlet += "\n id de la portlet : ";
  |     this.infosPortlet += id;
  |   }
  | 
  |   /**
  |    * initialisation de la liste des windows dans la page en cours
  |    */
  |   public void initLstWindows() {
  |     this.lstWindows = new ArrayList<PortalObject>();
  |     Collection<PortalObject> colWindows = this.selectedPage.getChildren(PortalObject.WINDOW_MASK);
  |     for (PortalObject window : colWindows) {
  |       this.lstWindows.add(window);
  |       String region = window.getProperty(ThemeConstants.PORTAL_PROP_REGION);
  |       Region reg = this.mapRegions.get(region);
  |       reg.addWindow(window.getName());
  |     }
  |   }
  | 
  |   /**
  |    * Retourne la valeur de lstPortletDispo.
  |    * 
  |    * @return valeur de lstPortletDispo.
  |    */
  |   public List<String> getLstPortletDispo() {
  |     return this.lstPortletDispo;
  |   }
  | 
  |   /**
  |    * Définit la valeur de lstPortletDispo.
  |    * 
  |    * @param lstPortletDispo valeur de lstPortletDispo à définir.
  |    */
  |   public void setLstPortletDispo(List<String> lstPortletDispo) {
  |     this.lstPortletDispo = lstPortletDispo;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de lstLayouts.
  |    * 
  |    * @return valeur de lstLayouts.
  |    */
  |   public List<String> getLstLayouts() {
  |     return this.lstLayouts;
  |   }
  | 
  |   /**
  |    * Définit la valeur de lstLayouts.
  |    * 
  |    * @param lstLayouts valeur de lstLayouts à définir.
  |    */
  |   public void setLstLayouts(List<String> lstLayouts) {
  |     this.lstLayouts = lstLayouts;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de lstPages.
  |    * 
  |    * @return valeur de lstPages.
  |    */
  |   public List<String> getLstPages() {
  |     return this.lstPages;
  |   }
  | 
  |   /**
  |    * Définit la valeur de lstPages.
  |    * 
  |    * @param lstPages valeur de lstPages à définir.
  |    */
  |   public void setLstPages(List<String> lstPages) {
  |     this.lstPages = lstPages;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de lstRegions.
  |    * 
  |    * @return valeur de lstRegions.
  |    */
  |   public List<String> getLstRegions() {
  |     List<String> lstRegion = new ArrayList<String>();
  |     lstRegion.addAll(this.mapRegions.keySet());
  |     return lstRegion;
  |   }
  | 
  |   public List<Region> getLstRegionObj() {
  |     List<Region> lstRegion = new ArrayList<Region>();
  |     lstRegion.addAll(this.mapRegions.values());
  |     return lstRegion;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de userId.
  |    * 
  |    * @return valeur de userId.
  |    */
  |   public String getUserId() {
  |     return this.userId;
  |   }
  | 
  |   /**
  |    * Définit la valeur de userId.
  |    * 
  |    * @param userId valeur de userId à définir.
  |    */
  |   public void setUserId(String userId) {
  |     this.userId = userId;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de selectedPageName.
  |    * 
  |    * @return valeur de selectedPageName.
  |    */
  |   public String getSelectedPageName() {
  |     return this.selectedPageName;
  |   }
  | 
  |   /**
  |    * Définit la valeur de selectedPageName.
  |    * 
  |    * @param selectedPageName valeur de selectedPageName à définir.
  |    */
  |   public void setSelectedPageName(String selectedPageName) {
  |     this.selectedPageName = selectedPageName;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de selectedPortletName.
  |    * 
  |    * @return valeur de selectedPortletName.
  |    */
  |   public String getSelectedPortletName() {
  |     return this.selectedPortletName;
  |   }
  | 
  |   /**
  |    * Définit la valeur de selectedPortletName.
  |    * 
  |    * @param selectedPortletName valeur de selectedPortletName à définir.
  |    */
  |   public void setSelectedPortletName(String selectedPortletName) {
  |     this.selectedPortletName = selectedPortletName;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de selectedRegionName.
  |    * 
  |    * @return valeur de selectedRegionName.
  |    */
  |   public String getSelectedRegionName() {
  |     return this.selectedRegionName;
  |   }
  | 
  |   /**
  |    * Définit la valeur de selectedRegionName.
  |    * 
  |    * @param selectedRegionName valeur de selectedRegionName à définir.
  |    */
  |   public void setSelectedRegionName(String selectedRegionName) {
  |     this.selectedRegionName = selectedRegionName;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de orderPortlet.
  |    * 
  |    * @return valeur de orderPortlet.
  |    */
  |   public int getOrderPortlet() {
  |     return this.orderPortlet;
  |   }
  | 
  |   /**
  |    * Définit la valeur de orderPortlet.
  |    * 
  |    * @param orderPortlet valeur de orderPortlet à définir.
  |    */
  |   public void setOrderPortlet(int orderPortlet) {
  |     this.orderPortlet = orderPortlet;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de infosPortlet.
  |    * 
  |    * @return valeur de infosPortlet.
  |    */
  |   public String getInfosPortlet() {
  |     return this.infosPortlet;
  |   }
  | 
  |   /**
  |    * Définit la valeur de infosPortlet.
  |    * 
  |    * @param infosPortlet valeur de infosPortlet à définir.
  |    */
  |   public void setInfosPortlet(String infosPortlet) {
  |     this.infosPortlet = infosPortlet;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de portalObjectContainer.
  |    * 
  |    * @return valeur de portalObjectContainer.
  |    */
  |   public PortalObjectContainer getPortalObjectContainer() {
  |     return this.portalObjectContainer;
  |   }
  | 
  |   /**
  |    * Définit la valeur de portalObjectContainer.
  |    * 
  |    * @param portalObjectContainer valeur de portalObjectContainer à définir.
  |    */
  |   public void setPortalObjectContainer(PortalObjectContainer portalObjectContainer) {
  |     this.portalObjectContainer = portalObjectContainer;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de instanceContainer.
  |    * 
  |    * @return valeur de instanceContainer.
  |    */
  |   public InstanceContainer getInstanceContainer() {
  |     return this.instanceContainer;
  |   }
  | 
  |   /**
  |    * Définit la valeur de instanceContainer.
  |    * 
  |    * @param instanceContainer valeur de instanceContainer à définir.
  |    */
  |   public void setInstanceContainer(InstanceContainer instanceContainer) {
  |     this.instanceContainer = instanceContainer;
  |   }
  | 
  |   /**
  |    * Retourne la valeur de layoutService.
  |    * 
  |    * @return valeur de layoutService.
  |    */
  |   public LayoutService getLayoutService() {
  |     return this.layoutService;
  |   }
  | 
  |   /**
  |    * Définit la valeur de layoutService.
  |    * 
  |    * @param layoutService valeur de layoutService à définir.
  |    */
  |   public void setLayoutService(LayoutService layoutService) {
  |     this.layoutService = layoutService;
  |   }
  | 
  | }
  | 
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4054495#4054495

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4054495




More information about the jboss-user mailing list