/* * 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; } } }