to.etc.domui.component.tbl
Class DataTable<T>

java.lang.Object
  extended by to.etc.domui.dom.css.CssBase
      extended by to.etc.domui.dom.html.NodeBase
          extended by to.etc.domui.dom.html.NodeContainer
              extended by to.etc.domui.dom.html.Div
                  extended by to.etc.domui.component.tbl.TableModelTableBase<T>
                      extended by to.etc.domui.component.tbl.TabularComponentBase<T>
                          extended by to.etc.domui.component.tbl.DataTable<T>
All Implemented Interfaces:
java.lang.Iterable<NodeBase>, IModelBinding, ITableModelListener<T>, INodeErrorDelegate, IDraggable, IDropTargetable
Direct Known Subclasses:
CheckBoxDataTable, MultipleSelectionDataTable

public class DataTable<T>
extends TabularComponentBase<T>

POC for a datatable based on the live dom code.

Author:
Frits Jalvingh Created on Jun 1, 2008

Field Summary
 
Fields inherited from class to.etc.domui.component.tbl.TabularComponentBase
m_eix, m_six
 
Constructor Summary
DataTable(ITableModel<T> m)
           
DataTable(ITableModel<T> m, IRowRenderer<T> r)
           
 
Method Summary
 void createContent()
           
protected  TBody getDataBody()
           
 int getPageSize()
           
 IRowRenderer<T> getRowRenderer()
           
protected  Table getTable()
          Return the backing table for this data browser.
 void modelChanged(ITableModel<T> model)
          Called when there are sweeping changes to the model.
protected  void renderHeader(HeaderContainer<T> hc)
          Renders row header into specified header container.
protected  void renderRow(TR tr, ColumnContainer<T> cc, int index, T value)
          Renders row content into specified row.
 void rowAdded(ITableModel<T> model, int index, T value)
          Row add.
 void rowDeleted(ITableModel<T> model, int index, T value)
          Delete the row specified.
 void rowModified(ITableModel<T> model, int index, T value)
          Merely force a full redraw of the appropriate row.
protected  void setDataBody(TBody dataBody)
          UNSTABLE INTERFACE - UNDER CONSIDERATION.
 void setPageSize(int pageSize)
           
 void setRowRenderer(IRowRenderer<T> rowRenderer)
           
 void setTableWidth(java.lang.String w)
           
 
Methods inherited from class to.etc.domui.component.tbl.TabularComponentBase
addChangeListener, calcIndices, fireModelChanged, firePageChanged, getCurrentPage, getPageCount, getPageItems, getTruncatedCount, removeChangeListener, setCurrentPage
 
Methods inherited from class to.etc.domui.component.tbl.TableModelTableBase
getModel, getModelItem, onRefresh, onShelve, onUnshelve, setModel
 
Methods inherited from class to.etc.domui.dom.html.Div
afterCreateContent, componentHandleWebAction, fadeIn, fadeIn, fadeOut, getDragHandler, getDropBody, getDropHandler, getDropMode, getReturnPressed, setDragHandler, setDropBody, setDropHandler, setReturnPressed, slideDown, slideUp, tb, visit
 
Methods inherited from class to.etc.domui.dom.html.NodeContainer
add, add, add, addTable, canContain, delegateTo, findChildIndex, forceRebuild, getChild, getChildCount, getChildren, getDeepChild, getDeepChildren, getErrorFence, internalCheckNotDirty, internalClearDelta, internalClearDeltaFully, internalGetOldChildren, internalShelve, internalUnshelve, iterator, moveControlToModel, moveModelToControl, removeAllChildren, removeChild, removeChild, replaceChild, setControlsEnabled, setErrorFence, setErrorFence, setText, setValue
 
Methods inherited from class to.etc.domui.dom.html.NodeBase
$, acceptRequestParameter, addCssClass, addGlobalMessage, appendAfterMe, appendBeforeMe, appendCreateJS, appendJavascript, build, changed, clearFocusRequested, clearGlobalMessage, clearGlobalMessage, clearGlobalMessage, clearMessage, findComponentBundle, getActualID, getClicked, getComponentBundle, getCreateJS, getCssClass, getErrorDelegate, getErrorLocation, getMessage, getOnClickJS, getOnMouseDownJS, getPage, getParent, getParent, getParent, getSharedContext, getSpecialAttribute, getSpecialAttributeList, getTag, getTestID, getTitle, getUserObject, handleDrop, hasCssClass, hasError, internalGetOldParent, internalHasChangedAttributes, internalNeedClickHandler, internalOnClicked, internalSetHasChangedAttributes, internalSetHasChangedAttributes, internalSetTag, isBuilt, isFocusRequested, onAddedToPage, onBeforeFullRender, onForceRebuild, onHeaderContributors, onRemoveFromPage, refresh, remove, removeCssClass, renderJavascriptState, replaceWith, setClicked, setComponentBundle, setCssClass, setErrorDelegate, setErrorLocation, setFocus, setMessage, setOnClickJS, setOnMouseDownJS, setSpecialAttribute, setTestID, setTitle, setUserObject, stretchHeight, toString
 
