WebUIPropertiesConfigService.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.wcm.webui;
import java.util.Iterator;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.lang.StringUtils;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.PropertiesParam;
/**
* Created by The eXo Platform SAS
* Author : Hoa Pham
* hoa.phamvu@exoplatform.com
* Dec 13, 2008
*/
public class WebUIPropertiesConfigService {
/** The Constant SCV_POPUP_SIZE_EDIT_PORTLET_MODE. */
public final static String SCV_POPUP_SIZE_EDIT_PORTLET_MODE = "SCV.popup.size.in.edit.portlet.mode";
/** The Constant SCV_POPUP_SIZE_QUICK_EDIT. */
public final static String SCV_POPUP_SIZE_QUICK_EDIT = "SCV.popup.size.in.quickdedit";
/** The Constant CLV_POPUP_SIZE_EDIT_PORTLET_MODE. */
public final static String CLV_POPUP_SIZE_EDIT_PORTLET_MODE = "CLV.popup.size.in.edit.portlet.mode";
/** The Constant CLV_POPUP_SIZE_QUICK_EDIT. */
public final static String CLV_POPUP_SIZE_QUICK_EDIT = "CLV.popup.size.in.quickedit";
/** The properties map. */
private ConcurrentHashMap<String,Object> propertiesMap = new ConcurrentHashMap<String,Object>();
/**
* Instantiates a new web ui properties config service.
*
* @param params the params
*/
@SuppressWarnings("unchecked")
public WebUIPropertiesConfigService(InitParams params) {
for(Iterator iterator = params.getPropertiesParamIterator();iterator.hasNext();) {
PropertiesParam propertiesParam = (PropertiesParam)iterator.next();
if(SCV_POPUP_SIZE_EDIT_PORTLET_MODE.equalsIgnoreCase(propertiesParam.getName())) {
PopupWindowProperties properties = readPropertiesFromXML(propertiesParam);
propertiesMap.put(SCV_POPUP_SIZE_EDIT_PORTLET_MODE,properties);
}else if(SCV_POPUP_SIZE_QUICK_EDIT.equals(propertiesParam.getName())) {
PopupWindowProperties properties = readPropertiesFromXML(propertiesParam);
propertiesMap.put(SCV_POPUP_SIZE_QUICK_EDIT,properties);
}else if(CLV_POPUP_SIZE_QUICK_EDIT.equals(propertiesParam.getName())) {
PopupWindowProperties properties = readPropertiesFromXML(propertiesParam);
propertiesMap.put(CLV_POPUP_SIZE_QUICK_EDIT,properties);
}else if(CLV_POPUP_SIZE_EDIT_PORTLET_MODE.equals(propertiesParam.getName())) {
PopupWindowProperties properties = readPropertiesFromXML(propertiesParam);
propertiesMap.put(CLV_POPUP_SIZE_EDIT_PORTLET_MODE,properties);
}
}
}
/**
* Gets the properties.
*
* @param name the name
*
* @return the properties
*/
public Object getProperties(String name) {
return propertiesMap.get(name);
}
/**
* Read properties from xml.
*
* @param param the param
*
* @return the popup window properties
*/
private PopupWindowProperties readPropertiesFromXML(PropertiesParam param) {
PopupWindowProperties properties = new PopupWindowProperties();
String width = param.getProperty(PopupWindowProperties.WIDTH);
String height = param.getProperty(PopupWindowProperties.HEIGHT);
if(width != null && StringUtils.isNumeric(width)) {
properties.setWidth(Integer.parseInt(width));
}
if(height != null && StringUtils.isNumeric(height)) {
properties.setHeight(Integer.parseInt(height));
}
return properties;
}
/**
* The Class PopupWindowProperties.
*/
public static class PopupWindowProperties {
/** The Constant WIDTH. */
public final static String WIDTH = "width";
/** The Constant HEIGHT. */
public final static String HEIGHT = "height";
/** The width. */
private int width = 500;
/** The height. */
private int height = 300;
/**
* Gets the width.
*
* @return the width
*/
public int getWidth() { return width; }
/**
* Sets the width.
*
* @param width the new width
*/
public void setWidth(int width) { this.width = width;}
/**
* Gets the height.
*
* @return the height
*/
public int getHeight() { return height; }
/**
* Sets the height.
*
* @param height the new height
*/
public void setHeight(int height) { this.height = height; }
}
}