001    /**
002     * Copyright (c) 2000-present 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.taglib.ui;
016    
017    import com.liferay.portal.kernel.settings.LocalizedValuesMap;
018    import com.liferay.portal.kernel.util.LocalizationUtil;
019    import com.liferay.portal.kernel.util.Validator;
020    import com.liferay.taglib.util.IncludeTag;
021    
022    import java.util.Map;
023    
024    import javax.servlet.http.HttpServletRequest;
025    
026    /**
027     * @author Eudaldo Alonso
028     */
029    public class EmailNotificationSettingsTag extends IncludeTag {
030    
031            @Override
032            public int doStartTag() {
033                    return EVAL_BODY_INCLUDE;
034            }
035    
036            public void setBodyLabel(String bodyLabel) {
037                    _bodyLabel = bodyLabel;
038            }
039    
040            public void setEmailBody(String emailBody) {
041                    _emailBody = emailBody;
042            }
043    
044            public void setEmailBodyLocalizedValuesMap(
045                    LocalizedValuesMap emailBodyLocalizedValuesMap) {
046    
047                    _emailBodyLocalizedValuesMap = emailBodyLocalizedValuesMap;
048            }
049    
050            public void setEmailDefinitionTerms(
051                    Map<String, String> emailDefinitionTerms) {
052    
053                    _emailDefinitionTerms = emailDefinitionTerms;
054            }
055    
056            public void setEmailEnabled(boolean emailEnabled) {
057                    _emailEnabled = emailEnabled;
058            }
059    
060            public void setEmailParam(String emailParam) {
061                    _emailParam = emailParam;
062            }
063    
064            public void setEmailSubject(String emailSubject) {
065                    _emailSubject = emailSubject;
066            }
067    
068            public void setEmailSubjectLocalizedValuesMap(
069                    LocalizedValuesMap emailSubjectLocalizedValuesMap) {
070    
071                    _emailSubjectLocalizedValuesMap = emailSubjectLocalizedValuesMap;
072            }
073    
074            public void setFieldPrefix(String fieldPrefix) {
075                    _fieldPrefix = fieldPrefix;
076            }
077    
078            public void setFieldPrefixSeparator(String fieldPrefixSeparator) {
079                    _fieldPrefixSeparator = fieldPrefixSeparator;
080            }
081    
082            public void setHelpMessage(String helpMessage) {
083                    _helpMessage = helpMessage;
084            }
085    
086            public void setShowEmailEnabled(boolean showEmailEnabled) {
087                    _showEmailEnabled = showEmailEnabled;
088            }
089    
090            public void setShowSubject(boolean showSubject) {
091                    _showSubject = showSubject;
092            }
093    
094            @Override
095            protected void cleanUp() {
096                    _bodyLabel = null;
097                    _emailBody = null;
098                    _emailDefinitionTerms = null;
099                    _emailEnabled = false;
100                    _emailParam = null;
101                    _emailSubject = null;
102                    _fieldPrefix = null;
103                    _fieldPrefixSeparator = null;
104                    _helpMessage = null;
105                    _showEmailEnabled = true;
106                    _showSubject = true;
107            }
108    
109            @Override
110            protected String getPage() {
111                    return _PAGE;
112            }
113    
114            @Override
115            protected boolean isCleanUpSetAttributes() {
116                    return _CLEAN_UP_SET_ATTRIBUTES;
117            }
118    
119            @Override
120            protected void setAttributes(HttpServletRequest request) {
121                    if (Validator.isNull(_bodyLabel)) {
122                            _bodyLabel = "body";
123                    }
124    
125                    if (Validator.isNull(_fieldPrefix)) {
126                            _fieldPrefix = "preferences";
127                    }
128    
129                    if (Validator.isNull(_fieldPrefixSeparator)) {
130                            _fieldPrefixSeparator = "--";
131                    }
132    
133                    request.setAttribute(
134                            "liferay-ui:email-notification-settings:bodyLabel", _bodyLabel);
135    
136                    String emailBody = _emailBody;
137    
138                    if (Validator.isNull(emailBody) &&
139                            (_emailBodyLocalizedValuesMap != null)) {
140    
141                            emailBody = LocalizationUtil.getXml(
142                                    _emailBodyLocalizedValuesMap, _emailParam + "Body");
143                    }
144    
145                    request.setAttribute(
146                            "liferay-ui:email-notification-settings:emailBody", emailBody);
147    
148                    request.setAttribute(
149                            "liferay-ui:email-notification-settings:emailDefinitionTerms",
150                            _emailDefinitionTerms);
151                    request.setAttribute(
152                            "liferay-ui:email-notification-settings:emailEnabled",
153                            String.valueOf(_emailEnabled));
154                    request.setAttribute(
155                            "liferay-ui:email-notification-settings:emailParam", _emailParam);
156    
157                    String emailSubject = _emailSubject;
158    
159                    if (Validator.isNull(emailSubject) &&
160                            (_emailSubjectLocalizedValuesMap != null)) {
161    
162                            emailSubject = LocalizationUtil.getXml(
163                                    _emailSubjectLocalizedValuesMap, _emailParam + "Subject");
164                    }
165    
166                    request.setAttribute(
167                            "liferay-ui:email-notification-settings:emailSubject",
168                            emailSubject);
169    
170                    request.setAttribute(
171                            "liferay-ui:email-notification-settings:fieldPrefix", _fieldPrefix);
172                    request.setAttribute(
173                            "liferay-ui:email-notification-settings:fieldPrefixSeparator",
174                            _fieldPrefixSeparator);
175                    request.setAttribute(
176                            "liferay-ui:email-notification-settings:helpMessage", _helpMessage);
177                    request.setAttribute(
178                            "liferay-ui:email-notification-settings:showEmailEnabled",
179                            _showEmailEnabled);
180                    request.setAttribute(
181                            "liferay-ui:email-notification-settings:showSubject", _showSubject);
182            }
183    
184            private static final boolean _CLEAN_UP_SET_ATTRIBUTES = true;
185    
186            private static final String _PAGE =
187                    "/html/taglib/ui/email_notification_settings/page.jsp";
188    
189            private String _bodyLabel;
190            private String _emailBody;
191            private LocalizedValuesMap _emailBodyLocalizedValuesMap;
192            private Map<String, String> _emailDefinitionTerms;
193            private boolean _emailEnabled;
194            private String _emailParam;
195            private String _emailSubject;
196            private LocalizedValuesMap _emailSubjectLocalizedValuesMap;
197            private String _fieldPrefix;
198            private String _fieldPrefixSeparator;
199            private String _helpMessage;
200            private boolean _showEmailEnabled = true;
201            private boolean _showSubject = true;
202    
203    }