com.extjs.gxt.ui.client.binder
Class StoreBinder<S extends Store<M>,C extends Component,M extends ModelData>

java.lang.Object
  extended by com.extjs.gxt.ui.client.event.BaseObservable
      extended by com.extjs.gxt.ui.client.binder.StoreBinder<S,C,M>
Type Parameters:
S - the store type
C - the component being bound
M - the model type
All Implemented Interfaces:
Observable, SelectionProvider<M>
Direct Known Subclasses:
DataListBinder, DataViewBinder, TableBinder, TreeBinder

public abstract class StoreBinder<S extends Store<M>,C extends Component,M extends ModelData>
extends BaseObservable
implements SelectionProvider<M>

Abstract base class for all Store Binders. Binders provide model support to data widgets by binding a Store to a component.


Field Summary
protected  C component
           
protected  ModelStringProvider<M> defaultStringProvider
           
protected  ModelStringProvider<M> iconProvider
           
protected  StoreListener<M> listener
           
protected  S store
           
protected  ModelStringProvider<M> stringProvider
           
protected  ModelStringProvider<M> styleProvider
           
 
Constructor Summary
StoreBinder(S store, C container)
          Creates a new binder instance.
 
Method Summary
 void addSelectionChangedListener(SelectionChangedListener<M> listener)
          Add a selection changed listener.
protected  void bind(S store)
           
protected abstract  void createAll()
           
abstract  Component findItem(M model)
          Returns the matching component for the given model.
protected  void fireSelectionChanged(SelectionChangedEvent<M> se)
           
protected  java.lang.String getIconValue(M model, java.lang.String property)
           
 java.util.List<M> getSelection()
          Returns the current selection.
protected abstract  java.util.List<M> getSelectionFromComponent()
           
 Store<M> getStore()
          Returns the binder's store.
protected  java.lang.String getTextValue(M model, java.lang.String property)
           
protected  java.lang.String getTextValue(M model, java.lang.String property, boolean useDefault)
           
protected  void hook()
           
 void init()
          Must be called after the binder had been configured.
 boolean isAutoSelect()
          Returns true if select on load is enabled.
 boolean isFiltered(M parent, M child)
          Returns whether the given model is filtered.
 boolean isMask()
          Returns true if masking is enabled.
protected abstract  void onAdd(StoreEvent<M> se)
           
protected  void onBeforeDataChanged(StoreEvent<M> se)
           
protected  void onClear(StoreEvent<M> se)
           
protected  void onDataChanged(StoreEvent<M> se)
           
protected  void onFilter(StoreEvent<M> se)
           
protected abstract  void onRemove(StoreEvent<M> se)
           
protected  void onSort(StoreEvent<M> se)
           
protected abstract  void onUpdate(StoreEvent<M> se)
           
protected abstract  void removeAll()
           
 void removeSelectionListener(SelectionChangedListener<M> listener)
          Removes a selection changed listener.
 void setAutoSelect(boolean autoSelect)
          True to select the first model after the store's data changes.
 void setIconProvider(ModelStringProvider<M> iconProvider)
          Sets the binder's icon provider.
 void setMask(boolean mask)
          Sets whether a mask should be displayed during a load operation.
protected  void setModel(Component c, ModelData model)
           
 void setSelection(java.util.List<M> selection)
          Sets the current selection for this selection provider.
 void setSelection(M selection)
          Sets the current selection for this selection provider.
protected abstract  void setSelectionFromProvider(java.util.List<M> selection)
           
 void setStringProvider(ModelStringProvider<M> stringProvider)
          Sets the binder's string provider.
 void setStyleProvider(ModelStringProvider<M> styleProvider)
          Sets the binder's style provider.
protected abstract  void update(M model)
           
 
Methods inherited from class com.extjs.gxt.ui.client.event.BaseObservable
addListener, callListener, fireEvent, fireEvent, getFiresEvents, getListeners, hasActiveEvent, hasListeners, hasListeners, removeAllListeners, removeListener, setFiresEvents
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

store

protected S extends Store<M> store

component

protected C extends Component component

listener

protected StoreListener<M extends ModelData> listener

stringProvider

protected ModelStringProvider<M extends ModelData> stringProvider

iconProvider

protected ModelStringProvider<M extends ModelData> iconProvider

styleProvider

