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 static org.apache.myfaces.tobago.TobagoConstants.ATTR_COLUMNS;
021    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_DIRECT_LINK_COUNT;
022    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_FIRST;
023    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_FORCE_VERTICAL_SCROLLBAR;
024    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ROWS;
025    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_DIRECT_LINKS;
026    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SELECTABLE;
027    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_HEADER;
028    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_PAGE_RANGE;
029    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_ROW_RANGE;
030    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STATE;
031    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_VALUE;
032    import static org.apache.myfaces.tobago.TobagoConstants.ATTR_VAR;
033    import org.apache.myfaces.tobago.component.ComponentUtil;
034    import org.apache.myfaces.tobago.component.UIData;
035    
036    import javax.faces.component.UIComponent;
037    
038    
039    public class SheetTag extends TobagoTag implements SheetTagDeclaration {
040    
041      private String var;
042      private String showRowRange = "none";
043      private String showPageRange = "none";
044      private String showDirectLinks = "none";
045      private String directLinkCount = "9";
046      private String showHeader;
047      private String first = "0";
048      private String rows = "100";
049      private String columns;
050      private String value;
051      private String forceVerticalScrollbar;
052      private String state;
053      private String stateChangeListener;
054      private String sortActionListener;
055      private String selectable;
056    
057      public String getComponentType() {
058        // TODO: implement uidata with overridden processUpdates to store state
059        return UIData.COMPONENT_TYPE;
060      }
061    
062      public void release() {
063        super.release();
064        var = null;
065        showRowRange = "none";
066        showPageRange = "none";
067        showDirectLinks = "none";
068        directLinkCount = "9";
069        showHeader = null;
070        first = "0";
071        rows = "100";
072        columns = null;
073        value = null;
074        forceVerticalScrollbar = null;
075        state = null;
076        stateChangeListener = null;
077        sortActionListener = null;
078        selectable = null;
079      }
080    
081      protected void setProperties(UIComponent component) {
082        super.setProperties(component);
083        UIData data = (UIData) component;
084        ComponentUtil.setStringProperty(data, ATTR_SHOW_ROW_RANGE, showRowRange);
085        ComponentUtil.setStringProperty(data, ATTR_SHOW_PAGE_RANGE, showPageRange);
086        ComponentUtil.setStringProperty(data, ATTR_SHOW_DIRECT_LINKS, showDirectLinks);
087        ComponentUtil.setIntegerProperty(data, ATTR_DIRECT_LINK_COUNT, directLinkCount);
088        ComponentUtil.setBooleanProperty(data, ATTR_SHOW_HEADER, showHeader);
089        ComponentUtil.setIntegerProperty(data, ATTR_FIRST, first);
090        ComponentUtil.setIntegerProperty(data, ATTR_ROWS, rows);
091        ComponentUtil.setStringProperty(data, ATTR_COLUMNS, columns);
092        ComponentUtil.setStringProperty(data, ATTR_VALUE, value);
093        ComponentUtil.setStringProperty(data, ATTR_FORCE_VERTICAL_SCROLLBAR, forceVerticalScrollbar);
094        ComponentUtil.setStringProperty(data, ATTR_VAR, var);
095        ComponentUtil.setValueBinding(component, ATTR_STATE, state);
096        ComponentUtil.setStateChangeListener(data, stateChangeListener);
097        ComponentUtil.setSortActionListener(data, sortActionListener);
098        ComponentUtil.setStringProperty(data, ATTR_SELECTABLE, selectable);
099      }
100    
101      public String getColumns() {
102        return columns;
103      }
104    
105      public void setColumns(String columns) {
106        this.columns = columns;
107      }
108    
109      public String getShowHeader() {
110        return showHeader;
111      }
112    
113      public void setShowHeader(String showHeader) {
114        this.showHeader = showHeader;
115      }
116    
117      public String getPagingLength() {
118        return rows;
119      }
120    
121      public void setPagingLength(String pagingLength) {
122        this.rows = pagingLength;
123      }
124    
125      public void setRows(String pagingLength) {
126        this.rows = pagingLength;
127      }
128    
129      public String getPagingStart() {
130        return first;
131      }
132    
133      public String getStateChangeListener() {
134        return stateChangeListener;
135      }
136    
137      public void setPagingStart(String pagingStart) {
138        this.first = pagingStart;
139      }
140    
141      public void setFirst(String pagingStart) {
142        this.first = pagingStart;
143      }
144    
145      public String getValue() {
146        return value;
147      }
148    
149      public void setValue(String value) {
150        this.value = value;
151      }
152    
153      public String getVar() {
154        return var;
155      }
156    
157      public void setVar(String var) {
158        this.var = var;
159      }
160    
161      public void setDirectLinkCount(String directLinkCount) {
162        this.directLinkCount = directLinkCount;
163      }
164    
165      public void setForceVerticalScrollbar(String forceVerticalScrollbar) {
166        this.forceVerticalScrollbar = forceVerticalScrollbar;
167      }
168    
169      public void setShowDirectLinks(String showDirectLinks) {
170        this.showDirectLinks = showDirectLinks;
171      }
172    
173      public void setShowPageRange(String showPageRange) {
174        this.showPageRange = showPageRange;
175      }
176    
177      public void setShowRowRange(String showRowRange) {
178        this.showRowRange = showRowRange;
179      }
180    
181      public void setState(String state) {
182        this.state = state;
183      }
184    
185      public void setStateChangeListener(String stateChangeListener) {
186        this.stateChangeListener = stateChangeListener;
187      }
188    
189      public void setSortActionListener(String sortActionListener) {
190        this.sortActionListener = sortActionListener;
191      }
192    
193      public void setSelectable(String selectable) {
194        this.selectable = selectable;
195      }
196    }
197