001 package org.apache.myfaces.tobago.taglib.component;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one or more
005 * contributor license agreements. See the NOTICE file distributed with
006 * this work for additional information regarding copyright ownership.
007 * The ASF licenses this file to You under the Apache License, Version 2.0
008 * (the "License"); you may not use this file except in compliance with
009 * the License. You may obtain a copy of the License at
010 *
011 * http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 */
019
020 import org.apache.myfaces.tobago.component.ComponentUtil;
021 import org.apache.myfaces.tobago.component.UIData;
022 import org.apache.myfaces.tobago.util.Deprecation;
023
024 import javax.faces.component.UIComponent;
025
026 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_COLUMNS;
027 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_DIRECT_LINK_COUNT;
028 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_FIRST;
029 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_FORCE_VERTICAL_SCROLLBAR;
030 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ROWS;
031 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SELECTABLE;
032 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_DIRECT_LINKS;
033 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_HEADER;
034 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_PAGE_RANGE;
035 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_ROW_RANGE;
036 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STATE;
037 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_VALUE;
038 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_VAR;
039
040
041 public class SheetTag extends TobagoTag implements SheetTagDeclaration {
042
043 private String var;
044 private String showRowRange = "none";
045 private String showPageRange = "none";
046 private String showDirectLinks = "none";
047 private String directLinkCount = "9";
048 private String showHeader;
049 private String first = "0";
050 private String rows = "100";
051 private String columns;
052 private String value;
053 private String forceVerticalScrollbar;
054 private String state;
055 private String stateChangeListener;
056 private String sortActionListener;
057 private String selectable;
058
059 public String getComponentType() {
060 // TODO: implement uidata with overridden processUpdates to store state
061 return UIData.COMPONENT_TYPE;
062 }
063
064 public void release() {
065 super.release();
066 var = null;
067 showRowRange = "none";
068 showPageRange = "none";
069 showDirectLinks = "none";
070 directLinkCount = "9";
071 showHeader = null;
072 first = "0";
073 rows = "100";
074 columns = null;
075 value = null;
076 forceVerticalScrollbar = null;
077 state = null;
078 stateChangeListener = null;
079 sortActionListener = null;
080 selectable = null;
081 }
082
083 protected void setProperties(UIComponent component) {
084 super.setProperties(component);
085 UIData data = (UIData) component;
086 ComponentUtil.setStringProperty(data, ATTR_SHOW_ROW_RANGE, showRowRange);
087 ComponentUtil.setStringProperty(data, ATTR_SHOW_PAGE_RANGE, showPageRange);
088 ComponentUtil.setStringProperty(data, ATTR_SHOW_DIRECT_LINKS, showDirectLinks);
089 ComponentUtil.setIntegerProperty(data, ATTR_DIRECT_LINK_COUNT, directLinkCount);
090 ComponentUtil.setBooleanProperty(data, ATTR_SHOW_HEADER, showHeader);
091 ComponentUtil.setIntegerProperty(data, ATTR_FIRST, first);
092 ComponentUtil.setIntegerProperty(data, ATTR_ROWS, rows);
093 ComponentUtil.setStringProperty(data, ATTR_COLUMNS, columns);
094 ComponentUtil.setStringProperty(data, ATTR_VALUE, value);
095 ComponentUtil.setStringProperty(data, ATTR_FORCE_VERTICAL_SCROLLBAR, forceVerticalScrollbar);
096 ComponentUtil.setStringProperty(data, ATTR_VAR, var);
097 ComponentUtil.setValueBinding(component, ATTR_STATE, state);
098 ComponentUtil.setStateChangeListener(data, stateChangeListener);
099 ComponentUtil.setSortActionListener(data, sortActionListener);
100 ComponentUtil.setStringProperty(data, ATTR_SELECTABLE, selectable);
101 }
102
103 public String getColumns() {
104 return columns;
105 }
106
107 public void setColumns(String columns) {
108 this.columns = columns;
109 }
110
111 public String getShowHeader() {
112 return showHeader;
113 }
114
115 public void setShowHeader(String showHeader) {
116 this.showHeader = showHeader;
117 }
118
119 public String getPagingLength() {
120 return rows;
121 }
122
123 public void setPagingLength(String pagingLength) {
124 Deprecation.LOG.error("The attribute 'pagingLength' of 'UISheet' is deprecated, please use 'rows' instead. "
125 + "Refer the documentation for further information.");
126 this.rows = pagingLength;
127 }
128
129 public void setRows(String pagingLength) {
130 this.rows = pagingLength;
131 }
132
133 public String getPagingStart() {
134 return first;
135 }
136
137 public String getStateChangeListener() {
138 return stateChangeListener;
139 }
140
141 public void setPagingStart(String pagingStart) {
142 Deprecation.LOG.error("The attribute 'pagingStart' of 'UISheet' is deprecated, please use 'first' instead. "
143 + "Refer the documentation for further information.");
144 this.first = pagingStart;
145 }
146
147 public void setFirst(String pagingStart) {
148 this.first = pagingStart;
149 }
150
151 public String getValue() {
152 return value;
153 }
154
155 public void setValue(String value) {
156 this.value = value;
157 }
158
159 public String getVar() {
160 return var;
161 }
162
163 public void setVar(String var) {
164 this.var = var;
165 }
166
167 public void setDirectLinkCount(String directLinkCount) {
168 this.directLinkCount = directLinkCount;
169 }
170
171 public void setForceVerticalScrollbar(String forceVerticalScrollbar) {
172 this.forceVerticalScrollbar = forceVerticalScrollbar;
173 }
174
175 public void setShowDirectLinks(String showDirectLinks) {
176 this.showDirectLinks = showDirectLinks;
177 }
178
179 public void setShowPageRange(String showPageRange) {
180 this.showPageRange = showPageRange;
181 }
182
183 public void setShowRowRange(String showRowRange) {
184 this.showRowRange = showRowRange;
185 }
186
187 public void setState(String state) {
188 this.state = state;
189 }
190
191 public void setStateChangeListener(String stateChangeListener) {
192 this.stateChangeListener = stateChangeListener;
193 }
194
195 public void setSortActionListener(String sortActionListener) {
196 this.sortActionListener = sortActionListener;
197 }
198
199 public void setSelectable(String selectable) {
200 this.selectable = selectable;
201 }
202 }
203