001: /**
002: * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
003: *
004: * Permission is hereby granted, free of charge, to any person obtaining a copy
005: * of this software and associated documentation files (the "Software"), to deal
006: * in the Software without restriction, including without limitation the rights
007: * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
008: * copies of the Software, and to permit persons to whom the Software is
009: * furnished to do so, subject to the following conditions:
010: *
011: * The above copyright notice and this permission notice shall be included in
012: * all copies or substantial portions of the Software.
013: *
014: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
015: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
016: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
017: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
018: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
019: * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
020: * SOFTWARE.
021: */package com.liferay.portal.model.impl;
022:
023: import com.liferay.portal.kernel.util.NullSafeProperties;
024: import com.liferay.portal.kernel.util.PropertiesUtil;
025: import com.liferay.portal.kernel.util.StringPool;
026: import com.liferay.portal.kernel.util.Validator;
027: import com.liferay.portal.model.ColorScheme;
028: import com.liferay.portal.util.PropsValues;
029:
030: import java.io.IOException;
031:
032: import java.util.Properties;
033:
034: import org.apache.commons.logging.Log;
035: import org.apache.commons.logging.LogFactory;
036:
037: /**
038: * <a href="ColorSchemeImpl.java.html"><b><i>View Source</i></b></a>
039: *
040: * @author Brian Wing Shun Chan
041: *
042: */
043: public class ColorSchemeImpl implements ColorScheme {
044:
045: public static final String BODY_BG = "body-bg";
046:
047: public static final String LAYOUT_BG = "layout-bg";
048:
049: public static final String LAYOUT_TEXT = "layout-text";
050:
051: public static final String LAYOUT_TAB_BG = "layout-tab-bg";
052:
053: public static final String LAYOUT_TAB_TEXT = "layout-tab-text";
054:
055: public static final String LAYOUT_TAB_SELECTED_BG = "layout-tab-selected-bg";
056:
057: public static final String LAYOUT_TAB_SELECTED_TEXT = "layout-tab-selected-text";
058:
059: public static final String PORTLET_TITLE_BG = "portlet-title-bg";
060:
061: public static final String PORTLET_TITLE_TEXT = "portlet-title-text";
062:
063: public static final String PORTLET_MENU_BG = "portlet-menu-bg";
064:
065: public static final String PORTLET_MENU_TEXT = "portlet-menu-text";
066:
067: public static final String PORTLET_BG = "portlet-bg";
068:
069: public static final String PORTLET_FONT = "portlet-font";
070:
071: public static final String PORTLET_FONT_DIM = "portlet-font-dim";
072:
073: public static final String PORTLET_MSG_STATUS = "portlet-msg-status";
074:
075: public static final String PORTLET_MSG_INFO = "portlet-msg-info";
076:
077: public static final String PORTLET_MSG_ERROR = "portlet-msg-error";
078:
079: public static final String PORTLET_MSG_ALERT = "portlet-msg-alert";
080:
081: public static final String PORTLET_MSG_SUCCESS = "portlet-msg-success";
082:
083: public static final String PORTLET_SECTION_HEADER = "portlet-section-header";
084:
085: public static final String PORTLET_SECTION_HEADER_BG = "portlet-section-header-bg";
086:
087: public static final String PORTLET_SECTION_SUBHEADER = "portlet-section-subheader";
088:
089: public static final String PORTLET_SECTION_SUBHEADER_BG = "portlet-section-subheader-bg";
090:
091: public static final String PORTLET_SECTION_BODY = "portlet-section-body";
092:
093: public static final String PORTLET_SECTION_BODY_BG = "portlet-section-body-bg";
094:
095: public static final String PORTLET_SECTION_BODY_HOVER = "portlet-section-body-hover";
096:
097: public static final String PORTLET_SECTION_BODY_HOVER_BG = "portlet-section-body-hover-bg";
098:
099: public static final String PORTLET_SECTION_ALTERNATE = "portlet-section-alternate";
100:
101: public static final String PORTLET_SECTION_ALTERNATE_BG = "portlet-section-alternate-bg";
102:
103: public static final String PORTLET_SECTION_ALTERNATE_HOVER = "portlet-section-alternate-hover";
104:
105: public static final String PORTLET_SECTION_ALTERNATE_HOVER_BG = "portlet-section-alternate-hover-bg";
106:
107: public static final String PORTLET_SECTION_SELECTED = "portlet-section-selected";
108:
109: public static final String PORTLET_SECTION_SELECTED_BG = "portlet-section-selected-bg";
110:
111: public static final String PORTLET_SECTION_SELECTED_HOVER = "portlet-section-selected-hover";
112:
113: public static final String PORTLET_SECTION_SELECTED_HOVER_BG = "portlet-section-selected-hover-bg";
114:
115: public static String getDefaultRegularColorSchemeId() {
116: return PropsValues.DEFAULT_REGULAR_COLOR_SCHEME_ID;
117: }
118:
119: public static String getDefaultWapColorSchemeId() {
120: return PropsValues.DEFAULT_WAP_COLOR_SCHEME_ID;
121: }
122:
123: public static ColorScheme getNullColorScheme() {
124: return new ColorSchemeImpl(getDefaultRegularColorSchemeId(),
125: StringPool.BLANK, StringPool.BLANK);
126: }
127:
128: public ColorSchemeImpl() {
129: }
130:
131: public ColorSchemeImpl(String colorSchemeId) {
132: _colorSchemeId = colorSchemeId;
133: }
134:
135: public ColorSchemeImpl(String colorSchemeId, String name,
136: String cssClass) {
137: _colorSchemeId = colorSchemeId;
138: _name = name;
139: _cssClass = cssClass;
140: }
141:
142: public String getColorSchemeId() {
143: return _colorSchemeId;
144: }
145:
146: public String getName() {
147: if (Validator.isNull(_name)) {
148: return _colorSchemeId;
149: } else {
150: return _name;
151: }
152: }
153:
154: public void setName(String name) {
155: _name = name;
156: }
157:
158: public boolean getDefaultCs() {
159: return _defaultCs;
160: }
161:
162: public boolean isDefaultCs() {
163: return _defaultCs;
164: }
165:
166: public void setDefaultCs(boolean defaultCs) {
167: _defaultCs = defaultCs;
168: }
169:
170: public String getCssClass() {
171: return _cssClass;
172: }
173:
174: public void setCssClass(String cssClass) {
175: _cssClass = cssClass;
176: }
177:
178: public String getColorSchemeImagesPath() {
179: return _colorSchemeImagesPath;
180: }
181:
182: public void setColorSchemeImagesPath(String colorSchemeImagesPath) {
183: _colorSchemeImagesPath = colorSchemeImagesPath;
184: }
185:
186: public String getSettings() {
187: return PropertiesUtil.toString(_settingsProperties);
188: }
189:
190: public void setSettings(String settings) {
191: _settingsProperties.clear();
192:
193: try {
194: PropertiesUtil.load(_settingsProperties, settings);
195: PropertiesUtil.trimKeys(_settingsProperties);
196: } catch (IOException ioe) {
197: _log.error(ioe);
198: }
199: }
200:
201: public Properties getSettingsProperties() {
202: return _settingsProperties;
203: }
204:
205: public void setSettingsProperties(Properties settingsProperties) {
206: _settingsProperties = settingsProperties;
207: }
208:
209: public String getSetting(String key) {
210: //return _settingsProperties.getProperty(key);
211:
212: // FIX ME
213:
214: if (key.endsWith("-bg")) {
215: return "#FFFFFF";
216: } else {
217: return "#000000";
218: }
219: }
220:
221: public String getBodyBg() {
222: return getSetting(BODY_BG);
223: }
224:
225: public String getLayoutBg() {
226: return getSetting(LAYOUT_BG);
227: }
228:
229: public String getLayoutText() {
230: return getSetting(LAYOUT_TEXT);
231: }
232:
233: public String getLayoutTabBg() {
234: return getSetting(LAYOUT_TAB_BG);
235: }
236:
237: public String getLayoutTabText() {
238: return getSetting(LAYOUT_TAB_TEXT);
239: }
240:
241: public String getLayoutTabSelectedBg() {
242: return getSetting(LAYOUT_TAB_SELECTED_BG);
243: }
244:
245: public String getLayoutTabSelectedText() {
246: return getSetting(LAYOUT_TAB_SELECTED_TEXT);
247: }
248:
249: public String getPortletTitleBg() {
250: return getSetting(PORTLET_TITLE_BG);
251: }
252:
253: public String getPortletTitleText() {
254: return getSetting(PORTLET_TITLE_TEXT);
255: }
256:
257: public String getPortletMenuBg() {
258: return getSetting(PORTLET_MENU_BG);
259: }
260:
261: public String getPortletMenuText() {
262: return getSetting(PORTLET_MENU_TEXT);
263: }
264:
265: public String getPortletBg() {
266: return getSetting(PORTLET_BG);
267: }
268:
269: public String getPortletFont() {
270: return getSetting(PORTLET_FONT);
271: }
272:
273: public String getPortletFontDim() {
274: return getSetting(PORTLET_FONT_DIM);
275: }
276:
277: public String getPortletMsgStatus() {
278: return getSetting(PORTLET_MSG_STATUS);
279: }
280:
281: public String getPortletMsgInfo() {
282: return getSetting(PORTLET_MSG_INFO);
283: }
284:
285: public String getPortletMsgError() {
286: return getSetting(PORTLET_MSG_ERROR);
287: }
288:
289: public String getPortletMsgAlert() {
290: return getSetting(PORTLET_MSG_ALERT);
291: }
292:
293: public String getPortletMsgSuccess() {
294: return getSetting(PORTLET_MSG_SUCCESS);
295: }
296:
297: public String getPortletSectionHeader() {
298: return getSetting(PORTLET_SECTION_HEADER);
299: }
300:
301: public String getPortletSectionHeaderBg() {
302: return getSetting(PORTLET_SECTION_HEADER_BG);
303: }
304:
305: public String getPortletSectionSubheader() {
306: return getSetting(PORTLET_SECTION_SUBHEADER);
307: }
308:
309: public String getPortletSectionSubheaderBg() {
310: return getSetting(PORTLET_SECTION_SUBHEADER_BG);
311: }
312:
313: public String getPortletSectionBody() {
314: return getSetting(PORTLET_SECTION_BODY);
315: }
316:
317: public String getPortletSectionBodyBg() {
318: return getSetting(PORTLET_SECTION_BODY_BG);
319: }
320:
321: public String getPortletSectionBodyHover() {
322: return getSetting(PORTLET_SECTION_BODY_HOVER);
323: }
324:
325: public String getPortletSectionBodyHoverBg() {
326: return getSetting(PORTLET_SECTION_BODY_HOVER_BG);
327: }
328:
329: public String getPortletSectionAlternate() {
330: return getSetting(PORTLET_SECTION_ALTERNATE);
331: }
332:
333: public String getPortletSectionAlternateBg() {
334: return getSetting(PORTLET_SECTION_ALTERNATE_BG);
335: }
336:
337: public String getPortletSectionAlternateHover() {
338: return getSetting(PORTLET_SECTION_ALTERNATE_HOVER);
339: }
340:
341: public String getPortletSectionAlternateHoverBg() {
342: return getSetting(PORTLET_SECTION_ALTERNATE_HOVER_BG);
343: }
344:
345: public String getPortletSectionSelected() {
346: return getSetting(PORTLET_SECTION_SELECTED);
347: }
348:
349: public String getPortletSectionSelectedBg() {
350: return getSetting(PORTLET_SECTION_SELECTED_BG);
351: }
352:
353: public String getPortletSectionSelectedHover() {
354: return getSetting(PORTLET_SECTION_SELECTED_HOVER);
355: }
356:
357: public String getPortletSectionSelectedHoverBg() {
358: return getSetting(PORTLET_SECTION_SELECTED_HOVER_BG);
359: }
360:
361: public int compareTo(Object obj) {
362: if (obj == null) {
363: return -1;
364: }
365:
366: ColorScheme colorScheme = (ColorScheme) obj;
367:
368: return getName().compareTo(colorScheme.getName());
369: }
370:
371: public boolean equals(Object obj) {
372: if (obj == null) {
373: return false;
374: }
375:
376: ColorScheme colorScheme = null;
377:
378: try {
379: colorScheme = (ColorScheme) obj;
380: } catch (ClassCastException cce) {
381: return false;
382: }
383:
384: String colorSchemeId = colorScheme.getColorSchemeId();
385:
386: if (getColorSchemeId().equals(colorSchemeId)) {
387: return true;
388: } else {
389: return false;
390: }
391: }
392:
393: private static Log _log = LogFactory.getLog(ColorScheme.class);
394:
395: private String _colorSchemeId;
396: private String _name;
397: private String _cssClass;
398: private String _colorSchemeImagesPath = "${images-path}/color_schemes/${css-class}";
399: private boolean _defaultCs;
400: private Properties _settingsProperties = new NullSafeProperties();
401:
402: }
|