protected ModelStringProvider<M extends ModelData> styleProvider

defaultStringProvider

protected ModelStringProvider<M extends ModelData> defaultStringProvider
Constructor Detail

StoreBinder

public StoreBinder(S store,
                   C container)
Creates a new binder instance.

Parameters:
store - the store
container - the container
Method Detail

addSelectionChangedListener

public void addSelectionChangedListener(SelectionChangedListener<M> listener)
Description copied from interface: SelectionProvider
Add a selection changed listener.

Specified by:
addSelectionChangedListener in interface SelectionProvider<M extends ModelData>
Parameters:
listener - a selection changed listener

findItem

public abstract Component findItem(M model)
Returns the matching component for the given model.

Parameters:
model - the model
Returns:
the component

getSelection

public java.util.List<M> getSelection()
Description copied from interface: SelectionProvider
Returns the current selection.

Specified by:
getSelection in interface SelectionProvider<M extends ModelData>
Returns:
the current selection

getStore

public Store<M> getStore()
Returns the binder's store.

Returns:
the store

init

public void init()
Must be called after the binder had been configured.


isAutoSelect

public boolean isAutoSelect()
Returns true if select on load is enabled.

Returns:
the auto select state

isFiltered

public boolean isFiltered(M parent,
                          M child)
Returns whether the given model is filtered.

Parameters:
parent - the model parent
child - the child model
Returns:
true if the child is filtered

isMask

public boolean isMask()
Returns true if masking is enabled.

Returns:
the mask state

removeSelectionListener

public void removeSelectionListener(SelectionChangedListener<M> listener)
Description copied from interface: SelectionProvider
Removes a selection changed listener.

Specified by:
removeSelectionListener in interface SelectionProvider<M extends ModelData>
Parameters:
listener - a selection changed listener

setAutoSelect

public void setAutoSelect(boolean autoSelect)
True to select the first model after the store's data changes.

Parameters:
autoSelect - true to auto select

setIconProvider

public void setIconProvider(ModelStringProvider<M> iconProvider)
Sets the binder's icon provider.

Parameters:
iconProvider - the icon provider

setMask

public void setMask(boolean mask)
Sets whether a mask should be displayed during a load operation.

Parameters:
mask - true for mask

setSelection

public void setSelection(java.util.List<M> selection)
Description copied from interface: SelectionProvider
Sets the current selection for this selection provider.

Specified by:
setSelection in interface SelectionProvider<M extends ModelData>
Parameters:
selection - the new selection

setSelection

public void setSelection(M selection)
Sets the current selection for this selection provider.

Parameters:
selection - the selection

setStringProvider

public void setStringProvider(ModelStringProvider<M> stringProvider)
Sets the binder's string provider.

Parameters:
stringProvider - the string provider

setStyleProvider

public void setStyleProvider(ModelStringProvider<M> styleProvider)
Sets the binder's style provider.

Parameters:
styleProvider - the style provider

bind

protected void bind(S store)

createAll

protected abstract void createAll()

fireSelectionChanged

protected void fireSelectionChanged(SelectionChangedEvent<M> se)

getIconValue

protected java.lang.String getIconValue(M model,
                                        java.lang.String property)

getSelectionFromComponent

protected abstract java.util.List<M> getSelectionFromComponent()

getTextValue

protected java.lang.String getTextValue(M model,
                                        java.lang.String property)

getTextValue

protected java.lang.String getTextValue(M model,
                                        java.lang.String property,
                                        boolean useDefault)

hook

protected void hook()

onAdd

protected abstract void onAdd(StoreEvent<M> se)

onBeforeDataChanged

protected void onBeforeDataChanged(StoreEvent<M> se)

onClear

protected void onClear(StoreEvent<M> se)

onDataChanged

protected void onDataChanged(StoreEvent<M> se)

onFilter

protected void onFilter(StoreEvent<M> se)

onRemove

protected abstract void onRemove(StoreEvent<M> se)

onSort

protected void onSort(StoreEvent<M> se)

onUpdate

protected abstract void onUpdate(StoreEvent<M> se)

removeAll

protected abstract void removeAll()

setModel

protected void setModel(Component c,
                        ModelData model)

setSelectionFromProvider

protected abstract void setSelectionFromProvider(java.util.List<M> selection)

update

protected abstract void update(M model)