📄 htmldatatable.java
字号:
} else { last = first + rows; } try { for (int rowIndex = first; rowIndex < last; rowIndex++) { setRowIndex(rowIndex); if (isRowAvailable()) { if (!isAllEditableValueHoldersValidRecursive(getFacetsAndChildren())) { return false; } } } } finally { setRowIndex(-1); } return true; } private boolean isAllEditableValueHoldersValidRecursive(Iterator facetsAndChildrenIterator) { while (facetsAndChildrenIterator.hasNext()) { UIComponent c = (UIComponent)facetsAndChildrenIterator.next(); if (c instanceof EditableValueHolder && !((EditableValueHolder)c).isValid()) { return false; } if (!isAllEditableValueHoldersValidRecursive(c.getFacetsAndChildren())) { return false; } } return true; } protected void refresh(FacesContext context) { if (log.isDebugEnabled()) log.debug("Refresh for HtmlDataTable " + getClientId(context) + " was called"); if (_firstTimeRendered || isAllChildrenAndFacetsValid()) { // No invalid children // --> clear data model _dataModel = null; if (_dataModelMap != null) _dataModelMap.clear(); _isDataModelRestored = false; _saveDescendantStates = false; // no need to save children states } else { _saveDescendantStates = true; // save children states (valid flag, submittedValues, etc.) } } public void encodeBegin(FacesContext context) throws IOException { //refresh of _dataModel already done via refresh (called by HtmlDataTablePhaseListener) if (isRenderedIfEmpty() || getRowCount() > 0) { if (context == null) throw new NullPointerException("context"); if (!isRendered()) return; Renderer renderer = getRenderer(context); if (renderer != null) { renderer.encodeBegin(context, this); } } } public void encodeChildren(FacesContext context) throws IOException { if (isRenderedIfEmpty() || getRowCount() > 0) { super.encodeChildren(context); } } public void encodeEnd(FacesContext context) throws IOException { if (isRenderedIfEmpty() || getRowCount() > 0) { super.encodeEnd(context); } } public int getFirst() { if (_isDataModelRestored) { //Rather get the currently restored DataModel attribute return ((_SerializableDataModel)_dataModel).getFirst(); } else { return super.getFirst(); } } public void setFirst(int first) { if (_isDataModelRestored) { //Also change the currently restored DataModel attribute ((_SerializableDataModel)_dataModel).setFirst(first); } super.setFirst(first); } public int getRows() { if (_isDataModelRestored) { //Rather get the currently restored DataModel attribute return ((_SerializableDataModel)_dataModel).getRows(); } else { return super.getRows(); } } public void setRows(int rows) { if (_isDataModelRestored) { //Also change the currently restored DataModel attribute ((_SerializableDataModel)_dataModel).setRows(rows); } super.setRows(rows); } public Object saveState(FacesContext context) { boolean preserveSort = isPreserveSort(); Object values[] = new Object[9]; values[0] = super.saveState(context); values[1] = _preserveDataModel; if (isPreserveDataModel()) { values[2] = saveAttachedState(context, getSerializableDataModel()); } else { values[2] = null; } values[3] = _preserveSort; values[4] = preserveSort ? getSortColumn() : _sortColumn; values[5] = preserveSort ? Boolean.valueOf(isSortAscending()) : _sortAscending; values[6] = _renderedIfEmpty; values[7] = _rowCountVar; values[8] = _rowIndexVar; return ((Object) (values)); } public void restoreState(FacesContext context, Object state) { Object values[] = (Object[])state; super.restoreState(context, values[0]); _preserveDataModel = (Boolean)values[1]; if (isPreserveDataModel()) { _dataModel = (_SerializableDataModel)restoreAttachedState(context, values[2]); _isDataModelRestored = true; } else { _dataModel = null; _isDataModelRestored = false; } _preserveSort = (Boolean)values[3]; _sortColumn = (String)values[4]; _sortAscending = (Boolean)values[5]; _renderedIfEmpty = (Boolean)values[6]; _rowCountVar = (String)values[7]; _rowIndexVar = (String)values[8]; // restore state means component was already rendered at least once: _firstTimeRendered = false; } public _SerializableDataModel getSerializableDataModel() { if (_dataModel != null) { if (_dataModel instanceof _SerializableDataModel) { return (_SerializableDataModel)_dataModel; } else { return new _SerializableDataModel(getFirst(), getRows(), _dataModel); } } Object value = getValue(); if (value == null) { return null; } else if (value instanceof DataModel) { return new _SerializableDataModel(getFirst(), getRows(), (DataModel)value); } else if (value instanceof List) { return new _SerializableListDataModel(getFirst(), getRows(), (List)value); } else if (OBJECT_ARRAY_CLASS.isAssignableFrom(value.getClass())) { return new _SerializableArrayDataModel(getFirst(), getRows(), (Object[])value); } else if (value instanceof ResultSet) { return new _SerializableResultSetDataModel(getFirst(), getRows(), (ResultSet)value); } else if (value instanceof javax.servlet.jsp.jstl.sql.Result) { return new _SerializableResultDataModel(getFirst(), getRows(), (javax.servlet.jsp.jstl.sql.Result)value); } else { return new _SerializableScalarDataModel(getFirst(), getRows(), (Object)value); } } public boolean isRendered() { if (!UserRoleUtils.isVisibleOnUserRole(this)) return false; return super.isRendered(); } public void setSortColumn(String sortColumn) { _sortColumn = sortColumn; // update model is necessary here, because processUpdates is never called // reason: HtmlCommandSortHeader.isImmediate() == true ValueBinding vb = getValueBinding("sortColumn"); if (vb != null) { vb.setValue(getFacesContext(), _sortColumn); _sortColumn = null; } } public String getSortColumn() { if (_sortColumn != null) return _sortColumn; ValueBinding vb = getValueBinding("sortColumn"); return vb != null ? (String)vb.getValue(getFacesContext()) : null; } public void setSortAscending(boolean sortAscending) { _sortAscending = Boolean.valueOf(sortAscending); // update model is necessary here, because processUpdates is never called // reason: HtmlCommandSortHeader.isImmediate() == true ValueBinding vb = getValueBinding("sortAscending"); if (vb != null) { vb.setValue(getFacesContext(), _sortAscending); _sortAscending = null; } } public boolean isSortAscending() { if (_sortAscending != null) return _sortAscending.booleanValue(); ValueBinding vb = getValueBinding("sortAscending"); Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null; return v != null ? v.booleanValue() : DEFAULT_SORTASCENDING; } //------------------ GENERATED CODE BEGIN (do not modify!) -------------------- public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlDataTable"; private static final boolean DEFAULT_PRESERVEDATAMODEL = false; private static final boolean DEFAULT_PRESERVESORT = true; private static final boolean DEFAULT_RENDEREDIFEMPTY = true; private Boolean _preserveDataModel = null; private Boolean _preserveSort = null; private String _enabledOnUserRole = null; private String _visibleOnUserRole = null; private Boolean _renderedIfEmpty = null; private String _rowIndexVar = null; private String _rowCountVar = null; private String _previousRowDataVar = null; public HtmlDataTable() { } public void setPreserveDataModel(boolean preserveDataModel) { _preserveDataModel = Boolean.valueOf(preserveDataModel); } public boolean isPreserveDataModel() { if (_preserveDataModel != null) return _preserveDataModel.booleanValue(); ValueBinding vb = getValueBinding("preserveDataModel"); Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null; return v != null ? v.booleanValue() : DEFAULT_PRESERVEDATAMODEL; } public void setPreserveSort(boolean preserveSort) { _preserveSort = Boolean.valueOf(preserveSort); } public boolean isPreserveSort() { if (_preserveSort != null) return _preserveSort.booleanValue(); ValueBinding vb = getValueBinding("preserveSort"); Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null; return v != null ? v.booleanValue() : DEFAULT_PRESERVESORT; } public void setEnabledOnUserRole(String enabledOnUserRole) { _enabledOnUserRole = enabledOnUserRole; } public String getEnabledOnUserRole() { if (_enabledOnUserRole != null) return _enabledOnUserRole; ValueBinding vb = getValueBinding("enabledOnUserRole"); return vb != null ? (String)vb.getValue(getFacesContext()) : null; } public void setVisibleOnUserRole(String visibleOnUserRole) { _visibleOnUserRole = visibleOnUserRole; } public String getVisibleOnUserRole() { if (_visibleOnUserRole != null) return _visibleOnUserRole; ValueBinding vb = getValueBinding("visibleOnUserRole"); return vb != null ? (String)vb.getValue(getFacesContext()) : null; } public void setRenderedIfEmpty(boolean renderedIfEmpty) { _renderedIfEmpty = Boolean.valueOf(renderedIfEmpty); } public boolean isRenderedIfEmpty() { if (_renderedIfEmpty != null) return _renderedIfEmpty.booleanValue(); ValueBinding vb = getValueBinding("renderedIfEmpty"); Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null; return v != null ? v.booleanValue() : DEFAULT_RENDEREDIFEMPTY; } public void setRowIndexVar(String rowIndexVar) { _rowIndexVar = rowIndexVar; } public String getRowIndexVar() { if (_rowIndexVar != null) return _rowIndexVar; ValueBinding vb = getValueBinding("rowIndexVar"); return vb != null ? (String)vb.getValue(getFacesContext()) : null; } public void setRowCountVar(String rowCountVar) { _rowCountVar = rowCountVar; } public String getRowCountVar() { if (_rowCountVar != null) return _rowCountVar; ValueBinding vb = getValueBinding("rowCountVar"); return vb != null ? (String)vb.getValue(getFacesContext()) : null; } public void setPreviousRowDataVar(String previousRowDataVar) { _previousRowDataVar = previousRowDataVar; } public String getPreviousRowDataVar() { if (_previousRowDataVar != null) return _previousRowDataVar; ValueBinding vb = getValueBinding("previousRowDataVar"); return vb != null ? (String)vb.getValue(getFacesContext()) : null; } //------------------ GENERATED CODE END ---------------------------------------}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -