]> source.dussan.org Git - vaadin-framework.git/commitdiff
Unregister event for ServerConnector
authorArtur Signell <artur@vaadin.com>
Tue, 3 Apr 2012 07:00:10 +0000 (10:00 +0300)
committerArtur Signell <artur@vaadin.com>
Wed, 4 Apr 2012 21:08:37 +0000 (00:08 +0300)
src/com/vaadin/terminal/gwt/client/ConnectorMap.java
src/com/vaadin/terminal/gwt/client/ServerConnector.java
src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java
src/com/vaadin/terminal/gwt/client/ui/AbstractConnector.java

index 0873affdd18a19b07d7fa603262522718d72ceb6..e57776cf1c628a3c57028303ba3e1a1272802e75 100644 (file)
@@ -154,22 +154,10 @@ public class ConnectorMap {
         }
 
         String connectorId = connector.getConnectorId();
-        VConsole.log("Unregistering connector " + connectorId + " ("
-                + connector.getClass().getName() + ")");
 
-        // Warn if widget is still attached to DOM. It should never be at this
-        // point.
-        Widget widget = null;
-        if (connector instanceof ComponentConnector) {
-            widget = ((ComponentConnector) connector).getWidget();
-        }
-
-        if (widget != null && widget.isAttached()) {
-            VConsole.log("Widget for unregistered connector " + connectorId
-                    + " is still attached to the DOM.");
-        }
         idToComponentDetail.remove(connectorId);
         idToConnector.remove(connectorId);
+        connector.onUnregister();
 
         if (connector instanceof ComponentContainerConnector) {
             for (ComponentConnector child : ((ComponentContainerConnector) connector)
index ece2e6e02011af6534d10c6e7d4effe638a5774c..246a132c341358e253ff77f075b71f92a29b0b34 100644 (file)
@@ -104,4 +104,10 @@ public interface ServerConnector extends Connector {
      *            The event to send.
      */
     public void fireEvent(GwtEvent<?> event);
+
+    /**
+     * Event called when connector has been unregistered.
+     */
+    public void onUnregister();
+
 }
index 91c7fe32997887af43cd17961198b4481871a841..e4ca01f20038a900de647e94edc03dba1075ffc3 100644 (file)
@@ -17,6 +17,7 @@ import com.vaadin.terminal.gwt.client.LayoutManager;
 import com.vaadin.terminal.gwt.client.MouseEventDetails;
 import com.vaadin.terminal.gwt.client.TooltipInfo;
 import com.vaadin.terminal.gwt.client.UIDL;
+import com.vaadin.terminal.gwt.client.Util;
 import com.vaadin.terminal.gwt.client.VConsole;
 import com.vaadin.terminal.gwt.client.communication.ServerRpc;
 import com.vaadin.terminal.gwt.client.communication.SharedState;
@@ -371,4 +372,16 @@ public abstract class AbstractComponentConnector extends AbstractConnector
         return (reg != null && reg.contains(eventIdentifier));
     }
 
+    @Override
+    public void onUnregister() {
+        super.onUnregister();
+
+        // Warn if widget is still attached to DOM. It should never be at this
+        // point.
+        if (getWidget() != null && getWidget().isAttached()) {
+            VConsole.log("Widget for unregistered connector "
+                    + Util.getConnectorString(this)
+                    + " is still attached to the DOM.");
+        }
+    }
 }
index 77065f248c8ca111eec7ece12f530083cf438209..c89a5d0854f0ceb913bdda7a28aa25c76db5fe3f 100644 (file)
@@ -168,4 +168,13 @@ public abstract class AbstractConnector implements ServerConnector,
                 + " received by " + Util.getConnectorString(this));
     }
 
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.vaadin.terminal.gwt.client.ServerConnector#onUnregister()
+     */
+    public void onUnregister() {
+        VConsole.log("Unregistered connector " + Util.getConnectorString(this));
+
+    }
 }