package fr.lteconsulting.hexa.databinding.gwt;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import fr.lteconsulting.hexa.databinding.Converter;
import fr.lteconsulting.hexa.databinding.Mode;
import fr.lteconsulting.hexa.databinding.propertyadapters.PropertyAdapter;
/**
* DataBinding for GWT implementation.
* @author Ben Dol
*/
public class DataBinding extends fr.lteconsulting.hexa.databinding.DataBinding {
public DataBinding(Object source, String sourceProperty, Object destination,
String destinationProperty, Mode bindingMode) {
super(source, sourceProperty, destination, destinationProperty, bindingMode);
}
public DataBinding(PropertyAdapter source, PropertyAdapter destination, Mode bindingMode,
Converter converter, String logPrefix) {
super(source, destination, bindingMode, converter, logPrefix);
}
@Override
public DataBinding activate() {
return (DataBinding) super.activate();
}
@Override
public DataBinding suspend() {
return (DataBinding) super.suspend();
}
/**
* Activates the data binding using the deferred scheduler.
* @see #activate()
*/
public void deferActivate() {
log( "deferred activation..." );
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
activate();
}
});
}
}