]> source.dussan.org Git - gwtquery.git/commitdiff
Removing GqUi to WidgetsUtils so as gquery doesnt have anything out of its namespace...
authorManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Mon, 26 Nov 2012 10:55:52 +0000 (11:55 +0100)
committerManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Mon, 26 Nov 2012 10:55:52 +0000 (11:55 +0100)
gwtquery-core/src/main/java/com/google/gwt/query/client/GQuery.java
gwtquery-core/src/main/java/com/google/gwt/query/client/LazyGQuery.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/Widgets.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/widgets/WidgetsHtmlPanel.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/widgets/WidgetsUtils.java
gwtquery-core/src/main/java/com/google/gwt/user/client/ui/GqUi.java [deleted file]

index e0655c91ae756e67e7c0858f641266dbc816eabe..098dcc960108a0d55bac4f4d0cd925bddce95ef8 100644 (file)
@@ -59,11 +59,11 @@ import com.google.gwt.query.client.plugins.ajax.Ajax;
 import com.google.gwt.query.client.plugins.ajax.Ajax.Settings;\r
 import com.google.gwt.query.client.plugins.effects.PropertiesAnimation.Easing;\r
 import com.google.gwt.query.client.plugins.events.EventsListener;\r
+import com.google.gwt.query.client.plugins.widgets.WidgetsUtils;\r
 import com.google.gwt.user.client.DOM;\r
 import com.google.gwt.user.client.Event;\r
 import com.google.gwt.user.client.EventListener;\r
 import com.google.gwt.user.client.Window;\r
-import com.google.gwt.user.client.ui.GqUi;\r
 import com.google.gwt.user.client.ui.IsWidget;\r
 import com.google.gwt.user.client.ui.Widget;\r
 \r
