]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #1036 and removes some obsolete code
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 1 Feb 2008 13:13:51 +0000 (13:13 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Fri, 1 Feb 2008 13:13:51 +0000 (13:13 +0000)
svn changeset:3704/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java
src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java
src/com/itmill/toolkit/ui/Window.java

index 2965acea8a5bd1c948807d422ca75bb466e4547e..9e33d478251fca2c3a606f8ada74579076782bf4 100644 (file)
@@ -1401,8 +1401,6 @@ public class ApplicationServlet extends HttpServlet {
             // Creates new manager
             mgr = new CommunicationManager(application, this);
             applicationToAjaxAppMgrMap.put(application, mgr);
-            // Manager takes control over the application
-            mgr.takeControl();
         }
 
         return mgr;
index 2b45bafe3dddce375111e41edc2265b69386c58d..5f84961591efff013ff476a30b3e4e59dedc7553 100644 (file)
@@ -36,8 +36,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.itmill.toolkit.Application;
-import com.itmill.toolkit.Application.WindowAttachEvent;
-import com.itmill.toolkit.Application.WindowDetachEvent;
 import com.itmill.toolkit.external.org.apache.commons.fileupload.FileItemIterator;
 import com.itmill.toolkit.external.org.apache.commons.fileupload.FileItemStream;
 import com.itmill.toolkit.external.org.apache.commons.fileupload.FileUploadException;
@@ -62,8 +60,7 @@ import com.itmill.toolkit.ui.Window;
  * @VERSION@
  * @since 5.0
  */
-public class CommunicationManager implements Paintable.RepaintRequestListener,
-        Application.WindowAttachListener, Application.WindowDetachListener {
+public class CommunicationManager implements Paintable.RepaintRequestListener {
 
     private static String GET_PARAM_REPAINT_ALL = "repaintAll";
 
@@ -104,24 +101,6 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
         requireLocale(application.getLocale().toString());
     }
 
-    /**
-     * 
-     * 
-     */
-    public void takeControl() {
-        application.addListener((Application.WindowAttachListener) this);
-        application.addListener((Application.WindowDetachListener) this);
-    }
-
-    /**
-     * 
-     * 
-     */
-    public void releaseControl() {
-        application.removeListener((Application.WindowAttachListener) this);
-        application.removeListener((Application.WindowDetachListener) this);
-    }
-
     /**
      * Handles file upload request submitted via Upload component.
      * 
@@ -423,7 +402,6 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
 
                 outWriter.flush();
                 outWriter.close();
-                out.flush();
             }
 
             out.flush();
@@ -834,34 +812,6 @@ public class CommunicationManager implements Paintable.RepaintRequestListener,
         p.requestRepaintRequests();
     }
 
-    /**
-     * @see com.itmill.toolkit.Application.WindowAttachListener#windowAttached(com.itmill.toolkit.Application.WindowAttachEvent)
-     */
-    public void windowAttached(WindowAttachEvent event) {
-        event.getWindow().addListener(this);
-        if (!dirtyPaintabletSet.contains(event.getWindow())) {
-            dirtyPaintabletSet.add(event.getWindow());
-        }
-    }
-
-    /**
-     * @see com.itmill.toolkit.Application.WindowDetachListener#windowDetached(com.itmill.toolkit.Application.WindowDetachEvent)
-     */
-    public void windowDetached(WindowDetachEvent event) {
-        event.getWindow().removeListener(this);
-        // Notify client of the close operation
-        removedWindows.add(event.getWindow());
-    }
-
-    /**
-     * 
-     * @return
-     */
-    public synchronized Set getRemovedWindows() {
-        return Collections.unmodifiableSet(removedWindows);
-
-    }
-
     private final class SingleValueMap implements Map {
         private final String name;
 
index 92ed8db5ada00a6921b00013cd15571a3e40ab69..2eca2e0a409f29763440a2d547e131ef10c5c60c 100644 (file)
@@ -124,7 +124,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
 
     private LinkedList notifications;
 
-    private boolean modal;
+    private boolean modal = false;
 
     /* ********************************************************************* */
 
@@ -871,8 +871,24 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         // Closing
         final Boolean close = (Boolean) variables.get("close");
         if (close != null && close.booleanValue()) {
+            close();
+        }
+    }
+
+    /**
+     * Method that handles window closing (from UI). If one wants to have window
+     * that cannot be closed (with server side check), override this with and
+     * empty method.
+     */
+    protected void close() {
+        Window parent = (Window) getParent();
+        if (parent == null) {
             setVisible(false);
             fireClose();
+        } else {
+            // subwindow is removed from parent
+            parent.removeWindow(this);
+            fireClose();
         }
     }