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;
* @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";
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.
*
outWriter.flush();
outWriter.close();
- out.flush();
}
out.flush();
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;
private LinkedList notifications;
- private boolean modal;
+ private boolean modal = false;
/* ********************************************************************* */
// 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();
}
}