]> source.dussan.org Git - vaadin-framework.git/commitdiff
Added ComponentConnector.isAttached (#11928)
authorArtur Signell <artur@vaadin.com>
Mon, 27 May 2013 13:37:32 +0000 (16:37 +0300)
committerArtur Signell <artur@vaadin.com>
Tue, 28 May 2013 09:45:13 +0000 (12:45 +0300)
Change-Id: I70d7d78a0d9de76080f6e0770a48504af8abdd84

server/src/com/vaadin/event/dd/acceptcriteria/SourceIs.java
server/src/com/vaadin/server/AbstractClientConnector.java
server/src/com/vaadin/server/ClientConnector.java
server/src/com/vaadin/server/DragAndDropService.java
server/src/com/vaadin/server/LegacyApplication.java
server/src/com/vaadin/ui/LegacyWindow.java
server/src/com/vaadin/ui/UI.java
server/src/com/vaadin/ui/components/colorpicker/ColorPickerHistory.java

index 65c1050fb08815619e35f6821acdaab5b16de576..0cc2f0a1a57e571db495f804407cdceea000d4e0 100644 (file)
@@ -48,7 +48,7 @@ public class SourceIs extends ClientSideCriterion {
         int paintedComponents = 0;
         for (int i = 0; i < components.length; i++) {
             Component c = components[i];
-            if (c.getUI() != null && c.getUI().getSession() != null) {
+            if (c.isAttached()) {
                 target.addAttribute("component" + paintedComponents++, c);
             } else {
                 Logger.getLogger(SourceIs.class.getName())
index e998b8ed55ba9de8bd5ce7f446e2e7257dac2aab..01f7d9af4207169e0d1be412d312b653e762becb 100644 (file)
@@ -577,7 +577,7 @@ public abstract class AbstractClientConnector implements ClientConnector,
         }
 
         // Send detach event if the component have been connected to a window
-        if (getSession() != null) {
+        if (isAttached()) {
             detach();
         }
 
@@ -585,7 +585,7 @@ public abstract class AbstractClientConnector implements ClientConnector,
         this.parent = parent;
 
         // Send attach event if connected to an application
-        if (getSession() != null) {
+        if (isAttached()) {
             attach();
         }
     }
@@ -595,6 +595,16 @@ public abstract class AbstractClientConnector implements ClientConnector,
         return parent;
     }
 
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.vaadin.server.ClientConnector#isAttached()
+     */
+    @Override
+    public boolean isAttached() {
+        return getSession() != null;
+    }
+
     @Override
     public void attach() {
         markAsDirty();
index 3b52fbc730e3cf0566b30c6fc5c80637c6cb81c9..9e328bb6ef374f8188d90b318463e8be7f7eb612 100644 (file)
@@ -226,14 +226,22 @@ public interface ClientConnector extends Connector {
     public void setParent(ClientConnector parent);
 
     /**
-     * Notifies the connector that it is connected to an application.
+     * Checks if the connector is attached to a VaadinSession.
      * 
+     * @since 7.1
+     * @return true if the connector is attached to a session, false otherwise
+     */
+    public boolean isAttached();
+
+    /**
+     * Notifies the connector that it is connected to a VaadinSession (and
+     * therefore also to a UI).
      * <p>
      * The caller of this method is {@link #setParent(ClientConnector)} if the
-     * parent is itself already attached to the application. If not, the parent
-     * will call the {@link #attach()} for all its children when it is attached
-     * to the application. This method is always called before the connector's
-     * data is sent to the client-side for the first time.
+     * parent is itself already attached to the session. If not, the parent will
+     * call the {@link #attach()} for all its children when it is attached to
+     * the session. This method is always called before the connector's data is
+     * sent to the client-side for the first time.
      * </p>
      * 
      * <p>
@@ -243,13 +251,13 @@ public interface ClientConnector extends Connector {
     public void attach();
 
     /**
-     * Notifies the connector that it is detached from the application.
+     * Notifies the connector that it is detached from its VaadinSession.
      * 
      * <p>
      * The caller of this method is {@link #setParent(ClientConnector)} if the
-     * parent is in the application. When the parent is detached from the
-     * application it is its responsibility to call {@link #detach()} for each
-     * of its children.
+     * parent is in the session. When the parent is detached from the session it
+     * is its responsibility to call {@link #detach()} for each of its children.
+     * 
      * </p>
      */
     public void detach();
index a83e83ef7fb61653b551b1d7214b55478e077b44..cc571853fe379f7dd23374b14e6824243705629c 100644 (file)
@@ -375,4 +375,14 @@ public class DragAndDropService implements VariableOwner, ClientConnector {
     @Override
     public void removeDetachListener(DetachListener listener) {
     }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see com.vaadin.server.ClientConnector#isAttached()
+     */
+    @Override
+    public boolean isAttached() {
+        return true;
+    }
 }
index 54550ce134e16e5b419fe28de72b1e92cd94b3a9..44649067c5d3b72156b88898e402363464f2f0aa 100644 (file)
@@ -64,7 +64,7 @@ public abstract class LegacyApplication implements ErrorHandler {
         if (this.mainWindow != null) {
             throw new IllegalStateException("mainWindow has already been set");
         }
-        if (mainWindow.getSession() != null) {
+        if (mainWindow.isAttached()) {
             throw new IllegalStateException(
                     "mainWindow is attached to another application");
         }
index 1b66b608c1631eb6b08b4f6c7a754bdd051acbf2..458b09390da957f1336e823414f761a4637cd710 100644 (file)
@@ -125,7 +125,7 @@ public class LegacyWindow extends UI {
     public void setName(String name) {
         this.name = name;
         // The name can not be changed in application
-        if (getSession() != null) {
+        if (isAttached()) {
             throw new IllegalStateException(
                     "Window name can not be changed while "
                             + "the window is in application");
index 234a309c061b3ad1880da128466ed44c70e57042..bbc1d0cd33b23618e813f1290ecbcb8bc9909d67 100644 (file)
@@ -419,7 +419,7 @@ public abstract class UI extends AbstractSingleComponentContainer implements
             throw new NullPointerException("Argument must not be null");
         }
 
-        if (window.getUI() != null && window.getUI().getSession() != null) {
+        if (window.isAttached()) {
             throw new IllegalArgumentException(
                     "Window is already attached to an application.");
         }
index 2902585f56d035ebc467be4d704c7f2de6c95375..de8c5db195e62d8a4b90ace49e6cf903d2608747 100644 (file)
@@ -95,7 +95,7 @@ public class ColorPickerHistory extends CustomComponent implements
 
     @SuppressWarnings("unchecked")
     private ArrayBlockingQueue<Color> getColorHistory() {
-        if (getSession() != null) {
+        if (isAttached()) {
             Object colorHistory = getSession().getAttribute(
                     "colorPickerHistory");
             if (colorHistory instanceof ArrayBlockingQueue<?>) {