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.language.LanguageUtil;
018    import com.liferay.portal.kernel.util.Validator;
019    import com.liferay.portal.kernel.util.WebKeys;
020    import com.liferay.portal.model.ModelHintsConstants;
021    import com.liferay.portal.theme.ThemeDisplay;
022    import com.liferay.taglib.util.IncludeTag;
023    
024    import java.util.Locale;
025    
026    import javax.servlet.http.HttpServletRequest;
027    
028    /**
029     * @author Julio Camarero
030     */
031    public class InputLocalizedTag extends IncludeTag {
032    
033            public Locale[] getAvailableLocales() {
034                    return _availableLocales;
035            }
036    
037            public void setAutoFocus(boolean autoFocus) {
038                    _autoFocus = autoFocus;
039            }
040    
041            public void setAutoSize(boolean autoSize) {
042                    _autoSize = autoSize;
043            }
044    
045            public void setAvailableLocales(Locale[] availableLocales) {
046                    _availableLocales = availableLocales;
047            }
048    
049            public void setCssClass(String cssClass) {
050                    _cssClass = cssClass;
051            }
052    
053            public void setDefaultLanguageId(String defaultLanguageId) {
054                    _defaultLanguageId = defaultLanguageId;
055            }
056    
057            public void setDisabled(boolean disabled) {
058                    _disabled = disabled;
059            }
060    
061            public void setDisplayWidth(String displayWidth) {
062                    _displayWidth = displayWidth;
063            }
064    
065            public void setFieldPrefix(String fieldPrefix) {
066                    _fieldPrefix = fieldPrefix;
067            }
068    
069            public void setFieldPrefixSeparator(String fieldPrefixSeparator) {
070                    _fieldPrefixSeparator = fieldPrefixSeparator;
071            }
072    
073            public void setFormName(String formName) {
074                    _formName = formName;
075            }
076    
077            public void setId(String id) {
078                    _id = id;
079            }
080    
081            public void setIgnoreRequestValue(boolean ignoreRequestValue) {
082                    _ignoreRequestValue = ignoreRequestValue;
083            }
084    
085            public void setLanguageId(String languageId) {
086                    _languageId = languageId;
087            }
088    
089            public void setMaxLength(String maxLength) {
090                    _maxLength = maxLength;
091            }
092    
093            public void setName(String name) {
094                    _name = name;
095            }
096    
097            public void setToolbarSet(String toolbarSet) {
098                    _toolbarSet = toolbarSet;
099            }
100    
101            public void setType(String type) {
102                    _type = type;
103            }
104    
105            public void setXml(String xml) {
106                    _xml = xml;
107            }
108    
109            @Override
110            protected void cleanUp() {
111                    _autoFocus = false;
112                    _autoSize = false;
113                    _cssClass = null;
114                    _disabled = false;
115                    _displayWidth = ModelHintsConstants.TEXT_DISPLAY_WIDTH;
116                    _fieldPrefix = null;
117                    _fieldPrefixSeparator = null;
118                    _formName = null;
119                    _id = null;
120                    _ignoreRequestValue = false;
121                    _languageId = null;
122                    _maxLength = null;
123                    _name = null;
124                    _toolbarSet = "simple";
125                    _type = "input";
126                    _xml = null;
127            }
128    
129            @Override
130            protected String getPage() {
131                    return _PAGE;
132            }
133    
134            @Override
135            protected void setAttributes(HttpServletRequest request) {
136                    Locale[] availableLocales = _availableLocales;
137    
138                    if (availableLocales == null) {
139                            ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
140                                    WebKeys.THEME_DISPLAY);
141    
142                            availableLocales = LanguageUtil.getAvailableLocales(
143                                    themeDisplay.getSiteGroupId());
144                    }
145    
146                    String formName = _formName;
147    
148                    if (Validator.isNull(formName)) {
149                            formName = "fm";
150                    }
151    
152                    String id = _id;
153    
154                    if (Validator.isNull(id)) {
155                            id = _name;
156                    }
157    
158                    request.setAttribute(
159                            "liferay-ui:input-localized:autoFocus", String.valueOf(_autoFocus));
160                    request.setAttribute(
161                            "liferay-ui:input-localized:autoSize", String.valueOf(_autoSize));
162                    request.setAttribute(
163                            "liferay-ui:input-localized:availableLocales", availableLocales);
164                    request.setAttribute("liferay-ui:input-localized:cssClass", _cssClass);
165                    request.setAttribute(
166                            "liferay-ui:input-localized:defaultLanguageId", _defaultLanguageId);
167                    request.setAttribute(
168                            "liferay-ui:input-localized:displayWidth", _displayWidth);
169                    request.setAttribute(
170                            "liferay-ui:input-localized:disabled", String.valueOf(_disabled));
171                    request.setAttribute(
172                            "liferay-ui:input-localized:dynamicAttributes",
173                            getDynamicAttributes());
174                    request.setAttribute(
175                            "liferay-ui:input-localized:fieldPrefix", _fieldPrefix);
176                    request.setAttribute(
177                            "liferay-ui:input-localized:fieldPrefixSeparator",
178                            _fieldPrefixSeparator);
179                    request.setAttribute("liferay-ui:input-localized:formName", formName);
180                    request.setAttribute("liferay-ui:input-localized:id", id);
181                    request.setAttribute(
182                            "liferay-ui:input-localized:ignoreRequestValue",
183                            String.valueOf(_ignoreRequestValue));
184                    request.setAttribute(
185                            "liferay-ui:input-localized:languageId", _languageId);
186                    request.setAttribute(
187                            "liferay-ui:input-localized:maxLength", _maxLength);
188                    request.setAttribute("liferay-ui:input-localized:name", _name);
189                    request.setAttribute(
190                            "liferay-ui:input-localized:toolbarSet", _toolbarSet);
191                    request.setAttribute("liferay-ui:input-localized:type", _type);
192                    request.setAttribute("liferay-ui:input-localized:xml", _xml);
193            }
194    
195            private static final String _PAGE =
196                    "/html/taglib/ui/input_localized/page.jsp";
197    
198            private boolean _autoFocus;
199            private boolean _autoSize;
200            private Locale[] _availableLocales;
201            private String _cssClass;
202            private String _defaultLanguageId;
203            private boolean _disabled;
204            private String _displayWidth = ModelHintsConstants.TEXT_DISPLAY_WIDTH;
205            private String _fieldPrefix;
206            private String _fieldPrefixSeparator;
207            private String _formName;
208            private String _id;
209            private boolean _ignoreRequestValue;
210            private String _languageId;
211            private String _maxLength;
212            private String _name;
213            private String _toolbarSet = "simple";
214            private String _type = "input";
215            private String _xml;
216    
217    }