001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.util.PropsKeys;
021 import com.liferay.portal.kernel.util.StringPool;
022 import com.liferay.portal.kernel.util.UnicodeProperties;
023 import com.liferay.portal.kernel.util.Validator;
024 import com.liferay.portal.model.CacheField;
025 import com.liferay.portal.model.ColorScheme;
026 import com.liferay.portal.model.Company;
027 import com.liferay.portal.model.Group;
028 import com.liferay.portal.model.LayoutSet;
029 import com.liferay.portal.model.LayoutSetPrototype;
030 import com.liferay.portal.model.Theme;
031 import com.liferay.portal.model.VirtualHost;
032 import com.liferay.portal.service.CompanyLocalServiceUtil;
033 import com.liferay.portal.service.GroupLocalServiceUtil;
034 import com.liferay.portal.service.LayoutSetPrototypeLocalServiceUtil;
035 import com.liferay.portal.service.ThemeLocalServiceUtil;
036 import com.liferay.portal.service.VirtualHostLocalServiceUtil;
037 import com.liferay.portal.util.PrefsPropsUtil;
038 import com.liferay.portal.util.PropsValues;
039
040 import java.io.IOException;
041
042
054 public class LayoutSetImpl extends LayoutSetBaseImpl {
055
056
067 @Override
068 public ColorScheme getColorScheme() {
069 return ThemeLocalServiceUtil.getColorScheme(
070 getCompanyId(), getTheme().getThemeId(), getColorSchemeId(), false);
071 }
072
073 @Override
074 public String getCompanyFallbackVirtualHostname() {
075 if (_companyFallbackVirtualHostname != null) {
076 return _companyFallbackVirtualHostname;
077 }
078
079 _companyFallbackVirtualHostname = StringPool.BLANK;
080
081 if (Validator.isNotNull(
082 PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME) &&
083 !isPrivateLayout()) {
084
085 Group group = GroupLocalServiceUtil.fetchGroup(
086 getCompanyId(), PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME);
087
088 if ((group != null) && (getGroupId() == group.getGroupId())) {
089 Company company = CompanyLocalServiceUtil.fetchCompany(
090 getCompanyId());
091
092 if (company != null) {
093 _companyFallbackVirtualHostname =
094 company.getVirtualHostname();
095 }
096 }
097 }
098
099 return _companyFallbackVirtualHostname;
100 }
101
102
109 @Override
110 public Group getGroup() throws PortalException {
111 return GroupLocalServiceUtil.getGroup(getGroupId());
112 }
113
114
127 @Override
128 public long getLayoutSetPrototypeId() throws PortalException {
129 String layoutSetPrototypeUuid = getLayoutSetPrototypeUuid();
130
131 if (Validator.isNull(layoutSetPrototypeUuid)) {
132 return 0;
133 }
134
135 LayoutSetPrototype layoutSetPrototype =
136 LayoutSetPrototypeLocalServiceUtil.
137 getLayoutSetPrototypeByUuidAndCompanyId(
138 layoutSetPrototypeUuid, getCompanyId());
139
140 return layoutSetPrototype.getLayoutSetPrototypeId();
141 }
142
143 @Override
144 public long getLiveLogoId() {
145 long logoId = 0;
146
147 Group group = null;
148
149 try {
150 group = getGroup();
151
152 if (!group.isStagingGroup()) {
153 return logoId;
154 }
155 }
156 catch (Exception e) {
157 return logoId;
158 }
159
160 Group liveGroup = group.getLiveGroup();
161
162 LayoutSet liveLayoutSet = null;
163
164 if (isPrivateLayout()) {
165 liveLayoutSet = liveGroup.getPrivateLayoutSet();
166 }
167 else {
168 liveLayoutSet = liveGroup.getPublicLayoutSet();
169 }
170
171 return liveLayoutSet.getLogoId();
172 }
173
174 @Override
175 public boolean getLogo() {
176 if (getLogoId() > 0) {
177 return true;
178 }
179
180 return false;
181 }
182
183 @Override
184 public String getSettings() {
185 if (_settingsProperties == null) {
186 return super.getSettings();
187 }
188 else {
189 return _settingsProperties.toString();
190 }
191 }
192
193 @Override
194 public UnicodeProperties getSettingsProperties() {
195 if (_settingsProperties == null) {
196 _settingsProperties = new UnicodeProperties(true);
197
198 try {
199 _settingsProperties.load(super.getSettings());
200 }
201 catch (IOException ioe) {
202 _log.error(ioe, ioe);
203 }
204 }
205
206 return _settingsProperties;
207 }
208
209 @Override
210 public String getSettingsProperty(String key) {
211 UnicodeProperties settingsProperties = getSettingsProperties();
212
213 return settingsProperties.getProperty(key);
214 }
215
216 @Override
217 public Theme getTheme() {
218 return ThemeLocalServiceUtil.getTheme(
219 getCompanyId(), getThemeId(), false);
220 }
221
222 @Override
223 public String getThemeSetting(String key, String device) {
224 UnicodeProperties settingsProperties = getSettingsProperties();
225
226 String value = settingsProperties.getProperty(
227 ThemeSettingImpl.namespaceProperty(device, key));
228
229 if (value != null) {
230 return value;
231 }
232
233 Theme theme = getTheme(device);
234
235 value = theme.getSetting(key);
236
237 return value;
238 }
239
240
251 @Override
252 public String getVirtualHostname() {
253 if (_virtualHostname != null) {
254 return _virtualHostname;
255 }
256
257 VirtualHost virtualHost = VirtualHostLocalServiceUtil.fetchVirtualHost(
258 getCompanyId(), getLayoutSetId());
259
260 if (virtualHost == null) {
261 _virtualHostname = StringPool.BLANK;
262 }
263 else {
264 _virtualHostname = virtualHost.getHostname();
265 }
266
267 return _virtualHostname;
268 }
269
270 @Override
271 public ColorScheme getWapColorScheme() {
272 return ThemeLocalServiceUtil.getColorScheme(
273 getCompanyId(), getWapTheme().getThemeId(), getWapColorSchemeId(),
274 true);
275 }
276
277 @Override
278 public Theme getWapTheme() {
279 return ThemeLocalServiceUtil.getTheme(
280 getCompanyId(), getWapThemeId(), true);
281 }
282
283 @Override
284 public boolean isLayoutSetPrototypeLinkActive() {
285 if (isLayoutSetPrototypeLinkEnabled() &&
286 Validator.isNotNull(getLayoutSetPrototypeUuid())) {
287
288 return true;
289 }
290
291 return false;
292 }
293
294 @Override
295 public boolean isLogo() {
296 return getLogo();
297 }
298
299 @Override
300 public void setCompanyFallbackVirtualHostname(
301 String companyFallbackVirtualHostname) {
302
303 _companyFallbackVirtualHostname = companyFallbackVirtualHostname;
304 }
305
306 @Override
307 public void setSettings(String settings) {
308 _settingsProperties = null;
309
310 super.setSettings(settings);
311 }
312
313 @Override
314 public void setSettingsProperties(UnicodeProperties settingsProperties) {
315 _settingsProperties = settingsProperties;
316
317 super.setSettings(_settingsProperties.toString());
318 }
319
320
326 @Override
327 public void setVirtualHostname(String virtualHostname) {
328 _virtualHostname = virtualHostname;
329 }
330
331 protected Theme getTheme(String device) {
332 boolean controlPanel = false;
333
334 try {
335 Group group = getGroup();
336
337 controlPanel = group.isControlPanel();
338 }
339 catch (Exception e) {
340 }
341
342 if (controlPanel) {
343 String themeId = PrefsPropsUtil.getString(
344 getCompanyId(),
345 PropsKeys.CONTROL_PANEL_LAYOUT_REGULAR_THEME_ID);
346
347 return ThemeLocalServiceUtil.getTheme(
348 getCompanyId(), themeId, !device.equals("regular"));
349 }
350 else if (device.equals("regular")) {
351 return getTheme();
352 }
353 else {
354 return getWapTheme();
355 }
356 }
357
358 private static final Log _log = LogFactoryUtil.getLog(LayoutSetImpl.class);
359
360 @CacheField
361 private String _companyFallbackVirtualHostname;
362
363 private UnicodeProperties _settingsProperties;
364
365 @CacheField
366 private String _virtualHostname;
367
368 }