Browse Source

Added ServerConnector.removeStateChangeHandler API

tags/7.0.0.beta1
John Ahlroos 11 years ago
parent
commit
7323ac8890

+ 22
- 0
client/src/com/vaadin/terminal/gwt/client/ServerConnector.java View File

@@ -85,6 +85,15 @@ public interface ServerConnector extends Connector {
*/
public HandlerRegistration addStateChangeHandler(StateChangeHandler handler);

/**
* Removes a handler that is called whenever any part of the state has been
* updated by the server.
*
* @param handler
* The handler that should be removed.
*/
public void removeStateChangeHandler(StateChangeHandler handler);

/**
* Adds a handler that is called whenever the given part of the state has
* been updated by the server.
@@ -100,6 +109,19 @@ public interface ServerConnector extends Connector {
public HandlerRegistration addStateChangeHandler(String propertyName,
StateChangeHandler handler);

/**
* Removes a handler that is called whenever any part of the state has been
* updated by the server.
*
* @param propertyName
* the name of the property for which the handler should be
* called
* @param handler
* The handler that should be removed.
*/
public void removeStateChangeHandler(String propertyName,
StateChangeHandler handler);

/**
* Sends the given event to all registered handlers.
*

+ 14
- 2
client/src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java View File

@@ -1,4 +1,4 @@
/*
/*
* Copyright 2011 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -42,7 +42,7 @@ import com.vaadin.terminal.gwt.client.communication.StateChangeEvent.StateChange
*
*/
public abstract class AbstractConnector implements ServerConnector,
StateChangeHandler {
StateChangeHandler {

private ApplicationConnection connection;
private String id;
@@ -196,6 +196,11 @@ public abstract class AbstractConnector implements ServerConnector,
.addHandler(StateChangeEvent.TYPE, handler);
}

@Override
public void removeStateChangeHandler(StateChangeHandler handler) {
ensureHandlerManager().removeHandler(StateChangeEvent.TYPE, handler);
}

@Override
public HandlerRegistration addStateChangeHandler(String propertyName,
StateChangeHandler handler) {
@@ -203,6 +208,13 @@ public abstract class AbstractConnector implements ServerConnector,
StateChangeEvent.TYPE, handler);
}

@Override
public void removeStateChangeHandler(String propertyName,
StateChangeHandler handler) {
ensureHandlerManager(propertyName).removeHandler(StateChangeEvent.TYPE,
handler);
}

private HandlerManager ensureHandlerManager(String propertyName) {
if (statePropertyHandlerManagers == null) {
statePropertyHandlerManagers = new HashMap<String, HandlerManager>();

Loading…
Cancel
Save