Methods inherited from class to.etc.domui.dom.css.CssBase
getBackgroundAttachment, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorderBottomColor, getBorderBottomStyle, getBorderBottomWidth, getBorderLeftColor, getBorderLeftStyle, getBorderLeftWidth, getBorderRightColor, getBorderRightStyle, getBorderRightWidth, getBorderTopColor, getBorderTopStyle, getBorderTopWidth, getBottom, getCachedStyle, getClear, getColor, getDisplay, getFloat, getFontFamily, getFontSize, getFontSizeAdjust, getFontStyle, getFontVariant, getFontWeight, getHeight, getLeft, getLineHeight, getMarginBottom, getMarginLeft, getMarginRight, getMarginTop, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOverflow, getPosition, getRight, getTextAlign, getTop, getTransform, getVerticalAlign, getVisibility, getWidth, getZIndex, internalSetDisplay, setBackgroundAttachment, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBorder, setBorderBottomColor, setBorderBottomStyle, setBorderBottomWidth, setBorderColor, setBorderLeftColor, setBorderLeftStyle, setBorderLeftWidth, setBorderRightColor, setBorderRightStyle, setBorderRightWidth, setBorderStyle, setBorderTopColor, setBorderTopStyle, setBorderTopWidth, setBorderWidth, setBottom, setBottom, setCachedStyle, setClear, setColor, setDisplay, setFloat, setFontFamily, setFontSize, setFontSizeAdjust, setFontStyle, setFontVariant, setFontWeight, setHeight, setLeft, setLeft, setLineHeight, setMargin, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setMaxHeight, setMaxWidth, setMinHeight, setMinWidth, setOverflow, setPosition, setRight, setRight, setTextAlign, setTop, setTop, setTransform, setVerticalAlign, setVisibility, setWidth, setZIndex
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DataTable

public DataTable(@Nonnull
                 ITableModel<T> m,
                 @Nonnull
                 IRowRenderer<T> r)

DataTable

public DataTable(@Nonnull
                 ITableModel<T> m)
Method Detail

getTable

@Nullable
protected Table getTable()
Return the backing table for this data browser. For component extension only - DO NOT MAKE PUBLIC.

Returns:

setDataBody

protected void setDataBody(@Nullable
                           TBody dataBody)
UNSTABLE INTERFACE - UNDER CONSIDERATION.

Parameters:
dataBody -

getDataBody

@Nullable
protected TBody getDataBody()

createContent

public void createContent()
                   throws java.lang.Exception
Overrides:
createContent in class NodeBase
Throws:
java.lang.Exception

getPageSize

public int getPageSize()

setPageSize

public void setPageSize(int pageSize)

modelChanged

public void modelChanged(@Nullable
                         ITableModel<T> model)
Called when there are sweeping changes to the model. It forces a complete re-render of the table.


renderRow

protected void renderRow(@Nonnull
                         TR tr,
                         @Nonnull
                         ColumnContainer<T> cc,
                         int index,
                         @Nullable
                         T value)
                  throws java.lang.Exception
Renders row content into specified row. It can be overriden if some specific content rendering is needed in sub class.

Parameters:
cc -
index -
value -
Throws:
java.lang.Exception

renderHeader

protected void renderHeader(@Nonnull
                            HeaderContainer<T> hc)
                     throws java.lang.Exception
Renders row header into specified header container. It can be overriden if some specific content rendering is needed in sub class.

Parameters:
hc - specified header container
Throws:
java.lang.Exception

rowAdded

public void rowAdded(@Nonnull
                     ITableModel<T> model,
                     int index,
                     @Nullable
                     T value)
              throws java.lang.Exception
Row add. Determine if the row is within the paged-in indexes. If not we ignore the request. If it IS within the paged content we insert the new TR. Since this adds a new row to the visible set we check if the resulting rowset is not bigger than the page size; if it is we delete the last node. After all this the renderer will render the correct result. When called the actual insert has already taken place in the model.

Throws:
java.lang.Exception
See Also:
ITableModelListener.rowAdded(to.etc.domui.component.tbl.ITableModel, int, java.lang.Object)

rowDeleted

public void rowDeleted(@Nonnull
                       ITableModel<T> model,
                       int index,
                       @Nullable
                       T value)
                throws java.lang.Exception
Delete the row specified. If it is not visible we do nothing. If it is visible we delete the row. This causes one less row to be shown, so we check if we have a pagesize set; if so we add a new row at the end IF it is available.

index - The index of the deleted row in the table.
value - The deleted value.
Throws:
java.lang.Exception
See Also:
ITableModelListener.rowDeleted(to.etc.domui.component.tbl.ITableModel, int, java.lang.Object)

rowModified

public void rowModified(@Nonnull
                        ITableModel<T> model,
                        int index,
                        @Nullable
                        T value)
                 throws java.lang.Exception
Merely force a full redraw of the appropriate row.

Throws:
java.lang.Exception
See Also:
ITableModelListener.rowModified(to.etc.domui.component.tbl.ITableModel, int, java.lang.Object)

setTableWidth

public void setTableWidth(@Nullable
                          java.lang.String w)

getRowRenderer

@Nonnull
public IRowRenderer<T> getRowRenderer()

setRowRenderer

public void setRowRenderer(@Nonnull
                           IRowRenderer<T> rowRenderer)