/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library 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 Lesser General Public License for more * details. */ package com.liferay.portal.model.impl; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.model.ColorScheme; import com.liferay.portal.kernel.util.CharPool; import com.liferay.portal.kernel.util.PropertiesUtil; import com.liferay.portal.kernel.util.SafeProperties; import com.liferay.portal.kernel.util.StringUtil; import com.liferay.portal.kernel.util.Validator; import java.io.IOException; import java.util.Properties; /** * @author Brian Wing Shun Chan */ public class ColorSchemeImpl implements ColorScheme { public ColorSchemeImpl() { this(null, null, null); } public ColorSchemeImpl(String colorSchemeId) { this(colorSchemeId, null, null); } public ColorSchemeImpl(String colorSchemeId, String name, String cssClass) { _colorSchemeId = colorSchemeId; _name = name; _cssClass = cssClass; } @Override public int compareTo(ColorScheme colorScheme) { return getName().compareTo(colorScheme.getName()); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof ColorScheme)) { return false; } ColorScheme colorScheme = (ColorScheme)obj; String colorSchemeId = colorScheme.getColorSchemeId(); if (getColorSchemeId().equals(colorSchemeId)) { return true; } else { return false; } } @Override public String getColorSchemeId() { return _colorSchemeId; } @Override public String getColorSchemeImagesPath() { return _colorSchemeImagesPath; } @Override public String getColorSchemeThumbnailPath() { // LEP-5270 if (Validator.isNotNull(_cssClass) && Validator.isNotNull(_colorSchemeImagesPath)) { int pos = _cssClass.indexOf(CharPool.SPACE); if (pos > 0) { if (_colorSchemeImagesPath.endsWith( _cssClass.substring(0, pos))) { String subclassPath = StringUtil.replace( _cssClass, CharPool.SPACE, CharPool.SLASH); return _colorSchemeImagesPath + subclassPath.substring(pos); } } } return _colorSchemeImagesPath; } @Override public String getCssClass() { return _cssClass; } @Override public boolean getDefaultCs() { return _defaultCs; } @Override public String getName() { if (Validator.isNull(_name)) { return _colorSchemeId; } else { return _name; } } @Override public String getSetting(String key) { //return _settingsProperties.getProperty(key); // FIX ME if (key.endsWith("-bg")) { return "#FFFFFF"; } else { return "#000000"; } } @Override public String getSettings() { return PropertiesUtil.toString(_settingsProperties); } @Override public Properties getSettingsProperties() { return _settingsProperties; } @Override public int hashCode() { return _colorSchemeId.hashCode(); } @Override public boolean isDefaultCs() { return _defaultCs; } @Override public void setColorSchemeImagesPath(String colorSchemeImagesPath) { _colorSchemeImagesPath = colorSchemeImagesPath; } @Override public void setCssClass(String cssClass) { _cssClass = cssClass; } @Override public void setDefaultCs(boolean defaultCs) { _defaultCs = defaultCs; } @Override public void setName(String name) { _name = name; } @Override public void setSettings(String settings) { _settingsProperties.clear(); try { PropertiesUtil.load(_settingsProperties, settings); PropertiesUtil.trimKeys(_settingsProperties); } catch (IOException ioe) { _log.error(ioe); } } @Override public void setSettingsProperties(Properties settingsProperties) { _settingsProperties = settingsProperties; } private static final Log _log = LogFactoryUtil.getLog( ColorSchemeImpl.class); private final String _colorSchemeId; private String _colorSchemeImagesPath = "${images-path}/color_schemes/${css-class}"; private String _cssClass; private boolean _defaultCs; private String _name; private Properties _settingsProperties = new SafeProperties(); }