View Javadoc

1   package org.apache.jetspeed.util;
2   
3   import org.apache.jetspeed.om.profile.Portlets;
4   import org.apache.jetspeed.om.profile.Entry;
5   import org.apache.jetspeed.om.profile.Profile;
6   import org.apache.jetspeed.services.rundata.JetspeedRunData;
7   import org.apache.jetspeed.portal.PortletSet;
8   
9   import org.apache.turbine.util.RunData;
10  
11  import java.util.*;
12  
13  /***
14   * This class is used to handle different mediatype profile
15   *
16   * @author <a href="mailto:A.Kempf@web.de">Andreas Kempf</a>
17   * @version $Id: AutoProfile.java,v1.0 2001/10/31
18   */
19  public class AutoProfile
20  {
21      /*** 
22       * Load a mediaType specific profile
23       * --------------------------------------------------------------------------
24       * last modified: 10/31/01
25       * Andreas Kempf, Siemens ICM S CP PE, Munich
26       */
27       /*
28      public static Profile loadProfile (RunData rundata, String mediaType) throws Exception
29      {
30          if ((mediaType != null) && (mediaType.equalsIgnoreCase("wml")))
31          {
32              Profile runProfile = ((JetspeedRunData)rundata).getProfile();
33              if (runProfile != null)
34              {
35                runProfile.store();
36              }                  
37              Profile myPro = Profiler.getProfile (rundata, MimeType.WML);
38              ((JetspeedRunData)rundata).setProfile (myPro);
39  
40              // It is essential that a session object exists!
41              rundata.getSession().setAttribute ("customizeType", "wml");
42          }
43          else if ((mediaType != null) && (mediaType.equalsIgnoreCase("xml")))
44          {
45              Profile runProfile = ((JetspeedRunData)rundata).getProfile();
46              if (runProfile != null)
47              {
48                  runProfile.store();
49              }          
50              Profile myPro = Profiler.getProfile (rundata, MimeType.XML);
51              ((JetspeedRunData)rundata).setProfile (myPro);
52  
53              // It is essential that a session object exists!
54              rundata.getSession().setAttribute ("customizeType", "xml");
55          }
56          else
57          {
58              Profile runProfile = ((JetspeedRunData)rundata).getProfile();
59              if (runProfile != null)
60              {
61                runProfile.store();
62              }          
63              Profile myPro = Profiler.getProfile (rundata, MimeType.HTML);
64              ((JetspeedRunData)rundata).setProfile (myPro);
65              
66              // It is essential that a session object exists!
67              rundata.getSession().setAttribute ("customizeType", "html");
68          }
69  
70          return ((JetspeedRunData)rundata).getProfile();                
71      }
72  */
73  
74      /*** 
75       * Load a profile - the mediatype is depending on rundata settings
76       * The profile will load if the rundata.profile.mediatype differs from customtype (Session Param)
77       * if the param notForce is false, the profile will be loaded wether is already used or not
78       * --------------------------------------------------------------------------
79       * last modified: 10/31/01
80       * Andreas Kempf, Siemens ICM S CP PE, Munich
81       */
82       /*
83      public static Profile doIt (RunData rundata, boolean notForce) throws Exception
84      {
85        // retrieve current customization mediatype (stored in the user session object)
86        HttpSession ses = rundata.getSession ();
87  
88        String mediaType = (String) ses.getAttribute ("customizeType");
89        
90        
91        if ((mediaType != null) && (mediaType.equalsIgnoreCase ("wml")))
92        {
93          // WML Profil nicht laden, wenn bereits vorhanden!
94          if (notForce)                
95          {
96            if (!((JetspeedRunData)rundata).getProfile().getMediaType ().equalsIgnoreCase("wml"))
97            {
98              return loadProfile (rundata, "wml");
99            }
100         }
101         // WML auf jeden Fall neu laden!
102         else
103             return loadProfile (rundata, "wml");
104       }
105       else if ((mediaType != null) && (mediaType.equalsIgnoreCase ("xml")))
106       {
107           // WML Profil nicht laden, wenn bereits vorhanden!
108           if (notForce)                
109           {
110             if (!((JetspeedRunData)rundata).getProfile().getMediaType ().equalsIgnoreCase("xml"))
111             {
112               return loadProfile (rundata, "xml");
113             }
114           }
115           // WML auf jeden Fall neu laden!
116           else
117               return loadProfile (rundata, "xml");
118 
119 
120       }
121       else if ((mediaType != null) && (mediaType.equalsIgnoreCase ("html")))
122       {
123         // HTML Profil nicht laden, wenn bereits vorhanden!
124         if (notForce)                
125         {
126           if (!((JetspeedRunData)rundata).getProfile().getMediaType ().equalsIgnoreCase("html"))
127           {
128             return loadProfile (rundata, "html");
129           }
130         }
131         // HTML auf jeden Fall neu laden!
132         else
133             return loadProfile (rundata, "html");
134       }
135       return ((JetspeedRunData)rundata).getProfile();
136     }
137     */
138     
139     // Create a list of all used portlets!
140     // last modified: 10/31/01
141     // Andreas Kempf, Siemens ICM S CP PE, Munich
142     // ---------------------------------------------------------------------
143     public static List getPortletList (RunData rundata)
144     {
145       Profile profile = ((JetspeedRunData)rundata).getCustomizedProfile();
146       Portlets allPortlets = profile.getDocument().getPortletsById(((PortletSet)((JetspeedRunData)rundata).getCustomized()).getID());
147 
148       
149       List installed = new ArrayList ();
150       Entry iPortlet;
151 
152 
153       if (allPortlets != null)
154       {
155         for (int ii = 0; ii < allPortlets.getEntryCount(); ii++) 
156         {
157           iPortlet = (Entry) allPortlets.getEntry (ii);
158           installed.add (iPortlet);
159         }
160       }
161       
162       return installed;
163     }
164   
165 }