You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gr...@apache.org on 2006/06/03 00:56:17 UTC
svn commit: r411324 -
/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTable.java
Author: grantsmith
Date: Fri Jun 2 15:56:17 2006
New Revision: 411324
URL: http://svn.apache.org/viewvc?rev=411324&view=rev
Log:
reverting from TOMAHAWK-388 patch corruption
Modified:
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTable.java
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTable.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTable.java?rev=411324&r1=411323&r2=411324&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTable.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/ext/HtmlDataTable.java Fri Jun 2 15:56:17 2006
@@ -59,7 +59,7 @@
/** the property names */
public static final String NEWSPAPER_COLUMNS_PROPERTY = "newspaperColumns";
public static final String SPACER_FACET_NAME = "spacer";
-
+
/** the value of the column count property */
private int _newspaperColumns = 1;
@@ -85,9 +85,9 @@
private String _rowGroupStyle = null;
private String _rowGroupStyleClass = null;
private String _varDetailToggler = null;
-
+
private int _sortColumnIndex = -1;
-
+
private boolean _isValidChildren = true;
private Set _expandedNodes = new HashSet();
@@ -265,7 +265,7 @@
Map requestMap = getFacesContext().getExternalContext().getRequestMap();
requestMap.put(_varDetailToggler, this);
}
- }
+ }
public void processDecodes(FacesContext context)
{
@@ -290,7 +290,7 @@
{
UIComponent facet = getFacet(HtmlTableRenderer.DETAIL_STAMP_FACET_NAME);
- if (facet!=null)
+ if (facet!=null)
{
int first = getFirst();
int rows = getRows();
@@ -454,8 +454,8 @@
// into this object.
((UIColumns) component).encodeTableBegin(context);
}
- }
-
+ }
+
//replace facet header content component of the columns, with a new command sort header component
//if sortable=true, replace it for all, if not just for the columns marked as sortable
for (Iterator iter = getChildren().iterator(); iter.hasNext();)
@@ -463,11 +463,11 @@
UIComponent component = (UIComponent) iter.next();
if (component instanceof UIColumn)
{
- UIColumn aColumn = (UIColumn)component;
- UIComponent headerFacet = aColumn.getHeader();
-
- boolean replaceHeaderFacets = isSortable(); //if the table is sortable, all
- //header facets can be changed if needed
+ UIColumn aColumn = (UIColumn)component;
+ UIComponent headerFacet = aColumn.getHeader();
+
+ boolean replaceHeaderFacets = isSortable(); //if the table is sortable, all
+ //header facets can be changed if needed
String columnName = null;
String propertyName = null;
boolean defaultSorted = false;
@@ -477,49 +477,49 @@
HtmlSimpleColumn asColumn = (HtmlSimpleColumn)aColumn;
propertyName = asColumn.getSortPropertyName();
defaultSorted = asColumn.isDefaultSorted();
-
+
if (asColumn.isSortable())
replaceHeaderFacets = true;
}
-
+
//replace header facet with a sortable header component if needed
if (replaceHeaderFacets && isSortHeaderNeeded(aColumn, headerFacet))
- {
+ {
propertyName = propertyName != null ? propertyName : getSortPropertyFromEL(aColumn);
-
- HtmlCommandSortHeader sortHeader = createSortHeaderComponent(context, aColumn, headerFacet, propertyName);
+
+ HtmlCommandSortHeader sortHeader = createSortHeaderComponent(context, aColumn, headerFacet, propertyName);
columnName = sortHeader.getColumnName();
aColumn.setHeader(sortHeader);
- sortHeader.setParent(aColumn);
- }
+ sortHeader.setParent(aColumn);
+ }
else if (headerFacet instanceof HtmlCommandSortHeader)
- {
+ {
HtmlCommandSortHeader sortHeader = (HtmlCommandSortHeader)headerFacet;
columnName = sortHeader.getColumnName();
propertyName = sortHeader.getPropertyName();
}
-
+
//make the column marked as default sorted be the current sorted column
if (defaultSorted && getSortColumn() == null)
- {
+ {
setSortColumn(columnName);
setSortProperty(propertyName);
}
}
- }
+ }
// Now invoke the superclass encodeBegin, which will eventually
// execute the encodeBegin for the associated renderer.
super.encodeBegin(context);
- }
-
+ }
+
/**
*
*/
- protected boolean isSortHeaderNeeded(UIColumn parentColumn, UIComponent headerFacet)
+ protected boolean isSortHeaderNeeded(UIColumn parentColumn, UIComponent headerFacet)
{
- return !(headerFacet instanceof HtmlCommandSortHeader);
+ return !(headerFacet instanceof HtmlCommandSortHeader);
}
/**
*
@@ -527,82 +527,82 @@
protected HtmlCommandSortHeader createSortHeaderComponent(FacesContext context, UIColumn parentColumn, UIComponent initialHeaderFacet, String propertyName)
{
Application application = context.getApplication();
-
- HtmlCommandSortHeader sortHeader = (HtmlCommandSortHeader)application.createComponent(HtmlCommandSortHeader.COMPONENT_TYPE);
+
+ HtmlCommandSortHeader sortHeader = (HtmlCommandSortHeader)application.createComponent(HtmlCommandSortHeader.COMPONENT_TYPE);
String id = context.getViewRoot().createUniqueId();
sortHeader.setId(id);
sortHeader.setColumnName(id);
sortHeader.setPropertyName(propertyName);
- sortHeader.setArrow(true);
+ sortHeader.setArrow(true);
sortHeader.setImmediate(true); //needed to work when dataScroller is present
sortHeader.getChildren().add(initialHeaderFacet);
initialHeaderFacet.setParent(sortHeader);
-
+
return sortHeader;
}
/**
*
*/
protected String getSortPropertyFromEL(UIComponent component)
- {
+ {
if (getVar() == null)
- return null;
-
+ return null;
+
for (Iterator iter = component.getChildren().iterator(); iter.hasNext();)
{
- UIComponent aChild = (UIComponent) iter.next();
+ UIComponent aChild = (UIComponent) iter.next();
if (aChild.isRendered() && aChild instanceof UIOutput)
{
UIOutput output = (UIOutput)aChild;
-
- ValueBinding vb = output.getValueBinding("value");
+
+ ValueBinding vb = output.getValueBinding("value");
if (vb != null)
{
String expressionString = vb.getExpressionString();
-
+
int varIndex = expressionString.indexOf(getVar()+".");
if (varIndex != -1)
{
int varEndIndex = varIndex + getVar().length();
- String tempProp = expressionString.substring(varEndIndex + 1, expressionString.length());
-
+ String tempProp = expressionString.substring(varEndIndex + 1, expressionString.length());
+
StringTokenizer tokenizer = new StringTokenizer(tempProp, " +[]{}-/*|?:&<>!=()%");
- if (tokenizer.hasMoreTokens())
- return tokenizer.nextToken();
+ if (tokenizer.hasMoreTokens())
+ return tokenizer.nextToken();
}
}
}
else return getSortPropertyFromEL(aChild);
}
-
+
return null;
}
/**
* @return the index coresponding to the given column name.
*/
protected int columnNameToIndex(String columnName)
- {
+ {
int index = 0;
for (Iterator iter = getChildren().iterator(); iter.hasNext();)
{
- UIComponent aChild = (UIComponent)iter.next();
+ UIComponent aChild = (UIComponent)iter.next();
if (aChild instanceof UIColumn)
{
UIComponent headerFacet = ((UIColumn)aChild).getHeader();
if (headerFacet != null && headerFacet instanceof HtmlCommandSortHeader)
{
- HtmlCommandSortHeader sortHeader = (HtmlCommandSortHeader)headerFacet;
+ HtmlCommandSortHeader sortHeader = (HtmlCommandSortHeader)headerFacet;
if (columnName != null && columnName.equals(sortHeader.getColumnName()))
return index;
- }
+ }
}
-
+
index += 1;
}
-
+
return -1;
}
-
+
/**
* @see javax.faces.component.UIData#encodeEnd(javax.faces.context.FacesContext)
*/
@@ -669,7 +669,7 @@
{
boolean preserveSort = isPreserveSort();
boolean sortable = isSortable();
-
+
Object values[] = new Object[33];
values[0] = super.saveState(context);
values[1] = _preserveDataModel;
@@ -707,13 +707,13 @@
values[24] = preserveSort ? getSortColumn() : null;
values[25] = preserveSort ? Boolean.valueOf(isSortAscending()) : null;
-
+
values[26] = _varDetailToggler;
values[27] = _expandedNodes;
values[28] = _rowGroupStyle;
values[29] = _rowGroupStyleClass;
values[30] = _sortedColumnVar;
- values[31] = new Integer(_sortColumnIndex);
+ values[31] = new Integer(_sortColumnIndex);
values[32] = new Integer(_newspaperColumns);
@@ -724,28 +724,28 @@
* @see org.apache.myfaces.component.html.ext.HtmlDataTableHack#getDataModel()
*/
protected DataModel getDataModel()
- {
+ {
if (_preservedDataModel != null)
{
setDataModel(_preservedDataModel);
_preservedDataModel = null;
}
-
- return super.getDataModel();
+
+ return super.getDataModel();
}
/**
* @see org.apache.myfaces.component.html.ext.HtmlDataTableHack#createDataModel()
*/
protected DataModel createDataModel()
{
- DataModel dataModel = super.createDataModel();
-
+ DataModel dataModel = super.createDataModel();
+
boolean isSortable = isSortable();
-
+
if (!(dataModel instanceof SortableModel))
- {
+ {
//if sortable=true make each column sortable
- //if sortable=false, check to see if at least one column sortable
+ //if sortable=false, check to see if at least one column sortable
for (Iterator iter = getChildren().iterator(); iter.hasNext();)
{
UIComponent component = (UIComponent) iter.next();
@@ -754,30 +754,30 @@
HtmlSimpleColumn aColumn = (HtmlSimpleColumn)component;
if (isSortable())
aColumn.setSortable(true);
-
+
if (aColumn.isSortable())
isSortable = true;
-
+
if (aColumn.isDefaultSorted() && getSortColumn() == null)
setSortProperty(aColumn.getSortPropertyName());
}
}
-
+
if (isSortable)
- dataModel = new SortableModel(dataModel);
+ dataModel = new SortableModel(dataModel);
}
-
+
if (isSortable && getSortProperty() != null)
- {
+ {
SortCriterion criterion = new SortCriterion(getSortProperty(), isSortAscending());
List criteria = new ArrayList();
criteria.add(criterion);
((SortableModel)dataModel).setSortCriteria(criteria);
- }
-
+ }
+
return dataModel;
- }
+ }
public void restoreState(FacesContext context, Object state)
{
@@ -796,7 +796,7 @@
_forceIdIndexFormula = (String) values[4];
_sortColumn = (String) values[5];
_sortAscending = (Boolean) values[6];
- _sortProperty = (String) values[7];
+ _sortProperty = (String) values[7];
_sortable = (Boolean) values[8];
_renderedIfEmpty = (Boolean) values[9];
_rowCountVar = (String) values[10];
@@ -835,7 +835,7 @@
}
}
}
-
+
_varDetailToggler = (String)values[26];
_expandedNodes = (Set)values[27];
_rowGroupStyle = (String)values[28];
@@ -940,7 +940,7 @@
* but it works.
*/
public void setSortColumn(String sortColumn)
- {
+ {
_sortColumn = sortColumn;
// update model is necessary here, because processUpdates is never called
// reason: HtmlCommandSortHeader.isImmediate() == true
@@ -949,14 +949,14 @@
{
vb.setValue(getFacesContext(), _sortColumn);
_sortColumn = null;
- }
-
+ }
+
setSortColumnIndex(columnNameToIndex(sortColumn));
}
public String getSortColumn()
{
- if (_sortColumn != null) return _sortColumn;
+ if (_sortColumn != null) return _sortColumn;
ValueBinding vb = getValueBinding("sortColumn");
return vb != null ? (String) vb.getValue(getFacesContext()) : null;
}
@@ -982,10 +982,10 @@
Boolean v = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
return v != null ? v.booleanValue() : DEFAULT_SORTASCENDING;
}
-
+
public void setSortProperty(String sortProperty)
- {
- _sortProperty = sortProperty;
+ {
+ _sortProperty = sortProperty;
}
public String getSortProperty()
@@ -995,17 +995,17 @@
public void setSortable(boolean sortable)
{
- _sortable = sortable ? Boolean.TRUE : Boolean.FALSE;
+ _sortable = sortable ? Boolean.TRUE : Boolean.FALSE;
}
public boolean isSortable()
- {
+ {
if (_sortable != null) return _sortable.booleanValue();
ValueBinding vb = getValueBinding("sortable");
- Boolean v = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
+ Boolean v = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
return v != null ? v.booleanValue() : DEFAULT_SORTABLE;
}
-
+
public void setRowOnMouseOver(String rowOnMouseOver)
{
_rowOnMouseOver = rowOnMouseOver;
@@ -1230,51 +1230,6 @@
{
Integer rowIndex = new Integer(getRowIndex());
- * Expand all details
- */
- public void expandAllDetails()
- {
- int rowCount = getRowCount();
-
- _expandedNodes.clear();
- for (int row = 0; row < rowCount; row++)
- {
- _expandedNodes.add(new Integer(row));
- }
- }
-
- /**
- * Collapse all details
- */
- public void collapseAllDetails()
- {
- _expandedNodes.clear();
- }
-
- /**
- * @return true is any of the details is expanded
- */
- public boolean isExpandedEmpty() {
- boolean expandedEmpty = true;
- if (_expandedNodes != null) {
- expandedEmpty = _expandedNodes.isEmpty();
- }
- return expandedEmpty;
- }
-
- /**
- * Clears expanded nodes set if expandedEmpty is true
- * @param expandedEmpty
- */
- public void setExpandedEmpty(boolean expandedEmpty) {
- if (expandedEmpty) {
- if (_expandedNodes != null) {
- _expandedNodes.clear();
- }
- }
- }
-
- /**
if(_expandedNodes.contains(rowIndex))
{
_expandedNodes.remove(rowIndex);