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