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