package org.apache.jetspeed.util;
import org.apache.jetspeed.om.profile.Portlets;
import org.apache.jetspeed.om.profile.Entry;
import org.apache.jetspeed.om.profile.Profile;
import org.apache.jetspeed.services.rundata.JetspeedRunData;
import org.apache.jetspeed.portal.PortletSet;
import org.apache.turbine.util.RunData;
import java.util.*;
/**
* This class is used to handle different mediatype profile
*
* @author <a href="mailto:A.Kempf@web.de">Andreas Kempf</a>
* @version $Id: AutoProfile.java,v1.0 2001/10/31
*/
public class AutoProfile
{
/**
* Load a mediaType specific profile
* --------------------------------------------------------------------------
* last modified: 10/31/01
* Andreas Kempf, Siemens ICM S CP PE, Munich
*/
/*
public static Profile loadProfile (RunData rundata, String mediaType) throws Exception
{
if ((mediaType != null) && (mediaType.equalsIgnoreCase("wml")))
{
Profile runProfile = ((JetspeedRunData)rundata).getProfile();
if (runProfile != null)
{
runProfile.store();
}
Profile myPro = Profiler.getProfile (rundata, MimeType.WML);
((JetspeedRunData)rundata).setProfile (myPro);
// It is essential that a session object exists!
rundata.getSession().setAttribute ("customizeType", "wml");
}
else if ((mediaType != null) && (mediaType.equalsIgnoreCase("xml")))
{
Profile runProfile = ((JetspeedRunData)rundata).getProfile();
if (runProfile != null)
{
runProfile.store();
}
Profile myPro = Profiler.getProfile (rundata, MimeType.XML);
((JetspeedRunData)rundata).setProfile (myPro);
// It is essential that a session object exists!
rundata.getSession().setAttribute ("customizeType", "xml");
}
else
{
Profile runProfile = ((JetspeedRunData)rundata).getProfile();
if (runProfile != null)
{
runProfile.store();
}
Profile myPro = Profiler.getProfile (rundata, MimeType.HTML);
((JetspeedRunData)rundata).setProfile (myPro);
// It is essential that a session object exists!
rundata.getSession().setAttribute ("customizeType", "html");
}
return ((JetspeedRunData)rundata).getProfile();
}
*/
/**
* Load a profile - the mediatype is depending on rundata settings
* The profile will load if the rundata.profile.mediatype differs from customtype (Session Param)
* if the param notForce is false, the profile will be loaded wether is already used or not
* --------------------------------------------------------------------------
* last modified: 10/31/01
* Andreas Kempf, Siemens ICM S CP PE, Munich
*/
/*
public static Profile doIt (RunData rundata, boolean notForce) throws Exception
{
// retrieve current customization mediatype (stored in the user session object)
HttpSession ses = rundata.getSession ();
String mediaType = (String) ses.getAttribute ("customizeType");
if ((mediaType != null) && (mediaType.equalsIgnoreCase ("wml")))
{
// WML Profil nicht laden, wenn bereits vorhanden!
if (notForce)
{
if (!((JetspeedRunData)rundata).getProfile().getMediaType ().equalsIgnoreCase("wml"))
{
return loadProfile (rundata, "wml");
}
}
// WML auf jeden Fall neu laden!
else
return loadProfile (rundata, "wml");
}
else if ((mediaType != null) && (mediaType.equalsIgnoreCase ("xml")))
{
// WML Profil nicht laden, wenn bereits vorhanden!
if (notForce)
{
if (!((JetspeedRunData)rundata).getProfile().getMediaType ().equalsIgnoreCase("xml"))
{
return loadProfile (rundata, "xml");
}
}
// WML auf jeden Fall neu laden!
else
return loadProfile (rundata, "xml");
}
else if ((mediaType != null) && (mediaType.equalsIgnoreCase ("html")))
{
// HTML Profil nicht laden, wenn bereits vorhanden!
if (notForce)
{
if (!((JetspeedRunData)rundata).getProfile().getMediaType ().equalsIgnoreCase("html"))
{
return loadProfile (rundata, "html");
}
}
// HTML auf jeden Fall neu laden!
else
return loadProfile (rundata, "html");
}
return ((JetspeedRunData)rundata).getProfile();
}
*/
// Create a list of all used portlets!
// last modified: 10/31/01
// Andreas Kempf, Siemens ICM S CP PE, Munich
// ---------------------------------------------------------------------
public static List getPortletList (RunData rundata)
{
Profile profile = ((JetspeedRunData)rundata).getCustomizedProfile();
Portlets allPortlets = profile.getDocument().getPortletsById(((PortletSet)((JetspeedRunData)rundata).getCustomized()).getID());
List installed = new ArrayList ();
Entry iPortlet;
if (allPortlets != null)
{
for (int ii = 0; ii < allPortlets.getEntryCount(); ii++)
{
iPortlet = (Entry) allPortlets.getEntry (ii);
installed.add (iPortlet);
}
}
return installed;
}
}