]> source.dussan.org Git - vaadin-framework.git/commitdiff
#8323 Moved updateCaption from Container to VPaintableWidgetContainer
authorArtur Signell <artur@vaadin.com>
Tue, 31 Jan 2012 11:57:39 +0000 (13:57 +0200)
committerArtur Signell <artur@vaadin.com>
Tue, 31 Jan 2012 13:08:35 +0000 (15:08 +0200)
src/com/vaadin/terminal/gwt/client/ApplicationConnection.java
src/com/vaadin/terminal/gwt/client/Container.java
src/com/vaadin/terminal/gwt/client/Util.java
src/com/vaadin/terminal/gwt/client/VPaintableWidget.java
src/com/vaadin/terminal/gwt/client/ui/VAbsoluteLayout.java
src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidget.java
src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java
src/com/vaadin/terminal/gwt/client/ui/VCustomComponent.java
src/com/vaadin/terminal/gwt/client/ui/VCustomLayout.java
src/com/vaadin/terminal/gwt/client/ui/VTabsheetBase.java

index 796c13c1734c4c7d1a409743152983d34e4e1d1b..5fde5ba04cf528733187c66264a0647d2e2b6f3d 100644 (file)
@@ -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;
     }
 
index d78177f3f95b410c166218542f648df881c166cd..b573fd934e900ba61f2857d9dc578be8d5d52b5a 100644 (file)
@@ -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.
-     * 
-     * <p>
-     * 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.
-     * </p>
-     * 
-     * @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.
index 0a3d83ff3d3cda1423a3856bfa4cb9ad15ce48da..4514adf7e03751a73922c4c403dd95e828b72b87 100644 (file)
@@ -153,7 +153,7 @@ public class Util {
         Set<Widget> parentChanges = new HashSet<Widget>();
         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);
index 0c1556208e444a499d94b4b03268fddec2f2b079..11b6c9d0f6dbedd9e3c573f5488d87775e49f1e8 100644 (file)
@@ -27,5 +27,5 @@ public interface VPaintableWidget extends VPaintable {
      * @return
      */
     // FIXME: Rename to getParent()
-    // public VPaintableWidget getParentPaintable();
+    public VPaintableWidgetContainer getParentPaintable();
 }
index 48019a11f60368a53f5c9c8329b6b9262242581e..f95acfc43c216885daad7a698c286c16eded5117 100644 (file)
@@ -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";
index 7c82f39e6bf4484da386780d452e5ebc4655e47d..90da0ef4ac43b63460a44dfab7e402bf63c290d4 100644 (file)
@@ -7,6 +7,7 @@ import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;\r
 import com.vaadin.terminal.gwt.client.VPaintableMap;\r
 import com.vaadin.terminal.gwt.client.VPaintableWidget;\r
+import com.vaadin.terminal.gwt.client.VPaintableWidgetContainer;\r
 \r
 public abstract class VAbstractPaintableWidget implements VPaintableWidget {\r
 \r
@@ -83,7 +84,7 @@ public abstract class VAbstractPaintableWidget implements VPaintableWidget {
         this.id = id;\r
     }\r
 \r
-    public VPaintableWidget getParentPaintable() {\r
+    public VPaintableWidgetContainer getParentPaintable() {\r
         // FIXME: Return VPaintableWidgetContainer\r
         // FIXME: Store hierarchy instead of doing lookup every time\r
 \r
@@ -93,7 +94,7 @@ public abstract class VAbstractPaintableWidget implements VPaintableWidget {
         while (w != null) {\r
             w = w.getParent();\r
             if (paintableMap.isPaintable(w)) {\r
-                return paintableMap.getPaintable(w);\r
+                return (VPaintableWidgetContainer) paintableMap.getPaintable(w);\r
             }\r
         }\r
 \r
index 8a13beceefbc0aa58f14c91ee414a8da274e82f7..e56d333dadf839eb8b15a150b434ef4be9f51ea8 100644 (file)
@@ -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;
 
index 5ecd50baff34daf458fa8a1d8a87dd13be81c0c0..ca18104c86d2a7fc180c4931b14701ce3080c6db 100644 (file)
@@ -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;
index 9b067267ffefb79c80e6afe4b3d911b32761debc..7a5f630587612a4e557a54f9236d82d70ab75937 100644 (file)
@@ -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";
index 17f66f74bf414c5f8a48e10304d5f50dba4acd3f..271aed18599d2f77e07e6053cfcc2c751d8be5e5 100644 (file)
@@ -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;