001: /*
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: GridTag.java 4501 2004-03-26 16:16:12Z benoitf $
023: * --------------------------------------------------------------------------
024: */
025:
026: package org.objectweb.jonas.webapp.taglib;
027:
028: import javax.servlet.jsp.JspException;
029:
030: /**
031: * @author Michel-Ange ANTON
032: */
033: public class GridTag extends GridTableBaseTag {
034:
035: // ----------------------------------------------------- Instance Variables
036:
037: private int m_iRow = 0;
038: private boolean m_bEvenRow = false;
039:
040: // ----------------------------------------------------- Properties
041:
042: private String oddStyleClass = null;
043: private String evenStyleClass = null;
044: private String globalRowStyleClass = null;
045: private int periodRow = 1;
046: private int border = 0;
047: private int cellSpacing = 0;
048: private int cellPadding = 0;
049:
050: /**
051: * Return the Style Class of Odd rows
052: */
053: public String getOddStyleClass() {
054: return oddStyleClass;
055: }
056:
057: /**
058: * Set the Style Class of Odd rows
059: *
060: * @param styleClass HTML Style Class value for Odd rows
061: */
062: public void setOddStyleClass(String styleClass) {
063: this .oddStyleClass = styleClass;
064: }
065:
066: /**
067: * Style Class of Even rows in a table
068: */
069:
070: /**
071: * Return the Style Class of Even rows
072: */
073: public String getEvenStyleClass() {
074: return evenStyleClass;
075: }
076:
077: /**
078: * Set the styleClass of Even rows
079: *
080: * @param styleClass HTML Style Class value for Even rows
081: */
082: public void setEvenStyleClass(String styleClass) {
083: this .evenStyleClass = styleClass;
084: }
085:
086: public int getPeriodRow() {
087: return periodRow;
088: }
089:
090: public void setPeriodRow(int periodRow) {
091: this .periodRow = periodRow;
092: }
093:
094: public void setPeriodRow(String p_PeriodRow) {
095: this .periodRow = Integer.parseInt(p_PeriodRow);
096: }
097:
098: public int getBorder() {
099: return border;
100: }
101:
102: public void setBorder(int border) {
103: this .border = border;
104: }
105:
106: public int getCellSpacing() {
107: return cellSpacing;
108: }
109:
110: public void setCellSpacing(int cellSpacing) {
111: this .cellSpacing = cellSpacing;
112: }
113:
114: public int getCellPadding() {
115: return cellPadding;
116: }
117:
118: public void setCellPadding(int cellPadding) {
119: this .cellPadding = cellPadding;
120: }
121:
122: public String getGlobalRowStyleClass() {
123: return globalRowStyleClass;
124: }
125:
126: public void setGlobalRowStyleClass(String globalRowStyleClass) {
127: this .globalRowStyleClass = globalRowStyleClass;
128: }
129:
130: // ----------------------------------------------------- Public Methods
131:
132: /**
133: * Start of Tag processing
134: *
135: * @exception JspException if a JSP exception occurs
136: */
137: public int doStartTag() throws JspException {
138: m_bEvenRow = false;
139: m_iRow = 0;
140: return super .doStartTag();
141: }
142:
143: /**
144: * Release resources after Tag processing has finished.
145: */
146: public void release() {
147: super .release();
148: m_iRow = 0;
149: m_bEvenRow = false;
150:
151: oddStyleClass = null;
152: evenStyleClass = null;
153: globalRowStyleClass = null;
154: periodRow = 1;
155:
156: border = 0;
157: cellSpacing = 0;
158: cellPadding = 0;
159: //border = -1;
160: //cellSpacing = -1;
161: //cellPadding = -1;
162: }
163:
164: // ----------------------------------------------------- Protected Methods
165:
166: /**
167: * Prepare the attributes of the HTML element
168: */
169: protected String prepareAttributes() throws JspException {
170: StringBuffer sb = new StringBuffer();
171:
172: // Append "border" parameter
173: sb.append(prepareAttribute("border", border));
174: // Append "cellspacing" parameter
175: sb.append(prepareAttribute("cellspacing", cellSpacing));
176: // Append "cellpadding" parameter
177: sb.append(prepareAttribute("cellpadding", cellPadding));
178:
179: // Append Event Handler details
180: sb.append(super .prepareAttributes());
181:
182: return sb.toString();
183:
184: }
185:
186: protected String getRowStyle(boolean p_bChange) {
187: if (globalRowStyleClass == null) {
188: if (periodRow > 0) {
189: if (m_iRow >= periodRow) {
190: m_bEvenRow = !m_bEvenRow;
191: m_iRow = 0;
192: }
193: m_iRow++;
194: }
195: if (p_bChange == true) {
196: m_bEvenRow = !m_bEvenRow;
197: m_iRow = 1;
198: }
199: if (m_bEvenRow == true) {
200: return evenStyleClass;
201: }
202: return oddStyleClass;
203: }
204: return globalRowStyleClass;
205: }
206: }
|