From c9b7b7db307d1ff3bc920af75f8bd37ff051dc3c Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 30 Mar 2012 19:37:33 +0300 Subject: [PATCH] Replaced "defer" status with "cached" to be more Vaadin 6 compatible --- src/com/vaadin/terminal/PaintTarget.java | 7 ++++--- .../gwt/client/ui/AbstractComponentConnector.java | 15 +++------------ .../terminal/gwt/server/JsonPaintTarget.java | 5 +++-- src/com/vaadin/ui/AbstractComponent.java | 7 +++---- 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/com/vaadin/terminal/PaintTarget.java b/src/com/vaadin/terminal/PaintTarget.java index 1e0fab7b54..57dd711ba5 100644 --- a/src/com/vaadin/terminal/PaintTarget.java +++ b/src/com/vaadin/terminal/PaintTarget.java @@ -53,7 +53,7 @@ public interface PaintTarget extends Serializable { * be created/update later in a separate change in the same set of * changes. */ - DEFER + CACHED }; /** @@ -80,8 +80,9 @@ public interface PaintTarget extends Serializable { * the paintable to start. * @param tag * the name of the start tag. - * @return {@link PaintStatus} - ready to paint, already cached on the - * client or defer painting to another change + * @return {@link PaintStatus} - ready to paint or already cached on the + * client (also used for sub paintables that are painted later + * separately) * @throws PaintException * if the paint operation failed. * @see #startTag(String) diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java index 58b133bd75..2a9ac4ff62 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/AbstractComponentConnector.java @@ -109,17 +109,12 @@ public abstract class AbstractComponentConnector extends AbstractConnector return GWT.create(ComponentState.class); } - protected static boolean isRealUpdate(UIDL uidl) { - return !isCachedUpdate(uidl) && !uidl.getBooleanAttribute("invisible") - && !uidl.hasAttribute("deferred"); - } - - protected static boolean isCachedUpdate(UIDL uidl) { - return uidl.getBooleanAttribute("cached"); + public static boolean isRealUpdate(UIDL uidl) { + return !uidl.hasAttribute("cached"); } public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { - if (isCachedUpdate(uidl)) { + if (!isRealUpdate(uidl)) { return; } @@ -132,10 +127,6 @@ public abstract class AbstractComponentConnector extends AbstractConnector } - if (!isRealUpdate(uidl)) { - return; - } - /* * Disabled state may affect (override) tabindex so the order must be * first setting tabindex, then enabled state. diff --git a/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java b/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java index 54122401c4..56f72b2cd7 100644 --- a/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java +++ b/src/com/vaadin/terminal/gwt/server/JsonPaintTarget.java @@ -674,9 +674,10 @@ public class JsonPaintTarget implements PaintTarget { final String id = getPaintIdentifier(paintable); addAttribute("id", id); - // queue for painting later if already painting a paintable + // Only paint top level paintables. All sub paintables are marked as + // queued and painted separately later. if (!topLevelPaintable) { - return PaintStatus.DEFER; + return PaintStatus.CACHED; } // not a nested paintable, paint the it now diff --git a/src/com/vaadin/ui/AbstractComponent.java b/src/com/vaadin/ui/AbstractComponent.java index f0f861c906..7acdc296e4 100644 --- a/src/com/vaadin/ui/AbstractComponent.java +++ b/src/com/vaadin/ui/AbstractComponent.java @@ -747,10 +747,9 @@ public abstract class AbstractComponent implements Component, MethodEventSource final String tag = target.getTag(this); final PaintStatus status = target.startPaintable(this, tag); - if (PaintStatus.DEFER == status) { - // nothing to do but flag as deferred and close the paintable tag - // paint() will be called again later to paint the contents - target.addAttribute("deferred", true); + if (PaintStatus.CACHED == status) { + // nothing to do but flag as cached and close the paintable tag + target.addAttribute("cached", true); } else { // Paint the contents of the component paintContent(target); -- 2.39.5