PortletTemplatePlugin.java
/*
* Copyright (C) 2003-2008 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.services.cms.views;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.exoplatform.commons.utils.IOUtil;
import org.exoplatform.container.component.BaseComponentPlugin;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.ObjectParameter;
/**
* Created by The eXo Platform SAS
* Author : Hoa Pham
* hoa.phamvu@exoplatform.com
* Oct 15, 2008
*/
public class PortletTemplatePlugin extends BaseComponentPlugin{
private ConfigurationManager configurationManager;
private InitParams initParams;
private String portletName;
/**
* Instantiates a new portlet template plugin.
*
* @param initParams the init params
* @param configurationManager the configuration manager
*/
public PortletTemplatePlugin(InitParams initParams, ConfigurationManager configurationManager) {
this.initParams = initParams;
this.configurationManager = configurationManager;
portletName = this.initParams.getValueParam("portletName").getValue();
}
/**
* Gets the portlet name.
*
* @return the portlet name
*/
public String getPortletName() { return portletName; }
/**
* Retrieves all portlet template config for a portlet in plugin
*
* @return the portlet template configs
*
* @throws Exception the exception
*/
public List<PortletTemplateConfig> getPortletTemplateConfigs() throws Exception {
List<PortletTemplateConfig> list = new ArrayList<PortletTemplateConfig>();
String configPath = initParams.getValueParam("portlet.template.path").getValue();
Iterator<ObjectParameter> iterator = initParams.getObjectParamIterator();
for(;iterator.hasNext();) {
Object obj = iterator.next().getObject();
PortletTemplateConfig config = PortletTemplateConfig.class.cast(obj);
String templateFile = configPath + "/" + config.getCategory() + "/" + config.getTemplateName();
InputStream input = configurationManager.getInputStream(templateFile);
String templateData = IOUtil.getStreamContentAsString(input);
config.setTemplateData(templateData);
list.add(config);
}
return list;
}
/**
* The Class PortletTemplateConfig.
*/
public static class PortletTemplateConfig {
private String category;
private ArrayList<String> accessPermissions;
private ArrayList<String> editPermissions;
private String templateName;
private String title;
private String templateData;
/**
* Gets the category.
*
* @return the category
*/
public String getCategory() {
return category;
}
/**
* Sets the category.
*
* @param category the new category
*/
public void setCategory(String category) {
this.category = category;
}
/**
* Gets the access permissions.
*
* @return the access permissions
*/
public ArrayList<String> getAccessPermissions() {
return accessPermissions;
}
/**
* Sets the access permissions.
*
* @param accessPermissions the new access permissions
*/
public void setAccessPermissions(ArrayList<String> accessPermissions) {
this.accessPermissions = accessPermissions;
}
/**
* Gets the edits the permissions.
*
* @return the edits the permissions
*/
public ArrayList<String> getEditPermissions() {
return editPermissions;
}
/**
* Sets the edits the permissions.
*
* @param editPermissions the new edits the permissions
*/
public void setEditPermissions(ArrayList<String> editPermissions) {
this.editPermissions = editPermissions;
}
/**
* Gets the template name.
*
* @return the template name
*/
public String getTemplateName() {
return templateName;
}
/**
* Sets the template name.
*
* @param templateName the new template name
*/
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
/**
* Gets the full text template name.
*
* @return the template name
*/
public String getTitle() {
return title;
}
/**
* Sets the full text template title.
*
* @param title the new template title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* Gets the template data.
*
* @return the template data
*/
public String getTemplateData() {
return templateData;
}
/**
* Sets the template data.
*
* @param templateData the new template data
*/
public void setTemplateData(String templateData) {
this.templateData = templateData;
}
}
}