From 4881fe4b0d3131b78ffc9791e527d7748b672c4b Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Tue, 31 Jan 2012 13:57:39 +0200 Subject: [PATCH] #8323 Moved updateCaption from Container to VPaintableWidgetContainer --- .../gwt/client/ApplicationConnection.java | 35 +++++++------------ .../vaadin/terminal/gwt/client/Container.java | 19 +--------- src/com/vaadin/terminal/gwt/client/Util.java | 4 +-- .../terminal/gwt/client/VPaintableWidget.java | 2 +- .../gwt/client/ui/VAbsoluteLayout.java | 3 +- .../client/ui/VAbstractPaintableWidget.java | 5 +-- .../terminal/gwt/client/ui/VCssLayout.java | 3 +- .../gwt/client/ui/VCustomComponent.java | 3 +- .../terminal/gwt/client/ui/VCustomLayout.java | 3 +- .../terminal/gwt/client/ui/VTabsheetBase.java | 3 +- 10 files changed, 30 insertions(+), 50 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java index 796c13c173..5fde5ba04c 100644 --- a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java +++ b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java @@ -44,6 +44,7 @@ import com.vaadin.terminal.gwt.client.ui.VContextMenu; import com.vaadin.terminal.gwt.client.ui.VNotification; import com.vaadin.terminal.gwt.client.ui.VNotification.HideEvent; import com.vaadin.terminal.gwt.client.ui.VView; +import com.vaadin.terminal.gwt.client.ui.VViewPaintable; import com.vaadin.terminal.gwt.client.ui.dd.VDragAndDropManager; import com.vaadin.terminal.gwt.server.AbstractCommunicationManager; @@ -141,7 +142,7 @@ public class ApplicationConnection { private Timer loadTimer3; private Element loadElement; - private final VView view; + private final VViewPaintable view; protected boolean applicationRunning = false; @@ -831,7 +832,8 @@ public class ApplicationConnection { if (loadElement == null) { loadElement = DOM.createDiv(); DOM.setStyleAttribute(loadElement, "position", "absolute"); - DOM.appendChild(view.getElement(), loadElement); + DOM.appendChild(view.getWidgetForPaintable().getElement(), + loadElement); VConsole.log("inserting load indicator"); } DOM.setElementProperty(loadElement, "className", "v-loading-indicator"); @@ -972,7 +974,7 @@ public class ApplicationConnection { meta = json.getValueMap("meta"); if (meta.containsKey("repaintAll")) { repaintAll = true; - view.clear(); + view.getWidgetForPaintable().clear(); getPaintableMap().clear(); if (meta.containsKey("invalidLayouts")) { validatingLayouts = true; @@ -1727,21 +1729,8 @@ public class ApplicationConnection { @Deprecated private void updateCaption(VPaintableWidget paintable, UIDL uidl) { - if (paintable instanceof VAbstractPaintableWidget) { - VPaintableWidget parent = ((VAbstractPaintableWidget) paintable) - .getParentPaintable(); - if (parent instanceof VAbstractPaintableWidgetContainer) { - ((VPaintableWidgetContainer) parent).updateCaption(paintable, - uidl); - return; - } - } - - // Old Container interface - // FIXME: Remove - Util.getLayout(paintable.getWidgetForPaintable()).updateCaption( - paintable, uidl); - + VPaintableWidgetContainer parent = paintable.getParentPaintable(); + parent.updateCaption(paintable, uidl); } /** @@ -1944,7 +1933,8 @@ public class ApplicationConnection { boolean horizontalScrollBar = false; boolean verticalScrollBar = false; - Container parentPaintable = Util.getLayout(widget); + VPaintableWidgetContainer parentPaintable = paintable + .getParentPaintable(); RenderSpace renderSpace; // Parent-less components (like sub-windows) are relative to browser @@ -1953,7 +1943,8 @@ public class ApplicationConnection { renderSpace = new RenderSpace(Window.getClientWidth(), Window.getClientHeight()); } else { - renderSpace = parentPaintable.getAllocatedSpace(widget); + renderSpace = ((Container) parentPaintable.getWidgetForPaintable()) + .getAllocatedSpace(widget); } if (relativeSize.getHeight() >= 0) { @@ -2270,7 +2261,7 @@ public class ApplicationConnection { @Override public void run() { VConsole.log("Running re-layout of " + view.getClass().getName()); - runDescendentsLayout(view); + runDescendentsLayout(view.getWidgetForPaintable()); isPending = false; } }; @@ -2305,7 +2296,7 @@ public class ApplicationConnection { * * @return the main view */ - public VView getView() { + public VViewPaintable getView() { return view; } diff --git a/src/com/vaadin/terminal/gwt/client/Container.java b/src/com/vaadin/terminal/gwt/client/Container.java index d78177f3f9..b573fd934e 100644 --- a/src/com/vaadin/terminal/gwt/client/Container.java +++ b/src/com/vaadin/terminal/gwt/client/Container.java @@ -12,7 +12,7 @@ import com.google.gwt.user.client.ui.Widget; * @deprecated To be removed before 7.0.0 */ @Deprecated -public interface Container extends VPaintableWidget { +public interface Container { /** * Replace child of this layout with another component. @@ -36,23 +36,6 @@ public interface Container extends VPaintableWidget { */ boolean hasChildComponent(Widget component); - /** - * Update child components caption, description and error message. - * - *

