001    /**
002     * Copyright (c) 2000-2011 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.theme;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.language.LanguageUtil;
020    import com.liferay.portal.kernel.log.Log;
021    import com.liferay.portal.kernel.log.LogFactoryUtil;
022    import com.liferay.portal.kernel.mobile.device.Device;
023    import com.liferay.portal.kernel.staging.StagingUtil;
024    import com.liferay.portal.kernel.util.Http;
025    import com.liferay.portal.kernel.util.LocaleThreadLocal;
026    import com.liferay.portal.kernel.util.StringPool;
027    import com.liferay.portal.kernel.util.TimeZoneThreadLocal;
028    import com.liferay.portal.kernel.util.Validator;
029    import com.liferay.portal.model.Account;
030    import com.liferay.portal.model.ColorScheme;
031    import com.liferay.portal.model.Company;
032    import com.liferay.portal.model.Contact;
033    import com.liferay.portal.model.Group;
034    import com.liferay.portal.model.Layout;
035    import com.liferay.portal.model.LayoutSet;
036    import com.liferay.portal.model.LayoutTypePortlet;
037    import com.liferay.portal.model.Theme;
038    import com.liferay.portal.model.ThemeSetting;
039    import com.liferay.portal.model.User;
040    import com.liferay.portal.security.permission.PermissionChecker;
041    import com.liferay.portal.service.GroupLocalServiceUtil;
042    import com.liferay.portal.service.LayoutLocalServiceUtil;
043    import com.liferay.portlet.mobiledevicerules.model.MDRRuleGroupInstance;
044    
045    import java.io.Serializable;
046    
047    import java.util.List;
048    import java.util.Locale;
049    import java.util.Map;
050    import java.util.Properties;
051    import java.util.TimeZone;
052    
053    import javax.portlet.PortletURL;
054    
055    /**
056     * @author Brian Wing Shun Chan
057     */
058    public class ThemeDisplay implements Serializable {
059    
060            public ThemeDisplay() {
061                    if (_log.isDebugEnabled()) {
062                            _log.debug("Creating new instance " + hashCode());
063                    }
064    
065                    _portletDisplay.setThemeDisplay(this);
066            }
067    
068            public Account getAccount() {
069                    return _account;
070            }
071    
072            public String getCDNHost() {
073                    return _cdnHost;
074            }
075    
076            public ColorScheme getColorScheme() {
077                    return _colorScheme;
078            }
079    
080            public String getColorSchemeId() {
081                    return _colorScheme.getColorSchemeId();
082            }
083    
084            public Company getCompany() {
085                    return _company;
086            }
087    
088            public long getCompanyGroupId() {
089                    return _companyGroupId;
090            }
091    
092            public long getCompanyId() {
093                    return _company.getCompanyId();
094            }
095    
096            public String getCompanyLogo() {
097                    return _companyLogo;
098            }
099    
100            public int getCompanyLogoHeight() {
101                    return _companyLogoHeight;
102            }
103    
104            public int getCompanyLogoWidth() {
105                    return _companyLogoWidth;
106            }
107    
108            public Contact getContact() {
109                    return _contact;
110            }
111    
112            public String getControlPanelCategory() {
113                    return _controlPanelCategory;
114            }
115    
116            public User getDefaultUser() throws PortalException, SystemException {
117                    if (_defaultUser == null) {
118                            _defaultUser = _company.getDefaultUser();
119                    }
120    
121                    return _defaultUser;
122            }
123    
124            public long getDefaultUserId() throws PortalException, SystemException {
125                    return getDefaultUser().getUserId();
126            }
127    
128            public Device getDevice() {
129                    return _device;
130            }
131    
132            public long getDoAsGroupId() {
133                    return _doAsGroupId;
134            }
135    
136            public String getDoAsUserId() {
137                    return _doAsUserId;
138            }
139    
140            public String getDoAsUserLanguageId() {
141                    return _doAsUserLanguageId;
142            }
143    
144            public String getFacebookCanvasPageURL() {
145                    return _facebookCanvasPageURL;
146            }
147    
148            public String getI18nLanguageId() {
149                    return _i18nLanguageId;
150            }
151    
152            public String getI18nPath() {
153                    return _i18nPath;
154            }
155    
156            public String getLanguageId() {
157                    return _languageId;
158            }
159    
160            public Layout getLayout() {
161                    return _layout;
162            }
163    
164            public List<Layout> getLayouts() {
165                    return _layouts;
166            }
167    
168            public LayoutSet getLayoutSet() {
169                    return _layoutSet;
170            }
171    
172            public String getLayoutSetLogo() {
173                    return _layoutSetLogo;
174            }
175    
176            public LayoutTypePortlet getLayoutTypePortlet() {
177                    return _layoutTypePortlet;
178            }
179    
180            public String getLifecycle() {
181                    return _lifecycle;
182            }
183    
184            public Locale getLocale() {
185                    return _locale;
186            }
187    
188            public MDRRuleGroupInstance getMDRRuleGroupInstance() {
189                    return _mdrRuleGroupInstance;
190            }
191    
192            public Group getParentGroup() {
193                    return _parentGroup;
194            }
195    
196            public long getParentGroupId() {
197                    return _parentGroupId;
198            }
199    
200            public String getParentGroupName() throws PortalException, SystemException {
201                    if (_parentGroup == null) {
202                            return StringPool.BLANK;
203                    }
204                    else {
205                            return _parentGroup.getDescriptiveName();
206                    }
207            }
208    
209            public String getPathApplet() {
210                    return _pathApplet;
211            }
212    
213            public String getPathCms() {
214                    return _pathCms;
215            }
216    
217            public String getPathColorSchemeImages() {
218                    return _pathColorSchemeImages;
219            }
220    
221            public String getPathContext() {
222                    return _pathContext;
223            }
224    
225            public String getPathFlash() {
226                    return _pathFlash;
227            }
228    
229            public String getPathFriendlyURLPrivateGroup() {
230                    return _pathFriendlyURLPrivateGroup;
231            }
232    
233            public String getPathFriendlyURLPrivateUser() {
234                    return _pathFriendlyURLPrivateUser;
235            }
236    
237            public String getPathFriendlyURLPublic() {
238                    return _pathFriendlyURLPublic;
239            }
240    
241            public String getPathImage() {
242                    return _pathImage;
243            }
244    
245            public String getPathJavaScript() {
246                    return _pathJavaScript;
247            }
248    
249            public String getPathMain() {
250                    return _pathMain;
251            }
252    
253            public String getPathSound() {
254                    return _pathSound;
255            }
256    
257            public String getPathThemeCss() {
258                    return _pathThemeCss;
259            }
260    
261            /**
262             * @deprecated Use <code>getPathThemeImages</code>.
263             */
264            public String getPathThemeImage() {
265                    return getPathThemeImages();
266            }
267    
268            public String getPathThemeImages() {
269                    return _pathThemeImages;
270            }
271    
272            public String getPathThemeJavaScript() {
273                    return _pathThemeJavaScript;
274            }
275    
276            public String getPathThemeRoot() {
277                    return _pathThemeRoot;
278            }
279    
280            public String getPathThemeTemplates() {
281                    return _pathThemeTemplates;
282            }
283    
284            public PermissionChecker getPermissionChecker() {
285                    return _permissionChecker;
286            }
287    
288            public long getPlid() {
289                    return _plid;
290            }
291    
292            public String getPortalURL() {
293                    return _portalURL;
294            }
295    
296            public PortletDisplay getPortletDisplay() {
297                    return _portletDisplay;
298            }
299    
300            /**
301             * @deprecated Use <code>getScopeGroupId</code>.
302             */
303            public long getPortletGroupId() {
304                    return getScopeGroupId();
305            }
306    
307            public String getRealCompanyLogo() {
308                    return _realCompanyLogo;
309            }
310    
311            public int getRealCompanyLogoHeight() {
312                    return _realCompanyLogoHeight;
313            }
314    
315            public int getRealCompanyLogoWidth() {
316                    return _realCompanyLogoWidth;
317            }
318    
319            public User getRealUser() {
320                    return _realUser;
321            }
322    
323            public long getRealUserId() {
324                    return _realUser.getUserId();
325            }
326    
327            public long getRefererPlid() {
328                    return _refererPlid;
329            }
330    
331            public Group getScopeGroup() {
332                    return _scopeGroup;
333            }
334    
335            public long getScopeGroupId() {
336                    return _scopeGroupId;
337            }
338    
339            public String getScopeGroupName() throws PortalException, SystemException {
340                    if (_scopeGroup == null) {
341                            return StringPool.BLANK;
342                    }
343                    else {
344                            return _scopeGroup.getDescriptiveName();
345                    }
346            }
347    
348            public long getScopeGroupIdOrLiveGroupId()
349                    throws PortalException, SystemException {
350    
351                    return StagingUtil.getLiveGroupId(_scopeGroupId);
352            }
353    
354            public Layout getScopeLayout() throws PortalException, SystemException {
355                    if (_layout.hasScopeGroup()) {
356                            return _layout;
357                    }
358                    else if (_scopeGroup.isLayout()) {
359                            return LayoutLocalServiceUtil.getLayout(_scopeGroup.getClassPK());
360                    }
361                    else {
362                            return null;
363                    }
364            }
365    
366            public String getServerName() {
367                    return _serverName;
368            }
369    
370            public int getServerPort() {
371                    return _serverPort;
372            }
373    
374            public String getSessionId() {
375                    return _sessionId;
376            }
377    
378            public Theme getTheme() {
379                    return _theme;
380            }
381    
382            public String getThemeId() {
383                    return _theme.getThemeId();
384            }
385    
386            public String getThemeSetting(String key) {
387                    Theme theme = getTheme();
388    
389                    String device = theme.getDevice();
390    
391                    Layout layout = getLayout();
392    
393                    return layout.getThemeSetting(key, device);
394            }
395    
396            public Properties getThemeSettings() {
397                    Theme theme = getTheme();
398    
399                    Properties properties = new Properties();
400    
401                    Map<String, ThemeSetting> themeSettings = theme.getSettings();
402    
403                    for (String key : themeSettings.keySet()) {
404                            ThemeSetting themeSetting = themeSettings.get(key);
405    
406                            String value = null;
407    
408                            if (themeSetting.isConfigurable()) {
409                                    value = getThemeSetting(key);
410                            }
411                            else {
412                                    value = themeSetting.getValue();
413                            }
414    
415                            if (value != null) {
416                                    properties.put(key, value);
417                            }
418                    }
419    
420                    return properties;
421            }
422    
423            public String getTilesContent() {
424                    return _tilesContent;
425            }
426    
427            public String getTilesTitle() {
428                    return _tilesTitle;
429            }
430    
431            public TimeZone getTimeZone() {
432                    return _timeZone;
433            }
434    
435            public List<Layout> getUnfilteredLayouts() {
436                    return _unfilteredLayouts;
437            }
438    
439            public String getURLAddContent() {
440                    return _urlAddContent;
441            }
442    
443            public String getURLControlPanel() {
444                    return _urlControlPanel;
445            }
446    
447            public String getURLCurrent() {
448                    return _urlCurrent;
449            }
450    
451            public String getURLHome() {
452                    return _urlHome;
453            }
454    
455            public String getURLLayoutTemplates() {
456                    return _urlLayoutTemplates;
457            }
458    
459            public PortletURL getURLManageSiteMemberships() {
460                    return _urlManageSiteMemberships;
461            }
462    
463            public PortletURL getURLMyAccount() {
464                    return _urlMyAccount;
465            }
466    
467            public PortletURL getURLPageSettings() {
468                    return _urlPageSettings;
469            }
470    
471            public String getURLPortal() {
472                    return _urlPortal;
473            }
474    
475            public PortletURL getURLPublishToLive() {
476                    return _urlPublishToLive;
477            }
478    
479            public String getURLSignIn() {
480                    return _urlSignIn;
481            }
482    
483            public String getURLSignOut() {
484                    return _urlSignOut;
485            }
486    
487            public String getURLSiteContent() {
488                    return _urlSiteContent;
489            }
490    
491            public PortletURL getURLSiteMapSettings() {
492                    return _urlSiteMapSettings;
493            }
494    
495            public PortletURL getURLSiteSettings() {
496                    return _urlSiteSettings;
497            }
498    
499            public PortletURL getURLUpdateManager() {
500                    return _urlUpdateManager;
501            }
502    
503            public User getUser() {
504                    return _user;
505            }
506    
507            public long getUserId() {
508                    return _user.getUserId();
509            }
510    
511            public boolean isAddSessionIdToURL() {
512                    return _addSessionIdToURL;
513            }
514    
515            public boolean isFacebook() {
516                    return _facebook;
517            }
518    
519            public boolean isFreeformLayout() {
520                    return _freeformLayout;
521            }
522    
523            public boolean isI18n() {
524                    return _i18n;
525            }
526    
527            public boolean isImpersonated() {
528                    if (getUserId() == getRealUserId()) {
529                            return false;
530                    }
531                    else {
532                            return true;
533                    }
534            }
535    
536            public boolean isIncludedJs(String js) {
537                    String path = getPathJavaScript();
538    
539                    if (isIncludePortletCssJs() &&
540                            js.startsWith(path + "/liferay/portlet_css.js")) {
541    
542                            return true;
543                    }
544                    else if (isIncludeServiceJs() &&
545                                     js.startsWith(path + "/liferay/service.js")) {
546    
547                            return true;
548                    }
549                    else {
550                            return false;
551                    }
552            }
553    
554            public boolean isIncludePortletCssJs() {
555                    return _includePortletCssJs;
556            }
557    
558            public boolean isIncludeServiceJs() {
559                    return _includeServiceJs;
560            }
561    
562            public boolean isIsolated() {
563                    return _isolated;
564            }
565    
566            public boolean isLifecycleAction() {
567                    return _lifecycleAction;
568            }
569    
570            public boolean isLifecycleRender() {
571                    return _lifecycleRender;
572            }
573    
574            public boolean isLifecycleResource() {
575                    return _lifecycleResource;
576            }
577    
578            public boolean isSecure() {
579                    return _secure;
580            }
581    
582            public boolean isShowAddContentIcon() {
583                    return _showAddContentIcon;
584            }
585    
586            public boolean isShowAddContentIconPermission() {
587                    return _showAddContentIconPermission;
588            }
589    
590            public boolean isShowControlPanelIcon() {
591                    return _showControlPanelIcon;
592            }
593    
594            public boolean isShowHomeIcon() {
595                    return _showHomeIcon;
596            }
597    
598            public boolean isShowLayoutTemplatesIcon() {
599                    return _showLayoutTemplatesIcon;
600            }
601    
602            public boolean isShowManageSiteMembershipsIcon() {
603                    return _showManageSiteMembershipsIcon;
604            }
605    
606            public boolean isShowMyAccountIcon() {
607                    return _showMyAccountIcon;
608            }
609    
610            public boolean isShowPageCustomizationIcon() {
611                    return _showPageCustomizationIcon;
612            }
613    
614            public boolean isShowPageSettingsIcon() {
615                    return _showPageSettingsIcon;
616            }
617    
618            public boolean isShowPortalIcon() {
619                    return _showPortalIcon;
620            }
621    
622            public boolean isShowSignInIcon() {
623                    return _showSignInIcon;
624            }
625    
626            public boolean isShowSignOutIcon() {
627                    return _showSignOutIcon;
628            }
629    
630            public boolean isShowSiteContentIcon() {
631                    return _showSiteContentIcon;
632            }
633    
634            public boolean isShowSiteMapSettingsIcon() {
635                    return _showSiteMapSettingsIcon;
636            }
637    
638            public boolean isShowSiteSettingsIcon() {
639                    return _showSiteSettingsIcon;
640            }
641    
642            public boolean isShowStagingIcon() {
643                    return _showStagingIcon;
644            }
645    
646            public boolean isSignedIn() {
647                    return _signedIn;
648            }
649    
650            public boolean isStateExclusive() {
651                    return _stateExclusive;
652            }
653    
654            public boolean isStateMaximized() {
655                    return _stateMaximized;
656            }
657    
658            public boolean isStatePopUp() {
659                    return _statePopUp;
660            }
661    
662            public boolean isThemeCssFastLoad() {
663                    return _themeCssFastLoad;
664            }
665    
666            public boolean isThemeImagesFastLoad() {
667                    return _themeImagesFastLoad;
668            }
669    
670            public boolean isThemeJsBarebone() {
671                    return _themeJsBarebone;
672            }
673    
674            public boolean isThemeJsFastLoad() {
675                    return _themeJsFastLoad;
676            }
677    
678            public boolean isTilesSelectable() {
679                    return _tilesSelectable;
680            }
681    
682            public boolean isWapTheme() {
683                    return _theme.isWapTheme();
684            }
685    
686            public boolean isWidget() {
687                    return _widget;
688            }
689    
690            public void setAccount(Account account) {
691                    _account = account;
692            }
693    
694            public void setAddSessionIdToURL(boolean addSessionIdToURL) {
695                    _addSessionIdToURL = addSessionIdToURL;
696            }
697    
698            public void setCDNHost(String cdnHost) {
699                    _cdnHost = cdnHost;
700            }
701    
702            public void setCompany(Company company)
703                    throws PortalException, SystemException {
704    
705                    _company = company;
706                    _companyGroupId = company.getGroup().getGroupId();
707    
708                    setAccount(company.getAccount());
709            }
710    
711            public void setCompanyLogo(String companyLogo) {
712                    _companyLogo = companyLogo;
713            }
714    
715            public void setCompanyLogoHeight(int companyLogoHeight) {
716                    _companyLogoHeight = companyLogoHeight;
717            }
718    
719            public void setCompanyLogoWidth(int companyLogoWidth) {
720                    _companyLogoWidth = companyLogoWidth;
721            }
722    
723            public void setContact(Contact contact) {
724                    _contact = contact;
725            }
726    
727            public void setControlPanelCategory(String controlPanelCategory) {
728                    _controlPanelCategory = controlPanelCategory;
729            }
730    
731            public void setDevice(Device device) {
732                    _device = device;
733            }
734    
735            public void setDoAsGroupId(long doAsGroupId) {
736                    _doAsGroupId = doAsGroupId;
737            }
738    
739            public void setDoAsUserId(String doAsUserId) {
740                    _doAsUserId = doAsUserId;
741            }
742    
743            public void setDoAsUserLanguageId(String doAsUserLanguageId) {
744                    _doAsUserLanguageId = doAsUserLanguageId;
745            }
746    
747            public void setFacebookCanvasPageURL(String facebookCanvasPageURL) {
748                    _facebookCanvasPageURL = facebookCanvasPageURL;
749    
750                    if (Validator.isNotNull(facebookCanvasPageURL)) {
751                            _facebook = true;
752                    }
753            }
754    
755            public void setFreeformLayout(boolean freeformLayout) {
756                    _freeformLayout = freeformLayout;
757            }
758    
759            public void setI18nLanguageId(String i18nLanguageId) {
760                    _i18nLanguageId = i18nLanguageId;
761    
762                    if (Validator.isNotNull(i18nLanguageId)) {
763                            _i18n = true;
764                    }
765                    else {
766                            _i18n = false;
767                    }
768            }
769    
770            public void setI18nPath(String i18nPath) {
771                    _i18nPath = i18nPath;
772    
773                    if (Validator.isNotNull(i18nPath)) {
774                            _i18n = true;
775                    }
776                    else {
777                            _i18n = false;
778                    }
779            }
780    
781            public void setIncludePortletCssJs(boolean includePortletCssJs) {
782                    _includePortletCssJs = includePortletCssJs;
783            }
784    
785            public void setIncludeServiceJs(boolean includeServiceJs) {
786                    _includeServiceJs = includeServiceJs;
787            }
788    
789            public void setIsolated(boolean isolated) {
790                    _isolated = isolated;
791            }
792    
793            public void setLanguageId(String languageId) {
794                    _languageId = languageId;
795            }
796    
797            public void setLayout(Layout layout) {
798                    _layout = layout;
799            }
800    
801            public void setLayouts(List<Layout> layouts) {
802                    _layouts = layouts;
803            }
804    
805            public void setLayoutSet(LayoutSet layoutSet) {
806                    _layoutSet = layoutSet;
807            }
808    
809            public void setLayoutSetLogo(String layoutSetLogo) {
810                    _layoutSetLogo = layoutSetLogo;
811            }
812    
813            public void setLayoutTypePortlet(LayoutTypePortlet layoutTypePortlet) {
814                    _layoutTypePortlet = layoutTypePortlet;
815            }
816    
817            public void setLifecycle(String lifecycle) {
818                    _lifecycle = lifecycle;
819            }
820    
821            public void setLifecycleAction(boolean lifecycleAction) {
822                    _lifecycleAction = lifecycleAction;
823            }
824    
825            public void setLifecycleRender(boolean lifecycleRender) {
826                    _lifecycleRender = lifecycleRender;
827            }
828    
829            public void setLifecycleResource(boolean lifecycleResource) {
830                    _lifecycleResource = lifecycleResource;
831            }
832    
833            public void setLocale(Locale locale) {
834                    _locale = locale;
835    
836                    LocaleThreadLocal.setThemeDisplayLocale(locale);
837            }
838    
839            public void setLookAndFeel(Theme theme, ColorScheme colorScheme) {
840                    _theme = theme;
841                    _colorScheme = colorScheme;
842    
843                    if ((theme != null) && (colorScheme != null)) {
844                            String themeStaticResourcePath = theme.getStaticResourcePath();
845    
846                            String host = getCDNHost();
847    
848                            if (Validator.isNull(host) && isFacebook()) {
849                                    host = getPortalURL();
850                            }
851    
852                            setPathColorSchemeImages(
853                                    host + themeStaticResourcePath +
854                                            colorScheme.getColorSchemeImagesPath());
855    
856                            setPathThemeCss(
857                                    host + themeStaticResourcePath + theme.getCssPath());
858                            setPathThemeImages(
859                                    host + themeStaticResourcePath + theme.getImagesPath());
860                            setPathThemeJavaScript(
861                                    host + themeStaticResourcePath + theme.getJavaScriptPath());
862                            setPathThemeRoot(themeStaticResourcePath + theme.getRootPath());
863                            setPathThemeTemplates(
864                                    host + themeStaticResourcePath + theme.getTemplatesPath());
865                    }
866            }
867    
868            public void setMDRRuleGroupInstance(
869                    MDRRuleGroupInstance mdrRuleGroupInstance) {
870    
871                    _mdrRuleGroupInstance = mdrRuleGroupInstance;
872            }
873    
874            public void setParentGroupId(long parentGroupId) {
875                    _parentGroupId = parentGroupId;
876    
877                    if (_parentGroupId > 0) {
878                            try {
879                                    _parentGroup = GroupLocalServiceUtil.getGroup(_parentGroupId);
880                            }
881                            catch (Exception e) {
882                                    _log.error(e, e);
883                            }
884                    }
885            }
886    
887            public void setPathApplet(String pathApplet) {
888                    _pathApplet = pathApplet;
889            }
890    
891            public void setPathCms(String pathCms) {
892                    _pathCms = pathCms;
893            }
894    
895            public void setPathColorSchemeImages(String pathColorSchemeImages) {
896                    _pathColorSchemeImages = pathColorSchemeImages;
897            }
898    
899            public void setPathContext(String pathContext) {
900                    _pathContext = pathContext;
901            }
902    
903            public void setPathFlash(String pathFlash) {
904                    _pathFlash = pathFlash;
905            }
906    
907            public void setPathFriendlyURLPrivateGroup(
908                    String pathFriendlyURLPrivateGroup) {
909    
910                    _pathFriendlyURLPrivateGroup = pathFriendlyURLPrivateGroup;
911            }
912    
913            public void setPathFriendlyURLPrivateUser(
914                    String pathFriendlyURLPrivateUser) {
915    
916                    _pathFriendlyURLPrivateUser = pathFriendlyURLPrivateUser;
917            }
918    
919            public void setPathFriendlyURLPublic(String pathFriendlyURLPublic) {
920                    _pathFriendlyURLPublic = pathFriendlyURLPublic;
921            }
922    
923            public void setPathImage(String pathImage) {
924                    if (isFacebook() &&
925                            !pathImage.startsWith(Http.HTTP_WITH_SLASH) &&
926                            !pathImage.startsWith(Http.HTTPS_WITH_SLASH)) {
927    
928                            pathImage = getPortalURL() + pathImage;
929                    }
930    
931                    _pathImage = pathImage;
932            }
933    
934            public void setPathJavaScript(String pathJavaScript) {
935                    _pathJavaScript = pathJavaScript;
936            }
937    
938            public void setPathMain(String pathMain) {
939                    _pathMain = pathMain;
940            }
941    
942            public void setPathSound(String pathSound) {
943                    _pathSound = pathSound;
944            }
945    
946            public void setPathThemeCss(String pathThemeCss) {
947                    _pathThemeCss = pathThemeCss;
948            }
949    
950            public void setPathThemeImages(String pathThemeImages) {
951                    _pathThemeImages = pathThemeImages;
952            }
953    
954            public void setPathThemeJavaScript(String pathThemeJavaScript) {
955                    _pathThemeJavaScript = pathThemeJavaScript;
956            }
957    
958            public void setPathThemeRoot(String pathThemeRoot) {
959                    _pathThemeRoot = pathThemeRoot;
960            }
961    
962            public void setPathThemeTemplates(String pathThemeTemplates) {
963                    _pathThemeTemplates = pathThemeTemplates;
964            }
965    
966            public void setPermissionChecker(PermissionChecker permissionChecker) {
967                    _permissionChecker = permissionChecker;
968            }
969    
970            public void setPlid(long plid) {
971                    _plid = plid;
972            }
973    
974            public void setPortalURL(String portalURL) {
975                    _portalURL = portalURL;
976            }
977    
978            public void setRealCompanyLogo(String realCompanyLogo) {
979                    _realCompanyLogo = realCompanyLogo;
980            }
981    
982            public void setRealCompanyLogoHeight(int realCompanyLogoHeight) {
983                    _realCompanyLogoHeight = realCompanyLogoHeight;
984            }
985    
986            public void setRealCompanyLogoWidth(int realCompanyLogoWidth) {
987                    _realCompanyLogoWidth = realCompanyLogoWidth;
988            }
989    
990            public void setRealUser(User realUser) {
991                    _realUser = realUser;
992            }
993    
994            public void setRefererPlid(long refererPlid) {
995                    _refererPlid = refererPlid;
996            }
997    
998            public void setScopeGroupId(long scopeGroupId) {
999                    _scopeGroupId = scopeGroupId;
1000    
1001                    if (_scopeGroupId > 0) {
1002                            try {
1003                                    _scopeGroup = GroupLocalServiceUtil.getGroup(_scopeGroupId);
1004                            }
1005                            catch (Exception e) {
1006                                    _log.error(e, e);
1007                            }
1008                    }
1009            }
1010    
1011            public void setSecure(boolean secure) {
1012                    _secure = secure;
1013            }
1014    
1015            public void setServerName(String serverName) {
1016                    _serverName = serverName;
1017            }
1018    
1019            public void setServerPort(int serverPort) {
1020                    _serverPort = serverPort;
1021            }
1022    
1023            public void setSessionId(String sessionId) {
1024                    _sessionId = sessionId;
1025            }
1026    
1027            public void setShowAddContentIcon(boolean showAddContentIcon) {
1028                    _showAddContentIcon = showAddContentIcon;
1029            }
1030    
1031            public void setShowAddContentIconPermission(
1032                    boolean showAddContentIconPermission) {
1033    
1034                    _showAddContentIconPermission = showAddContentIconPermission;
1035            }
1036    
1037            public void setShowControlPanelIcon(boolean showControlPanelIcon) {
1038                    _showControlPanelIcon = showControlPanelIcon;
1039            }
1040    
1041            public void setShowHomeIcon(boolean showHomeIcon) {
1042                    _showHomeIcon = showHomeIcon;
1043            }
1044    
1045            public void setShowLayoutTemplatesIcon(boolean showLayoutTemplatesIcon) {
1046                    _showLayoutTemplatesIcon = showLayoutTemplatesIcon;
1047            }
1048    
1049            public void setShowManageSiteMembershipsIcon(
1050                    boolean showManageSiteMembershipsIcon) {
1051    
1052                    _showManageSiteMembershipsIcon = showManageSiteMembershipsIcon;
1053            }
1054    
1055            public void setShowMyAccountIcon(boolean showMyAccountIcon) {
1056                    _showMyAccountIcon = showMyAccountIcon;
1057            }
1058    
1059            public void setShowPageCustomizationIcon(
1060                    boolean showPageCustomizationIcon) {
1061    
1062                    _showPageCustomizationIcon = showPageCustomizationIcon;
1063            }
1064    
1065            public void setShowPageSettingsIcon(boolean showPageSettingsIcon) {
1066                    _showPageSettingsIcon = showPageSettingsIcon;
1067            }
1068    
1069            public void setShowPortalIcon(boolean showPortalIcon) {
1070                    _showPortalIcon = showPortalIcon;
1071            }
1072    
1073            public void setShowSignInIcon(boolean showSignInIcon) {
1074                    _showSignInIcon = showSignInIcon;
1075            }
1076    
1077            public void setShowSignOutIcon(boolean showSignOutIcon) {
1078                    _showSignOutIcon = showSignOutIcon;
1079            }
1080    
1081            public void setShowSiteContentIcon(boolean showSiteContentIcon) {
1082                    _showSiteContentIcon = showSiteContentIcon;
1083            }
1084    
1085            public void setShowSiteMapSettingsIcon(boolean showSiteMapSettingsIcon) {
1086                    _showSiteMapSettingsIcon = showSiteMapSettingsIcon;
1087            }
1088    
1089            public void setShowSiteSettingsIcon(boolean showSiteSettingsIcon) {
1090                    _showSiteSettingsIcon = showSiteSettingsIcon;
1091            }
1092    
1093            public void setShowStagingIcon(boolean showStagingIcon) {
1094                    _showStagingIcon = showStagingIcon;
1095            }
1096    
1097            public void setSignedIn(boolean signedIn) {
1098                    _signedIn = signedIn;
1099            }
1100    
1101            public void setStateExclusive(boolean stateExclusive) {
1102                    _stateExclusive = stateExclusive;
1103            }
1104    
1105            public void setStateMaximized(boolean stateMaximized) {
1106                    _stateMaximized = stateMaximized;
1107            }
1108    
1109            public void setStatePopUp(boolean statePopUp) {
1110                    _statePopUp = statePopUp;
1111            }
1112    
1113            public void setThemeCssFastLoad(boolean themeCssFastLoad) {
1114                    _themeCssFastLoad = themeCssFastLoad;
1115            }
1116    
1117            public void setThemeImagesFastLoad(boolean themeImagesFastLoad) {
1118                    _themeImagesFastLoad = themeImagesFastLoad;
1119            }
1120    
1121            public void setThemeJsBarebone(boolean themeJsBarebone) {
1122                    _themeJsBarebone = themeJsBarebone;
1123            }
1124    
1125            public void setThemeJsFastLoad(boolean themeJsFastLoad) {
1126                    _themeJsFastLoad = themeJsFastLoad;
1127            }
1128    
1129            public void setTilesContent(String tilesContent) {
1130                    _tilesContent = tilesContent;
1131            }
1132    
1133            public void setTilesSelectable(boolean tilesSelectable) {
1134                    _tilesSelectable = tilesSelectable;
1135            }
1136    
1137            public void setTilesTitle(String tilesTitle) {
1138                    _tilesTitle = tilesTitle;
1139            }
1140    
1141            public void setTimeZone(TimeZone timeZone) {
1142                    _timeZone = timeZone;
1143    
1144                    TimeZoneThreadLocal.setThemeDisplayTimeZone(timeZone);
1145            }
1146    
1147            public void setUnfilteredLayouts(List<Layout> unfilteredLayouts) {
1148                    _unfilteredLayouts = unfilteredLayouts;
1149            }
1150    
1151            public void setURLAddContent(String urlAddContent) {
1152                    _urlAddContent = urlAddContent;
1153            }
1154    
1155            public void setURLControlPanel(String urlControlPanel) {
1156                    _urlControlPanel = urlControlPanel;
1157            }
1158    
1159            public void setURLCurrent(String urlCurrent) {
1160                    _urlCurrent = urlCurrent;
1161            }
1162    
1163            public void setURLHome(String urlHome) {
1164                    _urlHome = urlHome;
1165            }
1166    
1167            public void setURLLayoutTemplates(String urlLayoutTemplates) {
1168                    _urlLayoutTemplates = urlLayoutTemplates;
1169            }
1170    
1171            public void setURLManageSiteMemberships(
1172                    PortletURL urlManageSiteMemberships) {
1173    
1174                    _urlManageSiteMemberships = urlManageSiteMemberships;
1175            }
1176    
1177            public void setURLMyAccount(PortletURL urlMyAccount) {
1178                    _urlMyAccount = urlMyAccount;
1179            }
1180    
1181            public void setURLPageSettings(PortletURL urlPageSettings) {
1182                    _urlPageSettings = urlPageSettings;
1183            }
1184    
1185            public void setURLPortal(String urlPortal) {
1186                    _urlPortal = urlPortal;
1187            }
1188    
1189            public void setURLPublishToLive(PortletURL urlPublishToLive) {
1190                    _urlPublishToLive = urlPublishToLive;
1191            }
1192    
1193            public void setURLSignIn(String urlSignIn) {
1194                    _urlSignIn = urlSignIn;
1195            }
1196    
1197            public void setURLSignOut(String urlSignOut) {
1198                    _urlSignOut = urlSignOut;
1199            }
1200    
1201            public void setURLSiteContent(String urlSiteContent) {
1202                    _urlSiteContent = urlSiteContent;
1203            }
1204    
1205            public void setURLSiteMapSettings(PortletURL urlSiteMapSettings) {
1206                    _urlSiteMapSettings = urlSiteMapSettings;
1207            }
1208    
1209            public void setURLSiteSettings(PortletURL urlSiteSettings) {
1210                    _urlSiteSettings = urlSiteSettings;
1211            }
1212    
1213            public void setURLUpdateManager(PortletURL urlUpdateManager) {
1214                    _urlUpdateManager = urlUpdateManager;
1215            }
1216    
1217            public void setUser(User user) throws PortalException, SystemException {
1218                    _user = user;
1219    
1220                    setContact(user.getContact());
1221            }
1222    
1223            public void setWidget(boolean widget) {
1224                    _widget = widget;
1225            }
1226    
1227            public String translate(String key) {
1228                    return LanguageUtil.get(getLocale(), key);
1229            }
1230    
1231            public String translate(String pattern, Object argument) {
1232                    return LanguageUtil.format(getLocale(), pattern, argument);
1233            }
1234    
1235            public String translate(String pattern, Object[] arguments) {
1236                    return LanguageUtil.format(getLocale(), pattern, arguments);
1237            }
1238    
1239            private static Log _log = LogFactoryUtil.getLog(ThemeDisplay.class);
1240    
1241            private Account _account;
1242            private boolean _addSessionIdToURL;
1243            private String _cdnHost = StringPool.BLANK;
1244            private ColorScheme _colorScheme;
1245            private Company _company;
1246            private long _companyGroupId;
1247            private String _companyLogo = StringPool.BLANK;
1248            private int _companyLogoHeight;
1249            private int _companyLogoWidth;
1250            private Contact _contact;
1251            private String _controlPanelCategory = StringPool.BLANK;
1252            private User _defaultUser;
1253            private Device _device;
1254            private long _doAsGroupId = 0;
1255            private String _doAsUserId = StringPool.BLANK;
1256            private String _doAsUserLanguageId = StringPool.BLANK;
1257            private boolean _facebook;
1258            private String _facebookCanvasPageURL;
1259            private boolean _freeformLayout;
1260            private boolean _i18n;
1261            private String _i18nLanguageId;
1262            private String _i18nPath;
1263            private boolean _includePortletCssJs;
1264            private boolean _includeServiceJs;
1265            private boolean _isolated;
1266            private String _languageId;
1267            private Layout _layout;
1268            private List<Layout> _layouts;
1269            private String _layoutSetLogo = StringPool.BLANK;
1270            private LayoutSet _layoutSet;
1271            private LayoutTypePortlet _layoutTypePortlet;
1272            private String _lifecycle;
1273            private boolean _lifecycleAction;
1274            private boolean _lifecycleRender;
1275            private boolean _lifecycleResource;
1276            private Locale _locale;
1277            private MDRRuleGroupInstance _mdrRuleGroupInstance;
1278            private Group _parentGroup;
1279            private long _parentGroupId;
1280            private String _pathApplet = StringPool.BLANK;
1281            private String _pathCms = StringPool.BLANK;
1282            private String _pathColorSchemeImages = StringPool.BLANK;
1283            private String _pathContext = StringPool.BLANK;
1284            private String _pathFlash = StringPool.BLANK;
1285            private String _pathFriendlyURLPrivateGroup = StringPool.BLANK;
1286            private String _pathFriendlyURLPrivateUser = StringPool.BLANK;
1287            private String _pathFriendlyURLPublic = StringPool.BLANK;
1288            private String _pathImage = StringPool.BLANK;
1289            private String _pathJavaScript = StringPool.BLANK;
1290            private String _pathMain = StringPool.BLANK;
1291            private String _pathSound = StringPool.BLANK;
1292            private String _pathThemeCss = StringPool.BLANK;
1293            private String _pathThemeImages = StringPool.BLANK;
1294            private String _pathThemeJavaScript = StringPool.BLANK;
1295            private String _pathThemeRoot = StringPool.BLANK;
1296            private String _pathThemeTemplates = StringPool.BLANK;
1297            private transient PermissionChecker _permissionChecker;
1298            private long _plid;
1299            private String _portalURL = StringPool.BLANK;
1300            private PortletDisplay _portletDisplay = new PortletDisplay();
1301            private String _realCompanyLogo = StringPool.BLANK;
1302            private int _realCompanyLogoHeight;
1303            private int _realCompanyLogoWidth;
1304            private User _realUser;
1305            private long _refererPlid;
1306            private Group _scopeGroup;
1307            private long _scopeGroupId;
1308            private boolean _secure;
1309            private String _serverName;
1310            private int _serverPort;
1311            private String _sessionId = StringPool.BLANK;
1312            private boolean _showAddContentIcon;
1313            private boolean _showAddContentIconPermission;
1314            private boolean _showControlPanelIcon;
1315            private boolean _showHomeIcon;
1316            private boolean _showLayoutTemplatesIcon;
1317            private boolean _showManageSiteMembershipsIcon;
1318            private boolean _showMyAccountIcon;
1319            private boolean _showPageCustomizationIcon;
1320            private boolean _showPageSettingsIcon;
1321            private boolean _showPortalIcon;
1322            private boolean _showSignInIcon;
1323            private boolean _showSignOutIcon;
1324            private boolean _showSiteContentIcon;
1325            private boolean _showSiteMapSettingsIcon;
1326            private boolean _showSiteSettingsIcon;
1327            private boolean _showStagingIcon;
1328            private boolean _signedIn;
1329            private boolean _stateExclusive;
1330            private boolean _stateMaximized;
1331            private boolean _statePopUp;
1332            private Theme _theme;
1333            private boolean _themeCssFastLoad;
1334            private boolean _themeImagesFastLoad;
1335            private boolean _themeJsBarebone;
1336            private boolean _themeJsFastLoad;
1337            private String _tilesContent = StringPool.BLANK;
1338            private boolean _tilesSelectable;
1339            private String _tilesTitle = StringPool.BLANK;
1340            private TimeZone _timeZone;
1341            private List<Layout> _unfilteredLayouts;
1342            private String _urlAddContent = StringPool.BLANK;
1343            private String _urlControlPanel = StringPool.BLANK;
1344            private String _urlCurrent = StringPool.BLANK;
1345            private String _urlHome = StringPool.BLANK;
1346            private String _urlLayoutTemplates = StringPool.BLANK;
1347            private transient PortletURL _urlManageSiteMemberships = null;
1348            private transient PortletURL _urlMyAccount = null;
1349            private transient PortletURL _urlPageSettings = null;
1350            private String _urlPortal = StringPool.BLANK;
1351            private transient PortletURL _urlPublishToLive = null;
1352            private String _urlSignIn = StringPool.BLANK;
1353            private String _urlSignOut = StringPool.BLANK;
1354            private String _urlSiteContent = StringPool.BLANK;
1355            private transient PortletURL _urlSiteMapSettings = null;
1356            private transient PortletURL _urlSiteSettings = null;
1357            private transient PortletURL _urlUpdateManager = null;
1358            private User _user;
1359            private boolean _widget;
1360    
1361    }