@@ -2045,7 +2045,7 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
         Node c = e.getFirstChild();\r
         while (c != null) {\r
           removeData(c.<Element> cast(), null);\r
-          GqUi.detachWidget(getAssociatedWidget(e));\r
+          WidgetsUtils.detachWidget(getAssociatedWidget(e));\r
           EventsListener.clean(c.<Element> cast());\r
           e.removeChild(c);\r
           c = e.getFirstChild();\r
index 3c0cbf197ce13ecb1cc250fecc162fe2984bc567..9986d6eb858975302a566711ccdfbea3a8cd371d 100644 (file)
@@ -60,7 +60,6 @@ import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Event;
 import com.google.gwt.user.client.EventListener;
 import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.GqUi;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.query.client.LazyBase;
 
index 657e72f94d04e4a392a22a176af71bac3897d854..aaee7227e9d69fa2d70c048b02f8a198da984035 100755 (executable)
@@ -194,5 +194,4 @@ public class Widgets extends QueuePlugin<Widgets> {
   public Widgets textArea(WidgetInitializer<TextArea> initializers) {\r
     return widgets(new TextAreaWidgetFactory(), initializers);\r
   }\r
-\r
 }\r
index 0742e4a9525399619ba06ccf6287b7100fb93143..cc186f52c0ad7c1f1adbcccd540903904cca0752 100644 (file)
@@ -20,7 +20,6 @@ import static com.google.gwt.query.client.GQuery.$;
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.query.client.GQuery;
 import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.GqUi;
 import com.google.gwt.user.client.ui.HTMLPanel;
 import com.google.gwt.user.client.ui.Panel;
 import com.google.gwt.user.client.ui.RootPanel;
@@ -41,7 +40,7 @@ public class WidgetsHtmlPanel extends HTMLPanel {
       if (w == null) {
         // We convert the element to a gwt htmlPanel 
         setElementImpl(e);
-        GqUi.attachWidget(this, null);
+        WidgetsUtils.attachWidget(this, null);
       } else {
         Widget p = w.getParent();
         if (p instanceof Panel) {
@@ -53,7 +52,7 @@ public class WidgetsHtmlPanel extends HTMLPanel {
           Element n = e.getParentElement();
           n.appendChild(getElement());
           getElement().appendChild(e);
-          GqUi.attachWidget(this, null);
+          WidgetsUtils.attachWidget(this, null);
         }
       }
     }
@@ -113,8 +112,7 @@ public class WidgetsHtmlPanel extends HTMLPanel {
       }
 
     } else if (parent instanceof HTMLPanel) {
-      GqUi.doLogicalDetachFromHtmlPanel(w);
-
+      WidgetsUtils.doLogicalDetachFromHtmlPanel(w);
     } else {
       // the widget will be physically detach
       w.removeFromParent();
index d3954e8f2f7b98bbee187184c9ac71789553623c..7af9fe01c4c17041385810485750fb8ebfee7677 100644 (file)
@@ -17,17 +17,21 @@ package com.google.gwt.query.client.plugins.widgets;
 
 import static com.google.gwt.query.client.GQuery.$;
 
+import java.util.Iterator;
+
 import com.google.gwt.dom.client.BodyElement;
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.query.client.GQuery;
 import com.google.gwt.user.client.Event;
 import com.google.gwt.user.client.ui.ComplexPanel;
-import com.google.gwt.user.client.ui.GqUi;
+import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.HTMLPanel;
 import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.RootPanel;
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.WidgetCollection;
 
 public class WidgetsUtils {
 
@@ -44,9 +48,9 @@ public class WidgetsUtils {
      if ($(e).widget() != null && $(e).widget().isAttached()) {
        replaceWidget($(e).widget(), widget, false);
      } else {
-       GqUi.detachWidget(widget);
+       detachWidget(widget);
        hideAndAfter(e, widget.getElement());
-       GqUi.attachWidget(widget, getFirstParentWidget(widget));
+       attachWidget(widget, getFirstParentWidget(widget));
      }
    }
 
@@ -83,9 +87,9 @@ public class WidgetsUtils {
      if ($(e).widget() != null && $(e).widget().isAttached()) {
        replaceWidget($(e).widget(), widget, true);
      } else {
-       GqUi.detachWidget(widget);
+       detachWidget(widget);
        replaceOrAppend(e, widget.getElement());
-       GqUi.attachWidget(widget, getFirstParentWidget(widget));
+       attachWidget(widget, getFirstParentWidget(widget));
      }
    }
    
@@ -144,7 +148,8 @@ public class WidgetsUtils {
      boolean removed = false;
      // TODO: handle tables
      if (parent instanceof HTMLPanel) {
-       ((HTMLPanel) parent).addAndReplaceElement(newWidget, oldWidget.getElement());
+       ((HTMLPanel) parent).addAndReplaceElement(newWidget,
+           (com.google.gwt.dom.client.Element)oldWidget.getElement());
        if (!remove) {
          $(newWidget).before($(oldWidget));
        }
@@ -164,4 +169,83 @@ public class WidgetsUtils {
        oldWidget.setVisible(false);
      }
    }
+   
+   /**
+    * Attach a widget to the GWT widget list.
+    * 
+    * @param widget to attach
+    * @param firstParentWidget the parent widget, 
+    *   If it is null we just add the widget to the gwt detach list 
+    */
+   public static void attachWidget(Widget widget, Widget firstParentWidget) {
+     if (widget != null && widget.getParent() == null) {
+       if (firstParentWidget == null) {
+         RootPanel.detachOnWindowClose(widget);
+         widgetOnAttach(widget);
+       } else if (firstParentWidget instanceof HTMLPanel) {
+         ((HTMLPanel) firstParentWidget).add(widget,
+             widget.getElement().getParentElement()
+             .<com.google.gwt.user.client.Element>cast());
+       } else {
+         throw new RuntimeException(
+             "No HTMLPanel available to attach the widget.");
+       }
+     }
+   }
+
+   /**
+    * Remove a widget from the detach list
+    */
+   public static void detachWidget(final Widget widget) {
+     if (widget != null) {
+       widget.removeFromParent();
+     }
+   }
+
+   /**
+    * This method detach a widget of its parent without doing a physical 
+    * detach (DOM manipulation)
+    * 
+    * @param w
+    */
+   public static void doLogicalDetachFromHtmlPanel(Widget w) {
+     Widget parent = w.getParent();
+     
+     if (parent instanceof HTMLPanel) {
+       complexPanelGetChildren((HTMLPanel) parent).remove(w);
+       widgetSetParent(w, null);
+     } else{
+       throw new IllegalStateException(
+           "You can only use this method to detach a child from an HTMLPanel");
+     }
+   }
+   
+   /**
+    * Return children of the first widget's panel 
+    */
+   public static Iterator<Widget> getChildren(Widget w){
+     if(w instanceof Panel){
+       return ((Panel)w).iterator();
+     }
+     if(w instanceof Composite){
+       return getChildren(compositeGetWidget((Composite)w));
+     }
+     return null;
+   }
+   
+   private static native void widgetOnAttach(Widget w) /*-{
+     w.@com.google.gwt.user.client.ui.Widget::onAttach()();
+   }-*/;
+
+   private static native void widgetSetParent(Widget w, Widget p) /*-{
+    w.@com.google.gwt.user.client.ui.Widget::setParent(Lcom/google/gwt/user/client/ui/Widget;)(p);
+   }-*/;
+   
+   private static native Widget compositeGetWidget(Composite w) /*-{
+    return w.@com.google.gwt.user.client.ui.Composite::getWidget()();
+   }-*/;
+   
+   private static native WidgetCollection complexPanelGetChildren(ComplexPanel w) /*-{
+    return w.@com.google.gwt.user.client.ui.ComplexPanel::getChildren()();
+   }-*/;
 }
diff --git a/gwtquery-core/src/main/java/com/google/gwt/user/client/ui/GqUi.java b/gwtquery-core/src/main/java/com/google/gwt/user/client/ui/GqUi.java
deleted file mode 100644 (file)
index 9874a72..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2011, The gwtquery team.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.user.client.ui;
-
-import java.util.Iterator;
-
-/**
- * GQuery Utility class to access protected methods in ui package.
- */
-public class GqUi {
-
-  public static void attachWidget(Widget widget, Widget firstParentWidget) {
-    if (widget != null && widget.getParent() == null) {
-
-      if (firstParentWidget == null) {
-        RootPanel.detachOnWindowClose(widget);
-        widget.onAttach();
-      } else if (firstParentWidget instanceof HTMLPanel) {
-        ((HTMLPanel) firstParentWidget).add(widget,
-            widget.getElement().getParentElement()
-            .<com.google.gwt.user.client.Element>cast());
-      } else {
-        throw new RuntimeException(
-            "No HTMLPanel available to attach the widget.");
-      }
-    }
-  }
-
-  public static void detachWidget(final Widget widget) {
-    if (widget != null) {
-      widget.removeFromParent();
-    }
-  }
-
-
-  /**
-   * This method detach a widget of its parent without do a physical detach (DOM
-   * manipulation)
-   * 
-   * @param w
-   */
-  public static void doLogicalDetachFromHtmlPanel(Widget w) {
-    Widget parent = w.getParent();
-    
-    if (parent instanceof HTMLPanel) {
-      ((HTMLPanel) parent).getChildren().remove(w);
-      w.setParent(null);
-      
-    } else{
-      throw new IllegalStateException(
-          "You can only use this method to detach a child from an HTMLPanel");
-    }
-   
-
-  }
-  
-  public static Iterator<Widget> getChildren(Widget w){
-    if(w instanceof Panel){
-      return ((Panel)w).iterator();
-    }
-    if(w instanceof Composite){
-      return getChildren(((Composite)w).getWidget());
-    }
-    
-    return null;
-  }
-}