- * Each component is responsible for maintaining its caption, description - * and error message. In most cases components doesn't want to do that and - * those elements reside outside of the component. Because of this layouts - * must provide service for it's childen to show those elements for them. - *

- * - * @param paintable - * Child component for which service is requested. - * @param uidl - * UIDL of the child component. - */ - void updateCaption(VPaintableWidget paintable, UIDL uidl); - /** * Called when a child components size has been updated in the rendering * phase. diff --git a/src/com/vaadin/terminal/gwt/client/Util.java b/src/com/vaadin/terminal/gwt/client/Util.java index 0a3d83ff3d..4514adf7e0 100644 --- a/src/com/vaadin/terminal/gwt/client/Util.java +++ b/src/com/vaadin/terminal/gwt/client/Util.java @@ -153,7 +153,7 @@ public class Util { Set parentChanges = new HashSet(); for (Container parent : childWidgets.keySet()) { if (!parent.requestLayout(childWidgets.get(parent))) { - parentChanges.add(parent.getWidgetForPaintable()); + parentChanges.add((Widget) parent); } } @@ -738,7 +738,7 @@ public class Util { */ public static VPaintableWidget getChildPaintableForElement( ApplicationConnection client, Container parent, Element element) { - Element rootElement = parent.getWidgetForPaintable().getElement(); + Element rootElement = ((Widget) parent).getElement(); while (element != null && element != rootElement) { VPaintableWidget paintable = VPaintableMap.get(client) .getPaintable(element); diff --git a/src/com/vaadin/terminal/gwt/client/VPaintableWidget.java b/src/com/vaadin/terminal/gwt/client/VPaintableWidget.java index 0c1556208e..11b6c9d0f6 100644 --- a/src/com/vaadin/terminal/gwt/client/VPaintableWidget.java +++ b/src/com/vaadin/terminal/gwt/client/VPaintableWidget.java @@ -27,5 +27,5 @@ public interface VPaintableWidget extends VPaintable { * @return */ // FIXME: Rename to getParent() - // public VPaintableWidget getParentPaintable(); + public VPaintableWidgetContainer getParentPaintable(); } diff --git a/src/com/vaadin/terminal/gwt/client/ui/VAbsoluteLayout.java b/src/com/vaadin/terminal/gwt/client/ui/VAbsoluteLayout.java index 48019a11f6..f95acfc43c 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VAbsoluteLayout.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VAbsoluteLayout.java @@ -18,6 +18,7 @@ import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; +import com.vaadin.terminal.gwt.client.Container; import com.vaadin.terminal.gwt.client.RenderSpace; import com.vaadin.terminal.gwt.client.UIDL; import com.vaadin.terminal.gwt.client.Util; @@ -25,7 +26,7 @@ import com.vaadin.terminal.gwt.client.VCaption; import com.vaadin.terminal.gwt.client.VPaintableMap; import com.vaadin.terminal.gwt.client.VPaintableWidget; -public class VAbsoluteLayout extends ComplexPanel { +public class VAbsoluteLayout extends ComplexPanel implements Container { /** Tag name for widget creation */ public static final String TAGNAME = "absolutelayout"; diff --git a/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java b/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java index 7c82f39e6b..90da0ef4ac 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java @@ -7,6 +7,7 @@ import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.VPaintableMap; import com.vaadin.terminal.gwt.client.VPaintableWidget; +import com.vaadin.terminal.gwt.client.VPaintableWidgetContainer; public abstract class VAbstractPaintableWidget implements VPaintableWidget { @@ -83,7 +84,7 @@ public abstract class VAbstractPaintableWidget implements VPaintableWidget { this.id = id; } - public VPaintableWidget getParentPaintable() { + public VPaintableWidgetContainer getParentPaintable() { // FIXME: Return VPaintableWidgetContainer // FIXME: Store hierarchy instead of doing lookup every time @@ -93,7 +94,7 @@ public abstract class VAbstractPaintableWidget implements VPaintableWidget { while (w != null) { w = w.getParent(); if (paintableMap.isPaintable(w)) { - return paintableMap.getPaintable(w); + return (VPaintableWidgetContainer) paintableMap.getPaintable(w); } } diff --git a/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java b/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java index 8a13beceef..e56d333dad 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java @@ -18,6 +18,7 @@ import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.BrowserInfo; +import com.vaadin.terminal.gwt.client.Container; import com.vaadin.terminal.gwt.client.RenderSpace; import com.vaadin.terminal.gwt.client.StyleConstants; import com.vaadin.terminal.gwt.client.UIDL; @@ -28,7 +29,7 @@ import com.vaadin.terminal.gwt.client.VPaintableMap; import com.vaadin.terminal.gwt.client.VPaintableWidget; import com.vaadin.terminal.gwt.client.ValueMap; -public class VCssLayout extends SimplePanel { +public class VCssLayout extends SimplePanel implements Container { public static final String TAGNAME = "csslayout"; public static final String CLASSNAME = "v-" + TAGNAME; diff --git a/src/com/vaadin/terminal/gwt/client/ui/VCustomComponent.java b/src/com/vaadin/terminal/gwt/client/ui/VCustomComponent.java index 5ecd50baff..ca18104c86 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VCustomComponent.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VCustomComponent.java @@ -9,10 +9,11 @@ import java.util.Set; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; +import com.vaadin.terminal.gwt.client.Container; import com.vaadin.terminal.gwt.client.RenderSpace; import com.vaadin.terminal.gwt.client.Util; -public class VCustomComponent extends SimplePanel { +public class VCustomComponent extends SimplePanel implements Container { private static final String CLASSNAME = "v-customcomponent"; private String height; diff --git a/src/com/vaadin/terminal/gwt/client/ui/VCustomLayout.java b/src/com/vaadin/terminal/gwt/client/ui/VCustomLayout.java index 9b067267ff..7a5f630587 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VCustomLayout.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VCustomLayout.java @@ -18,6 +18,7 @@ import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.BrowserInfo; +import com.vaadin.terminal.gwt.client.Container; import com.vaadin.terminal.gwt.client.ContainerResizedListener; import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize; import com.vaadin.terminal.gwt.client.RenderSpace; @@ -34,7 +35,7 @@ import com.vaadin.terminal.gwt.client.VPaintableWidget; * @author Vaadin Ltd * */ -public class VCustomLayout extends ComplexPanel implements +public class VCustomLayout extends ComplexPanel implements Container, ContainerResizedListener { public static final String CLASSNAME = "v-customlayout"; diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTabsheetBase.java b/src/com/vaadin/terminal/gwt/client/ui/VTabsheetBase.java index 17f66f74bf..271aed1859 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VTabsheetBase.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VTabsheetBase.java @@ -12,10 +12,11 @@ import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; +import com.vaadin.terminal.gwt.client.Container; import com.vaadin.terminal.gwt.client.UIDL; import com.vaadin.terminal.gwt.client.VPaintableWidget; -abstract class VTabsheetBase extends ComplexPanel { +abstract class VTabsheetBase extends ComplexPanel implements Container { String id; ApplicationConnection client; -- 2.39.5