Eclipse Platform
Release 3.3

org.eclipse.core.databinding
Class UpdateListStrategy

java.lang.Object
  extended byorg.eclipse.core.databinding.UpdateStrategy
      extended byorg.eclipse.core.databinding.UpdateListStrategy

public class UpdateListStrategy
extends org.eclipse.core.databinding.UpdateStrategy

Customizes a Binding between two observable lists. The following behaviors can be customized via the strategy:

Conversion:
When elements are added they can be converted to the destination element type.

Automatic processing:
The processing to perform when the source observable changes. This behavior is configured via policies provided on construction of the strategy (e.g. POLICY_NEVER, POLICY_ON_REQUEST, POLICY_UPDATE).

Since:
1.0
See Also:
DataBindingContext.bindList(IObservableList, IObservableList, UpdateListStrategy, UpdateListStrategy), IConverter

Nested Class Summary
protected static class UpdateStrategy.DefaultConverter
           
 
Field Summary
protected  IConverter converter
           
static int POLICY_NEVER
          Policy constant denoting that the source observable's state should not be tracked and that the destination observable's state should never be updated.
static int POLICY_ON_REQUEST
          Policy constant denoting that the source observable's state should not be tracked, but that conversion and updating the destination observable's state should be performed when explicitly requested.
static int POLICY_UPDATE
          Policy constant denoting that the source observable's state should be tracked, and that conversion and updating the destination observable's state should be performed automatically on every change of the source observable state.
protected  boolean provideDefaults
           
 
Constructor Summary
UpdateListStrategy()
          Creates a new update list strategy for automatically updating the destination observable list whenever the source observable list changes.
UpdateListStrategy(boolean provideDefaults, int updatePolicy)
          Creates a new update list strategy with a configurable update policy.
UpdateListStrategy(int updatePolicy)
          Creates a new update list strategy with a configurable update policy.
 
Method Summary
protected  void checkAssignable(Object toType, Object fromType, String errorString)
           
 Object convert(Object element)
          When an element is added to the destination converts the element from the source element type to the destination element type.
protected  IConverter createConverter(Object fromType, Object toType)
          Tries to create a converter that can convert from values of type fromType.
protected  IStatus doAdd(IObservableList observableList, Object element, int index)
          Adds the given element at the given index to the given observable list.
protected  IStatus doRemove(IObservableList observableList, int index)
          Removes the element at the given index from the given observable list.
protected  void fillDefaults(IObservableList source, IObservableList destination)
           
 int getUpdatePolicy()
           
protected  Boolean isAssignableFromTo(Object fromType, Object toType)
           
 UpdateListStrategy setConverter(IConverter converter)
          Sets the converter to be invoked when converting added elements from the source element type to the destination element type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

POLICY_NEVER

public static int POLICY_NEVER
Policy constant denoting that the source observable's state should not be tracked and that the destination observable's state should never be updated.


POLICY_ON_REQUEST

public static int POLICY_ON_REQUEST
Policy constant denoting that the source observable's state should not be tracked, but that conversion and updating the destination observable's state should be performed when explicitly requested.


POLICY_UPDATE

public static int POLICY_UPDATE
Policy constant denoting that the source observable's state should be tracked, and that conversion and updating the destination observable's state should be performed automatically on every change of the source observable state.


converter

protected IConverter converter

provideDefaults

protected boolean provideDefaults
Constructor Detail

UpdateListStrategy

public UpdateListStrategy()
Creates a new update list strategy for automatically updating the destination observable list whenever the source observable list changes. A default converter will be provided. The defaults can be changed by calling one of the setter methods.


UpdateListStrategy

public UpdateListStrategy(int updatePolicy)
Creates a new update list strategy with a configurable update policy. A default converter will be provided. The defaults can be changed by calling one of the setter methods.

Parameters:
updatePolicy - one of POLICY_NEVER, POLICY_ON_REQUEST, or POLICY_UPDATE

UpdateListStrategy

public UpdateListStrategy(boolean provideDefaults,
                          int updatePolicy)
Creates a new update list strategy with a configurable update policy. A default converter will be provided if provideDefaults is true. The defaults can be changed by calling one of the setter methods.

Parameters:
provideDefaults - if true, default validators and a default converter will be provided based on the observable list's type.
updatePolicy - one of POLICY_NEVER, POLICY_ON_REQUEST, or POLICY_UPDATE
Method Detail

convert

public Object convert(Object element)
When an element is added to the destination converts the element from the source element type to the destination element type.

Default implementation will use the converter if one exists. If no converter exists no conversion occurs.

Parameters:
element -
Returns:
the converted element

fillDefaults

protected void fillDefaults(IObservableList source,
                            IObservableList destination)
Parameters:
source -
destination -

getUpdatePolicy

public int getUpdatePolicy()
Returns:
the update policy

setConverter

public UpdateListStrategy setConverter(IConverter converter)
Sets the converter to be invoked when converting added elements from the source element type to the destination element type.

Parameters:
converter -
Returns:
the receiver, to enable method call chaining

doAdd

protected IStatus doAdd(IObservableList observableList,
                        Object element,
                        int index)
Adds the given element at the given index to the given observable list. Clients may extend but must call the super implementation.

Parameters:
observableList -
element -
index -
Returns:
a status

doRemove

protected IStatus doRemove(IObservableList observableList,
                           int index)
Removes the element at the given index from the given observable list. Clients may extend but must call the super implementation.

Parameters:
observableList -
index -
Returns:
a status

checkAssignable

protected final void checkAssignable(Object toType,
                                     Object fromType,
                                     String errorString)

createConverter

protected IConverter createConverter(Object fromType,
                                     Object toType)
Tries to create a converter that can convert from values of type fromType. Returns null if no converter could be created. Either toType or modelDescription can be null, but not both.

Parameters:
fromType -
toType -
Returns:
an IConverter, or null if unsuccessful

isAssignableFromTo

protected Boolean isAssignableFromTo(Object fromType,
                                     Object toType)
Parameters:
fromType -
toType -
Returns:
whether fromType is assignable to toType

Eclipse Platform
Release 3.3

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2007. All rights reserved.