Author: abelevich
Date: 2007-05-07 14:34:16 -0400 (Mon, 07 May 2007)
New Revision: 677
Added:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridRendererState.java
Modified:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnVisitor.java
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnWalker.java
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
Log:
Modified:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnVisitor.java
===================================================================
---
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnVisitor.java 2007-05-07
18:34:04 UTC (rev 676)
+++
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnVisitor.java 2007-05-07
18:34:16 UTC (rev 677)
@@ -9,6 +9,10 @@
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import org.ajax4jsf.framework.renderer.RendererBase;
+import org.richfaces.component.UIScrollableGrid;
+import org.richfaces.component.UIScrollableGridColumn;
+
/**
* @author Anton Belevich
*
Modified:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnWalker.java
===================================================================
---
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnWalker.java 2007-05-07
18:34:04 UTC (rev 676)
+++
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ColumnWalker.java 2007-05-07
18:34:16 UTC (rev 677)
@@ -10,6 +10,7 @@
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import org.ajax4jsf.framework.renderer.RendererBase;
import org.ajax4jsf.framework.renderer.RendererUtils.HTML;
import org.richfaces.component.UIScrollableGrid;
import org.richfaces.component.UIScrollableGridColumn;
@@ -20,7 +21,7 @@
*/
public class ColumnWalker {
- static void iterateOverKids(FacesContext context, UIComponent component, ColumnVisitor
visitor, ResponseWriter writer) throws IOException{
+ static void iterateOverHeadersFooters(FacesContext context, UIComponent component,
ColumnVisitor visitor, ResponseWriter writer) throws IOException{
if(context == null || component == null){
throw new NullPointerException();
@@ -35,12 +36,13 @@
if(null != component.getChildren()){
writer.startElement(HTML.TR_ELEMENT, component);
writer.writeText("\n", null);
+
for (Iterator iter = component.getChildren().iterator(); iter.hasNext(); ) {
UIComponent kid = (UIComponent) iter.next();
if (kid.isRendered()) {
if (kid instanceof UIScrollableGridColumn){
- visitor.visit(context, kid, writer);
+ visitor.visit(context, (UIScrollableGridColumn)kid, writer);
}
}
}
@@ -49,4 +51,13 @@
}
}
}
+
+ static void iterateOverBody(FacesContext context, UIComponent component, ColumnVisitor
visitor, ResponseWriter writer) throws IOException{
+
+ if(component instanceof UIScrollableGrid){
+ if(null != component.getChildren()){
+ visitor.visit(context, component, writer);
+ }
+ }
+ }
}
Modified:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
===================================================================
---
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java 2007-05-07
18:34:04 UTC (rev 676)
+++
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java 2007-05-07
18:34:16 UTC (rev 677)
@@ -1,17 +1,18 @@
package org.richfaces.renderkit.html;
import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import org.ajax4jsf.framework.ajax.AjaxContext;
-import org.ajax4jsf.framework.renderer.RendererBase;
import org.ajax4jsf.framework.renderer.RendererUtils.HTML;
import org.richfaces.component.UIScrollableGrid;
+import org.richfaces.component.UIScrollableGridColumn;
import org.richfaces.renderkit.CompositeRenderer;
-import org.richfaces.utils.TemplateLoader;
/**
* @author Anton Belevich
@@ -24,30 +25,30 @@
private final String HEADER_PART = "header";
- //private final RendererBase cellTemplate =
TemplateLoader.loadTemplate("org.richfaces.renderkit.html.ScrollableGridCellRenderer");
+
private final ColumnVisitor headerRenderer = new ColumnVisitor(){
public void visit(FacesContext context, UIComponent component, ResponseWriter writer)
throws IOException {
+
writer.startElement(HTML.td_ELEM, component);
getUtils().writeAttribute(writer, "frozen",
component.getAttributes().get("frozen"));
getUtils().writeAttribute(writer,
"style",component.getAttributes().get("style"));
writer.writeText("\n", null);
-
+
if(component.getFacet(HEADER_PART) != null){
component = component.getFacet(HEADER_PART);
renderChild(context, component);
}
writer.endElement(HTML.td_ELEM);
writer.writeText("\n", null);
- }
+ }
};
private final ColumnVisitor footerRenderer = new ColumnVisitor(){
public void visit(FacesContext context, UIComponent component, ResponseWriter writer)
throws IOException {
-
writer.startElement(HTML.td_ELEM, component);
getUtils().writeAttribute(writer,
"style",component.getAttributes().get("style"));
writer.writeText("\n", null);
@@ -56,24 +57,122 @@
component = component.getFacet(FOOTER_PART);
renderChild(context, component);
}
-
+
writer.endElement(HTML.td_ELEM);
writer.writeText("\n", null);
- }
+ }
};
private final ColumnVisitor bodyRenderer = new ColumnVisitor(){
public void visit(FacesContext context, UIComponent component, ResponseWriter writer)
throws IOException {
- writer.startElement(HTML.td_ELEM, component);
+
+ UIScrollableGrid grid = (UIScrollableGrid)component;
+
+ writer.startElement(HTML.DIV_ELEM, grid);
+ getUtils().writeAttribute(writer, "class","GridDataColumns");
+ getUtils().writeAttribute(writer, "id","FrozenBox");
+ getUtils().writeAttribute(writer, "style","position: absolute; left:
0px; top: 0px; display: block; width: 100px");
writer.writeText("\n", null);
- renderChildren(context, component);
- writer.endElement(HTML.td_ELEM);
+ writer.startElement("table", grid);
+ getUtils().writeAttribute(writer, "id","GridDataFrozen");
+ getUtils().writeAttribute(writer, "cellpadding","0");
+ getUtils().writeAttribute(writer, "cellspacing","0");
+ getUtils().writeAttribute(writer, "style","position: absolute; left:
0px; top: 0px; display: block; width: 100%");
writer.writeText("\n", null);
+ writer.startElement("tbody", grid);
+
+
+ renderColumns(context, (UIScrollableGrid)grid, writer,true);
+
+ writer.endElement("tbody");
+ writer.endElement("table");
+ writer.endElement(HTML.DIV_ELEM);
+
+ writer.startElement(HTML.DIV_ELEM, grid);
+ getUtils().writeAttribute(writer, "class","GridDataColumns");
+ getUtils().writeAttribute(writer, "id","NormalBox");
+ getUtils().writeAttribute(writer, "style","position: absolute; left:
300px; top: 0px; display: block; width: 700px");
+ writer.writeText("\n", null);
+ writer.startElement("table", grid);
+ getUtils().writeAttribute(writer, "id","GridDataNormal");
+ getUtils().writeAttribute(writer, "cellpadding","0");
+ getUtils().writeAttribute(writer, "cellspacing","0");
+ getUtils().writeAttribute(writer, "style","position: absolute; left:
0px; top: 0px; display: block; width: 100%");
+ writer.writeText("\n", null);
+
+ renderColumns(context, grid, writer, false);
+
+ writer.endElement("tbody");
+ writer.endElement("table");
+ writer.endElement(HTML.DIV_ELEM);
+ // end of normal columns rendering
}
};
+ private void renderColumns(FacesContext context, UIScrollableGrid grid,
+ ResponseWriter writer,boolean isFrozenColumn
+ ) throws IOException{
+ for(int i = grid.getFirst(); i < grid.getRows(); i++ ){
+
+ writer.startElement(HTML.TR_ELEMENT, grid);
+ getUtils().writeAttribute(writer, "id","row_"+ i);
+ getUtils().writeAttribute(writer, "class","ClientUI_Grid_BR");
+
+ List kidz = grid.getChildren();
+
+ int cellIndex = 0;
+ boolean processFrozen = false;
+
+ for (Iterator iter = kidz.iterator(); iter.hasNext();) {
+ UIComponent child = (UIComponent) iter.next();
+
+ if(child instanceof UIScrollableGridColumn){
+ UIScrollableGridColumn column = (UIScrollableGridColumn)child;
+ boolean frozen =
((Boolean)child.getAttributes().get("frozen")).booleanValue();
+ if(isFrozenColumn){
+ if(frozen){
+ if(!processFrozen){
+ cellIndex = 0;
+ processFrozen = true;
+ }
+ renderCells(context, column, writer, cellIndex, i);
+ }
+
+ }else{
+ if(!frozen){
+ if(processFrozen){
+ cellIndex = 0;
+ processFrozen = false;
+ }
+ renderCells(context, column, writer, cellIndex,i);
+ }
+ }
+ cellIndex++;
+ }
+ }
+
+ writer.endElement(HTML.TR_ELEMENT);
+ }
+ }
+
+ private void renderCells(FacesContext context, UIScrollableGridColumn column,
+ ResponseWriter writer, int cellIndex, int rowIndex) throws IOException{
+
+ writer.startElement(HTML.td_ELEM, column);
+ getUtils().writeAttribute(writer, "id","c_"+ rowIndex +
"_" + cellIndex);
+ getUtils().writeAttribute(writer, "class","ClientUI_Grid_BC");
+ writer.startElement(HTML.SPAN_ELEM, column);
+ getUtils().writeAttribute(writer, "id","bc_"+ rowIndex +
"_" + cellIndex);
+ getUtils().writeAttribute(writer,"style",column.getAttributes().get("style"));
+ getUtils().writeAttribute(writer,"class","ClientUI_Grid_BCBody");
+ renderChild(context, column);
+ writer.endElement(HTML.SPAN_ELEM);
+ writer.endElement(HTML.td_ELEM);
+
+ }
+
protected String getJavaScriptVarName(FacesContext context, UIScrollableGrid grid) {
String id = grid.getBaseClientId(context);
return "Richfaces_ScrollableGrid_" + id.replaceAll("[^A-Za-z0-9_]",
"_");
@@ -87,22 +186,29 @@
return true;
}
- protected void doEncodeChildren(ResponseWriter writer, FacesContext context, UIComponent
component) throws IOException {
- ColumnWalker.iterateOverKids(context, component, bodyRenderer, writer);
+ protected void doEncodeChildren(ResponseWriter writer, FacesContext context,
+ UIComponent component) throws IOException {
+
+ ColumnWalker.iterateOverBody(context, component, bodyRenderer, writer);
}
- public void renderHeaders(FacesContext context, UIComponent component)throws
IOException{
+ public void renderHeaders(FacesContext context, UIComponent component
+ )throws IOException{
+
ResponseWriter writer = context.getResponseWriter();
- ColumnWalker.iterateOverKids(context, component, headerRenderer, writer);
+ ColumnWalker.iterateOverHeadersFooters(context, component, headerRenderer, writer);
}
- public void renderFooters(FacesContext context, UIComponent component) throws
IOException{
+ public void renderFooters(FacesContext context, UIComponent component
+ ) throws IOException{
+
ResponseWriter writer = context.getResponseWriter();
- ColumnWalker.iterateOverKids(context, component, footerRenderer, writer);
+ ColumnWalker.iterateOverHeadersFooters(context, component, footerRenderer, writer);
}
// for benchmark
- public void encodeBegin(FacesContext context, UIComponent component) throws IOException
{
+ public void encodeBegin(FacesContext context, UIComponent component
+ ) throws IOException {
if(AjaxContext.getCurrentInstance().isAjaxRequest()){
}else{
@@ -110,7 +216,8 @@
}
}
- public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
+ public void encodeEnd(FacesContext context, UIComponent component
+ ) throws IOException {
if(AjaxContext.getCurrentInstance().isAjaxRequest()){
}else{
@@ -118,10 +225,10 @@
}
}
- public void encodeChildren(FacesContext context, UIComponent component) throws
IOException {
+ public void encodeChildren(FacesContext context, UIComponent component
+ ) throws IOException {
ResponseWriter writer = context.getResponseWriter();
-
AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
if(ajaxContext.isAjaxRequest()){
writer.startElement("div", component);
Added:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridRendererState.java
===================================================================
---
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridRendererState.java
(rev 0)
+++
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridRendererState.java 2007-05-07
18:34:16 UTC (rev 677)
@@ -0,0 +1,398 @@
+/**
+ *
+ */
+package org.richfaces.renderkit.html;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.Set;
+
+import javax.faces.FacesException;
+import javax.faces.component.NamingContainer;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.framework.ajax.AjaxContainer;
+import org.ajax4jsf.framework.renderer.AjaxRendererUtils;
+import org.richfaces.component.UIScrollableGrid;
+
+/**
+ * bean to store current {@link com.exadel.vcp.components.datagrid.UIDataGrid }
information
+ * in request map. For nested grids, it support push/pop state saving.
+ * In {@link javax.faces.render.Renderer#encodeBegin(javax.faces.context.FacesContext,
javax.faces.component.UIComponent)} method
+ * must be created instance of this bean , or, if it already exist in request map - push
information.
+ * at the end of encodeEnd call, bean must be pop information or removed.
+ * @author shura
+ *
+ */
+public class ScrollableGridRendererState implements Serializable {
+
+ public static final String DATA_GRID_RENDERER_STATE =
ScrollableGridRendererState.class.getName();
+
+ private int _rowIndex = 0;
+
+ private int _cellIndex = 0;
+
+ private int _columns = 0;
+
+ private UIScrollableGrid _grid;
+
+ private String _cachedClientId;
+
+ private ScrollableGridRendererState _previousState = null;
+
+ private AjaxContainer _region = null;
+
+ private boolean _rowSelected;
+
+ private Object rowKey;
+
+ private String prefix;
+
+ private String selectedClass;
+ private String activeClass;
+ private String focusedClass;
+ private String resizerClass;
+
+ private String [] columnClasses;
+ private String [] rowClasses;
+ private String [] headerColumnClasses;
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 2129605586975025578L;
+
+ private Set _renderedAreas = null;
+
+
+ /**
+ * Get current grid state from JSF context
+ * @param context
+ * @return current data grid state, or null if not saved.
+ */
+ public static ScrollableGridRendererState getRendererState(FacesContext context) throws
FacesException {
+ if(null == context){
+ throw new NullPointerException("Context for grid state is null");
+ }
+ ScrollableGridRendererState state = (ScrollableGridRendererState)
context.getExternalContext().getRequestMap().get(DATA_GRID_RENDERER_STATE);
+// if( null == state){
+// throw new FacesException("State for current grid not stored in context");
+// }
+ return state;
+ }
+
+ /**
+ * Create new state for current grid. If state exist, store previsius in field of
created.
+ * @param context
+ * @param grid
+ * @return new state for grid.
+ */
+ public static ScrollableGridRendererState createState(FacesContext context,
UIScrollableGrid grid){
+ if(null == context){
+ throw new NullPointerException("Context for grid state is null");
+ }
+ ScrollableGridRendererState oldState = getRendererState(context);
+ ScrollableGridRendererState state = new
ScrollableGridRendererState(context,oldState,grid);
+ context.getExternalContext().getRequestMap().put(DATA_GRID_RENDERER_STATE,state);
+ return state;
+ }
+
+ /**
+ * Restore previsius state for gred, or clear request parameter.
+ * @param context
+ */
+ public static void restoreState(FacesContext context) {
+ if (null == context) {
+ throw new NullPointerException("Context for grid state is null");
+ }
+ ScrollableGridRendererState state = getRendererState(context);
+ if (null == state) {
+ throw new FacesException(
+ "State for current grid not saved in context");
+ }
+ ScrollableGridRendererState previsiosState = state.getPreviousState();
+ if (null != previsiosState) {
+ context.getExternalContext().getRequestMap().put(DATA_GRID_RENDERER_STATE,
+ previsiosState);
+ } else {
+ context.getExternalContext().getRequestMap().remove(DATA_GRID_RENDERER_STATE);
+ }
+ }
+ /**
+ * Create state for current grig ( and store previsios state in field ).
+ * @param previsiosState
+ */
+ public ScrollableGridRendererState(FacesContext context, ScrollableGridRendererState
previsiosState, UIScrollableGrid grid) {
+ super();
+ _grid = grid;
+ _cachedClientId = grid.getClientId(context);
+ _previousState = previsiosState;
+ if(AjaxRendererUtils.isAjaxRequest(context)){
+// _region = AjaxRendererUtils.getSubmittedAjaxContainer(context,null);
+// if(null != _region){
+// _renderedAreas = (Set) _region.getAjaxRenderedAreas();
+// }
+ }
+
+ Map attrs = grid.getAttributes();
+// activeClass = (String) attrs.get("activeClass");
+// selectedClass = (String) attrs.get("selectedClass");
+// if (selectedClass == null) {
+// selectedClass = DataGridBaseRenderer.DEAFAULT_SELECTED_CLASS;
+// }
+//
+// rowClasses = DataGridUtil.getAttributeArray((String)
attrs.get("rowClasses"));
+// columnClasses = DataGridUtil.getAttributeArray((String)
attrs.get("columnClasses"));
+// headerColumnClasses = DataGridUtil.getAttributeArray((String)
attrs.get("headerColumnClasses"));
+//
+// if (headerColumnClasses.length == 0) {
+// headerColumnClasses = DataGridBaseRenderer.DEAFAULT_HEADER_COLUMN_CLASSES;
+// }
+//
+// resizerClass = (String) attrs.get("resizerClass");
+//
+// prefix = DataGridUtil.getClassPrefix(context, grid);
+ }
+
+
+ /**
+ * Append id of AJAX rendered area to current set ( if possible )
+ * @param id
+ */
+// public void addAjaxArea(String id){
+// if(null != _renderedAreas){
+// _renderedAreas.add(id);
+// }
+// }
+
+ /**
+ * Remove id of AJAX rendered area from current set ( if possible )
+ * @param id
+ */
+// public void removeAjaxArea(String id){
+// if(null != _renderedAreas){
+// _renderedAreas.remove(id);
+// }
+// }
+
+ public String getCurrentCellId(FacesContext context){
+ return
getGrid().getClientId(context)+NamingContainer.SEPARATOR_CHAR+"row"+getRowIndex()+
+ NamingContainer.SEPARATOR_CHAR+"col"+getCellIndex();
+ }
+
+ /**
+ * @return Returns the cellIndex.
+ */
+ public int getCellIndex() {
+ return _cellIndex;
+ }
+
+ /**
+ * @param cellIndex The cellIndex to set.
+ */
+ public void setCellIndex(int cellIndex) {
+ _cellIndex = cellIndex;
+ }
+
+ /**
+ * Increment cells counter
+ * @return next cell number.
+ */
+
+ public int nextCell(){
+ return ++_cellIndex;
+ }
+
+
+ /**
+ * @return Returns the columns.
+ */
+ public int getColumns() {
+ return _columns;
+ }
+
+ /**
+ * @param columns The columns to set.
+ */
+ public void setColumns(int columns) {
+ _columns = columns;
+ }
+
+ /**
+ * @return Returns the grid.
+ */
+ public UIScrollableGrid getGrid() {
+ return _grid;
+ }
+
+ /**
+ * @param grid The grid to set.
+ */
+ public void setGrid(UIScrollableGrid grid) {
+ _grid = grid;
+ }
+
+ /**
+ * @return Returns the previsiosState.
+ */
+ public ScrollableGridRendererState getPreviousState() {
+ return _previousState;
+ }
+
+ /**
+ * @param previsiosState The previsiosState to set.
+ */
+ public void setPreviousState(ScrollableGridRendererState previsiosState) {
+ _previousState = previsiosState;
+ }
+
+ /**
+ * @return Returns the rowIndex.
+ */
+ public int getRowIndex() {
+ return _rowIndex;
+ }
+
+ /**
+ * Increment current row counter.
+ * @return new row number.
+ */
+ public int nextRow(){
+ return ++_rowIndex;
+ }
+
+ /**
+ * @param rowIndex The rowIndex to set.
+ */
+ public void setRowIndex(int rowIndex) {
+ _rowIndex = rowIndex;
+ }
+
+
+ public String getColumnClientId(FacesContext context) {
+ return getGrid().getClientId(context) + NamingContainer.SEPARATOR_CHAR +
"_col" + getCellIndex();
+ }
+
+ /**
+ * @return the _cachedClientId
+ */
+ public String getCachedClientId() {
+ return _cachedClientId;
+ }
+
+
+ private StringBuffer buffer = new StringBuffer();
+
+ /**
+ * @return the buffer
+ */
+ public StringBuffer getBuffer() {
+ buffer.setLength(0);
+ return buffer;
+ }
+
+ public String getColumnWidthInputId() {
+ return
+ getBuffer()
+ .append(prefix)
+ .append("col_")
+ .append(getCellIndex())
+ .append("_width")
+ .toString();
+ }
+
+ public String getColumnHeaderCellId() {
+ return
+ getBuffer()
+ .append(getCachedClientId())
+ .append(NamingContainer.SEPARATOR_CHAR)
+ .append("header")
+ .append(NamingContainer.SEPARATOR_CHAR)
+ .append(getCellIndex())
+ .toString();
+ }
+ public String getBodyCellId() {
+ return
+ getBuffer()
+ .append(getCachedClientId())
+ .append(NamingContainer.SEPARATOR_CHAR)
+ .append("body")
+ .append(NamingContainer.SEPARATOR_CHAR)
+ .append(getRowKey())
+ .append(NamingContainer.SEPARATOR_CHAR)
+ .append(getCellIndex())
+ .toString();
+ }
+
+ public String getColumnClass() {
+ return "col_" + getCellIndex();
+ }
+
+ /**
+ * @return the _rowSelected
+ */
+ public boolean isRowSelected() {
+ return _rowSelected;
+ }
+
+ /**
+ * @param selected the _rowSelected to set
+ */
+ public void setRowSelected(boolean selected) {
+ _rowSelected = selected;
+ }
+
+ /**
+ * @return the rowKey
+ */
+ public Object getRowKey() {
+ return rowKey;
+ }
+
+ /**
+ * @param rowKey the rowKey to set
+ */
+ public void setRowKey(Object rowKey) {
+ this.rowKey = rowKey;
+ }
+
+ public String getRowClass() {
+// return getBuffer()
+// .append(DataGridUtil.getAttributeValue(rowClasses, getRowIndex()))
+// .append(" ")
+// .append(isRowSelected() ? selectedClass : "")
+// .toString();
+ return null;
+ }
+
+ public String getCellClass() {
+ return null;
+// getBuffer()
+// .append(DataGridUtil.getAttributeValue(columnClasses, _cellIndex))
+// .toString();
+
+ }
+
+ public String getHeaderCellClass() {
+ return null;
+// getBuffer()
+// .append(DataGridUtil.getAttributeValue(headerColumnClasses, _cellIndex))
+// .toString();
+
+ }
+
+ /**
+ * @return the resizerClass
+ */
+ public String getResizerClass() {
+ return resizerClass;
+ }
+
+ /**
+ * @param resizerClass the resizerClass to set
+ */
+ public void setResizerClass(String resizerClass) {
+ this.resizerClass = resizerClass;
+ }
+}