Package net.svenbuschbeck.gwt.ao.client

Source Code of net.svenbuschbeck.gwt.ao.client.ChangedHandler

/**
*
*/
package net.svenbuschbeck.gwt.ao.client;

import net.svenbuschbeck.gwt.ao.client.events.HasValueChangedHandlers;
import net.svenbuschbeck.gwt.ao.client.events.ValueChangedEvent;
import net.svenbuschbeck.gwt.ao.client.events.ValueChangedHandler;

import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HandlerRegistration;

/**
*
*
* @author Sven Buschbeck
* @param <Type>
*
*/
abstract class ChangedHandler<Type> implements HasValueChangedHandlers<Type> {

  protected Type value;
  private HandlerManager manager = new HandlerManager(null);

  public HandlerRegistration addValueChangedHandler(ValueChangedHandler<Type> valueChangedHandler) {
    return addValueChangedHandler(valueChangedHandler, false);
  }

  @Override public HandlerRegistration addValueChangedHandler(ValueChangedHandler<Type> valueChangedHandler,
    boolean triggerOnceRightAway) {
    HandlerRegistration handlerRegistration = manager.addHandler(ValueChangedEvent.getType(), valueChangedHandler);
    if (triggerOnceRightAway) {
      ValueChangedEvent.fire(this, get(), get());
    }
    return handlerRegistration;
  }

  @Override public void fireEvent(GwtEvent<?> event) {
    manager.fireEvent(event);
  }

  /*
   * (non-Javadoc)
   *
   * @see java.lang.Object#toString()
   */
  @Override public String toString() {
    return getClass().getName() + "()";
  }

  public String toString(String attributes) {
    return getClass().getName() + "(" + attributes + ")";
  }

  public abstract Type get();
}
TOP

Related Classes of net.svenbuschbeck.gwt.ao.client.ChangedHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.