Revision: 10540
Author: [email protected]
Date: Wed Aug 17 10:09:20 2011
Log: Provides an integration test for IsRenderable
Review at http://gwt-code-reviews.appspot.com/1527804
http://code.google.com/p/google-web-toolkit/source/detail?r=10540
Added:
/trunk/user/test/com/google/gwt/uibinder/test/client/IsRenderableIntegrationTest.Deep.ui.xml
/trunk/user/test/com/google/gwt/uibinder/test/client/IsRenderableIntegrationTest.Shallow.ui.xml
/trunk/user/test/com/google/gwt/uibinder/test/client/IsRenderableIntegrationTest.java
/trunk/user/test/com/google/gwt/uibinder/test/client/LegacyComposite.java
/trunk/user/test/com/google/gwt/uibinder/test/client/LegacyComposite.ui.xml
/trunk/user/test/com/google/gwt/uibinder/test/client/RenderableComposite.java
/trunk/user/test/com/google/gwt/uibinder/test/client/RenderableComposite.ui.xml
/trunk/user/test/com/google/gwt/uibinder/test/client/SimpleRenderable.java
Modified:
/trunk/user/src/com/google/gwt/user/client/ui/IsRenderable.java
/trunk/user/src/com/google/gwt/user/client/ui/RenderableStamper.java
/trunk/user/src/com/google/gwt/user/client/ui/UIObject.java
/trunk/user/test/com/google/gwt/uibinder/LazyWidgetBuilderSuite.java
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/IsRenderableIntegrationTest.Deep.ui.xml
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,45 @@
+<!--
-->
+<!-- Copyright 2011 Google
Inc. -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
you -->
+<!-- may not use this file except in compliance with the License. You
may -->
+<!-- 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. License for the specific language governing permissions
and -->
+<!-- limitations under the
License. -->
+<ui:UiBinder
+ xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:gwt="urn:import:com.google.gwt.user.client.ui"
+ xmlns:test="urn:import:com.google.gwt.uibinder.test.client"
+ >
+ <gwt:RenderablePanel ui:field="top" styleName="test">
+ <div ui:field="outerDiv" class="ble">Outer div</div>
+ <test:SimpleRenderable ui:field="outerRenderable">Outer
renderable</test:SimpleRenderable>
+ <gwt:Label ui:field="outerLabel">Outer label</gwt:Label>
+ <test:RenderableComposite ui:field="outerComposite"/>
+
+ <ui:msg description="A photo promo">
+ Outer i18n image
+ <gwt:Image ui:field="outerI18nImage" styleName="ble" />
+ while browsing your photos.
+ </ui:msg>
+
+ <gwt:RenderablePanel ui:field="childPanel" styleName="test">
+ <div ui:field="innerDiv" class="ble">Inner div</div>
+ <test:SimpleRenderable ui:field="innerRenderable">Inner
renderable</test:SimpleRenderable>
+ <gwt:Label ui:field="innerLabel">Inner label</gwt:Label>
+ <test:RenderableComposite ui:field="innerComposite"/>
+
+ <ui:msg description="A photo promo">
+ Inner i18n image
+ <gwt:Image ui:field="innerI18nImage" styleName="ble" />
+ while browsing your photos.
+ </ui:msg>
+ </gwt:RenderablePanel>
+
+ </gwt:RenderablePanel>
+</ui:UiBinder>
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/IsRenderableIntegrationTest.Shallow.ui.xml
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,19 @@
+<!--
-->
+<!-- Copyright 2011 Google
Inc. -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
you -->
+<!-- may not use this file except in compliance with the License. You
may -->
+<!-- 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. License for the specific language governing permissions
and -->
+<!-- limitations under the
License. -->
+<ui:UiBinder
+ xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:test="urn:import:com.google.gwt.uibinder.test.client"
+ >
+ <test:SimpleRenderable ui:field="widget">Tip-top level
renderable</test:SimpleRenderable>
+</ui:UiBinder>
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/IsRenderableIntegrationTest.java
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,214 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * 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.uibinder.test.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.DivElement;
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.junit.client.GWTTestCase;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.IsRenderable;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.PotentialElement;
+import com.google.gwt.user.client.ui.RenderablePanel;
+import com.google.gwt.user.client.ui.RootPanel;
+
+/**
+ * Integration test for {@link com.google.gwt.user.client.ui.IsRenderable
+ * IsRenderable}.
+ */
+public class IsRenderableIntegrationTest extends GWTTestCase {
+ static class Deep {
+ interface Binder extends UiBinder<IsRenderable, Deep> {
+ }
+
+ static final Binder binder = GWT.create(Binder.class);
+
+ @UiField
+ RenderablePanel top;
+ @UiField
+ DivElement outerDiv;
+ @UiField
+ DivElement innerDiv;
+ @UiField
+ SimpleRenderable outerRenderable;
+ @UiField
+ Label outerLabel;
+ @UiField
+ Label innerLabel;
+ @UiField
+ SimpleRenderable innerRenderable;
+ @UiField
+ Image outerI18nImage;
+ @UiField
+ Image innerI18nImage;
+ @UiField
+ RenderableComposite outerComposite;
+ @UiField
+ RenderableComposite innerComposite;
+
+ Object receivedValue;
+
+ Deep() {
+ binder.createAndBindUi(this);
+ }
+
+ @UiHandler("outerRenderable")
+ void onValueChange(ValueChangeEvent<Object> event) {
+ receivedValue = event.getValue();
+ }
+ }
+
+ static class Shallow {
+ interface Binder extends UiBinder<IsRenderable, Shallow> {
+ }
+
+ static final Binder binder = GWT.create(Binder.class);
+
+ @UiField
+ SimpleRenderable widget;
+
+ Shallow() {
+ binder.createAndBindUi(this);
+ }
+ }
+
+ @Override
+ public String getModuleName() {
+ return "com.google.gwt.uibinder.test.LazyWidgetBuilderSuite";
+ }
+
+ public void testDeep() {
+ Deep deep = new Deep();
+ assertTrue(PotentialElement.isPotential(deep.top.getElement()));
+
assertTrue(PotentialElement.isPotential(deep.outerRenderable.getElement()));
+
assertTrue(PotentialElement.isPotential(deep.innerRenderable.getElement()));
+
+ /*
+ * This is pretty surprising. I don't think it's a good idea to be
filling
+ * in the owner's fields at some arbitrary later date. I doubt it's a
real
+ * speed up, since the things will still have to be instantiated
before the
+ * user sees them, and it seems guaranteed to be a source of confusion.
+ *
+ * Hmm. What keeps the object that fills in the the fields at attach
time
+ * from being gc'd? And are we sure it's not leaking?
+ *
+ * Although I suppose we have no choice with dom children. Interesting
+ * problem.
+ */
+ assertNull(deep.outerI18nImage);
+ assertNull(deep.innerI18nImage);
+ assertNull(deep.outerLabel);
+ assertNull(deep.innerLabel);
+ assertNull(deep.innerLabel);
+ assertNull(deep.outerDiv);
+ assertNull(deep.innerDiv);
+
+ // Oh dear, we're not even consistent about it. That means the above
is a
+ // bug, period.
+ assertNotNull(deep.outerComposite);
+ assertNotNull(deep.innerComposite);
+
assertTrue(PotentialElement.isPotential(deep.outerComposite.getWidget().getElement()));
+
assertTrue(PotentialElement.isPotential(deep.innerComposite.getWidget().getElement()));
+
+ try {
+ RootPanel.get().add(deep.top);
+
+ assertEquals("Outer div", deep.outerDiv.getInnerText());
+ assertEquals("Inner div", deep.innerDiv.getInnerText());
+
+ assertEquals("[string built]Outer renderable",
+ deep.outerRenderable.getElement().getInnerText());
+ assertEquals("[string built]Inner renderable",
+ deep.innerRenderable.getElement().getInnerText());
+
+ assertNotNull(deep.outerI18nImage);
+ assertNotNull(deep.innerI18nImage);
+
+ assertEquals("Outer label", deep.outerLabel.getText());
+ assertEquals("Inner label", deep.innerLabel.getText());
+
+ assertEquals("[string built]Renderable",
+ deep.outerComposite.getWidget().getElement().getInnerText());
+ assertEquals("[string built]Renderable",
+ deep.innerComposite.getWidget().getElement().getInnerText());
+
+ // Test event handling. It is cool as hell that this works!
+ deep.outerRenderable.setValue("foo");
+ assertEquals("foo", deep.receivedValue);
+
+ /*
+ * This is really a test of SimpleRenderable itself, but what the
hell.
+ * That class might be useful some day.
+ */
+ deep.outerRenderable.setText("fnord");
+ assertEquals("[updated]fnord",
deep.outerRenderable.getElement().getInnerText());
+
+ } finally {
+ deep.top.removeFromParent();
+ }
+ }
+
+ public void testLegacyComposite() {
+ LegacyComposite legacyComposite = new LegacyComposite();
+ assertEquals("span", legacyComposite.span.getInnerText());
+ }
+
+ public void testNestedRenderableComposite() {
+ RenderableComposite.Meta meta = new RenderableComposite.Meta();
+ assertTrue(PotentialElement.isPotential(meta.getElement()));
+
+ try {
+ RootPanel.get().add(meta);
+ assertEquals("[dom built]Renderable",
+ meta.getWidget().getElement().getInnerText());
+ } finally {
+ meta.removeFromParent();
+ }
+ }
+
+ public void testRenderableComposite() {
+ RenderableComposite renderableComposite = new RenderableComposite();
+
assertTrue(PotentialElement.isPotential(renderableComposite.getElement()));
+
+ // TODO(rdcastro) This results in an NPE
+ // assertEquals("something useful", renderableComposite.toString());
+
+ try {
+ RootPanel.get().add(renderableComposite);
+ assertEquals("[dom built]Renderable",
+ renderableComposite.getWidget().getElement().getInnerText());
+ } finally {
+ renderableComposite.removeFromParent();
+ }
+ }
+
+
+ public void testShallow() {
+ Shallow shallow = new Shallow();
+ assertTrue(PotentialElement.isPotential(shallow.widget.getElement()));
+ try {
+ RootPanel.get().add(shallow.widget);
+ assertEquals("[dom built]" + shallow.widget.getText(),
+ shallow.widget.getElement().getInnerText());
+ } finally {
+ shallow.widget.removeFromParent();
+ }
+ }
+}
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/LegacyComposite.java
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * 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.uibinder.test.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.SpanElement;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * Used by {@link IsRenderableIntegrationTest}.
+ */
+public class LegacyComposite extends Composite {
+ interface Binder extends UiBinder<Widget, LegacyComposite> {
+ }
+ private static final Binder BINDER = GWT.create(Binder.class);
+
+ @UiField SpanElement span;
+
+ public LegacyComposite() {
+ initWidget(BINDER.createAndBindUi(this));
+ }
+
+ @Override
+ public Widget getWidget() {
+ return super.getWidget();
+ }
+}
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/LegacyComposite.ui.xml
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,19 @@
+<!--
-->
+<!-- Copyright 2011 Google
Inc. -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
you -->
+<!-- may not use this file except in compliance with the License. You
may -->
+<!-- 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. License for the specific language governing permissions
and -->
+<!-- limitations under the
License. -->
+<ui:UiBinder
+ xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:gwt="urn:import:com.google.gwt.user.client.ui"
+ >
+ <gwt:HTML>When does this <span ui:field='span'>span</span> get
filled?</gwt:HTML>
+</ui:UiBinder>
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/RenderableComposite.java
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * 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.uibinder.test.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * Used by {@link IsRenderableIntegrationTest}.
+ */
+public class RenderableComposite extends Composite {
+ interface Binder extends UiBinder<Widget, RenderableComposite> {
+ }
+ private static final Binder BINDER = GWT.create(Binder.class);
+
+ static class Meta extends Composite {
+ Meta() {
+ initWidget(new RenderableComposite());
+ }
+ @Override
+ public Widget getWidget() {
+ return super.getWidget();
+ }
+ }
+
+ public RenderableComposite() {
+ initWidget(BINDER.createAndBindUi(this));
+ }
+
+ @Override
+ public Widget getWidget() {
+ return super.getWidget();
+ }
+}
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/RenderableComposite.ui.xml
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,20 @@
+<!--
-->
+<!-- Copyright 2011 Google
Inc. -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
you -->
+<!-- may not use this file except in compliance with the License. You
may -->
+<!-- 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. License for the specific language governing permissions
and -->
+<!-- limitations under the
License. -->
+<ui:UiBinder
+ xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:gwt="urn:import:com.google.gwt.user.client.ui"
+ xmlns:test="urn:import:com.google.gwt.uibinder.test.client"
+ >
+ <test:SimpleRenderable>Renderable</test:SimpleRenderable>
+</ui:UiBinder>
=======================================
--- /dev/null
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/SimpleRenderable.java
Wed Aug 17 10:09:20 2011
@@ -0,0 +1,157 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * 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.uibinder.test.client;
+
+import com.google.gwt.dom.builder.client.DomBuilderFactory;
+import com.google.gwt.dom.builder.shared.DivBuilder;
+import com.google.gwt.dom.builder.shared.ElementBuilderBase;
+import com.google.gwt.dom.builder.shared.ElementBuilderFactory;
+import com.google.gwt.dom.builder.shared.HtmlBuilderFactory;
+import com.google.gwt.dom.builder.shared.HtmlElementBuilderBase;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
+import com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.ui.HasValue;
+import com.google.gwt.user.client.ui.IsRenderable;
+import com.google.gwt.user.client.ui.PotentialElement;
+import com.google.gwt.user.client.ui.RenderableStamper;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * Used by {@link IsRenderableIntegrationTest}. A simple implementation of
+ * IsRenderable. Note that the actual building for both string based and
dom
+ * based versions happens in one place, {@link
#build(ElementBuilderFactory)}.
+ * <p>
+ * Note also that that the widget's contents are simply re-rendered when
the
+ * widget's state changes, in this case in {@link #setText}. This is a bad
idea
+ * for large widgets, but for little leaf widgets like this one is
probably just
+ * fine.
+ * <p>
+ * It would probably be a good refactor a production super class out of
this
+ * once the IsRenderable interface settles down.
+ * <p>
+ * It's HasValue aspect is just meant for unit testing, not anything to
+ * generalize.
+ */
+public class SimpleRenderable extends Widget implements IsRenderable,
HasText, HasValue<Object> {
+
+ private String text = "";
+ private Object value;
+
+ public SimpleRenderable() {
+ setElement(PotentialElement.build(this));
+ }
+
+ @Override
+ public HandlerRegistration
addValueChangeHandler(ValueChangeHandler<Object> handler) {
+ return addHandler(handler, ValueChangeEvent.getType());
+ }
+
+ @Override
+ public void claimElement(Element element) {
+ setElement(element);
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ @Override
+ public Object getValue() {
+ return value;
+ }
+
+ @Override
+ public void initializeClaimedElement() {
+ }
+
+ @Override
+ public SafeHtml render(RenderableStamper stamper) {
+ HtmlBuilderFactory factory = HtmlBuilderFactory.get();
+ String realText = text;
+ text = "[string built]" + text;
+ HtmlElementBuilderBase<?> builder = (HtmlElementBuilderBase<?>)
build(factory);
+ text = realText;
+ return stamper.stamp(builder.asSafeHtml());
+ }
+
+ @Override
+ public void render(RenderableStamper stamper, SafeHtmlBuilder
safeHtmlBuilder) {
+ safeHtmlBuilder.append(render(stamper));
+ }
+
+ @Override
+ public Element resolvePotentialElement() {
+ String realText = text;
+ text = "[dom built]" + text;
+ ElementBuilderBase<?> builder = build(DomBuilderFactory.get());
+ text = realText;
+ setElement(builder.finish());
+ return getElement();
+ }
+
+ @Override
+ public void setText(String text) {
+ this.text = text;
+ updateElement();
+ }
+
+ @Override
+ public void setValue(Object value) {
+ setValue(value, false);
+ }
+
+ @Override
+ public void setValue(Object newValue, boolean fireEvents) {
+ Object oldValue = value;
+ value = newValue;
+ ValueChangeEvent.fireIfNotEqual(this, oldValue, newValue);
+ }
+
+ private ElementBuilderBase<?> build(ElementBuilderFactory factory) {
+ DivBuilder builder = factory.createDivBuilder();
+ builder.text(text).end();
+ return builder;
+ }
+
+ private boolean domIsReal() {
+ return !PotentialElement.isPotential(getElement());
+ }
+
+ private void updateElement() {
+ if (domIsReal()) {
+ String realText = text;
+ text = "[updated]" + text;
+ /*
+ * Sleazey. If this is to get real, should split rendering into the
outer
+ * builder and the inner builder. Update can just call the inner
builder.
+ * But we'd still have to make a bunch of dom calls to tear down the
old
+ * guts, something like while (el.firstChild) {
+ * el.removeChild(el.firstChild); }
+ *
+ * Have to wonder if that actually would be any faster than
rebuilding the
+ * guts as string
+ */
+ ElementBuilderBase<?> builder = build(DomBuilderFactory.get());
+ getElement().setInnerHTML(builder.finish().getInnerHTML());
+ text = realText;
+ }
+ }
+}
=======================================
--- /trunk/user/src/com/google/gwt/user/client/ui/IsRenderable.java Wed
Jul 6 10:57:13 2011
+++ /trunk/user/src/com/google/gwt/user/client/ui/IsRenderable.java Wed Aug
17 10:09:20 2011
@@ -31,7 +31,8 @@
/**
* Replace the previous contents of the receiver with the given element,
- * presumed to have been created via a previous call to {@link #render}.
+ * presumed to have been created and stamped via a previous call to
+ * {@link #render}.
*/
void claimElement(Element element);
=======================================
--- /trunk/user/src/com/google/gwt/user/client/ui/RenderableStamper.java
Fri Jul 15 09:31:20 2011
+++ /trunk/user/src/com/google/gwt/user/client/ui/RenderableStamper.java
Wed Aug 17 10:09:20 2011
@@ -89,8 +89,4 @@
elementBuilder.id(token);
return elementBuilder;
}
-
- private String getToken() {
- return token;
- }
-}
+}
=======================================
--- /trunk/user/src/com/google/gwt/user/client/ui/UIObject.java Wed Jun 8
13:02:49 2011
+++ /trunk/user/src/com/google/gwt/user/client/ui/UIObject.java Wed Aug 17
10:09:20 2011
@@ -851,7 +851,7 @@
* <p>
* Note that this method is normally called only on the top element
* of an IsRenderable tree. Children instead will receive {@link
- * IsRenderable#render} and {@link IsRenderable#wrap}.
+ * IsRenderable#render} and {@link IsRenderable#claimElement(Element)}.
*
* @see PotentialElement
* @see IsRenderable
=======================================
--- /trunk/user/test/com/google/gwt/uibinder/LazyWidgetBuilderSuite.java
Thu Jun 16 09:38:05 2011
+++ /trunk/user/test/com/google/gwt/uibinder/LazyWidgetBuilderSuite.java
Wed Aug 17 10:09:20 2011
@@ -16,6 +16,7 @@
package com.google.gwt.uibinder;
import com.google.gwt.junit.tools.GWTTestSuite;
+import com.google.gwt.uibinder.test.client.IsRenderableIntegrationTest;
import com.google.gwt.uibinder.test.client.SafeHtmlAsComponentsTest;
import com.google.gwt.uibinder.test.client.UiRendererTest;
@@ -29,6 +30,7 @@
GWTTestSuite suite = new GWTTestSuite(
"Tests that rely on the useLazyWidgetBuilders switch");
+ suite.addTestSuite(IsRenderableIntegrationTest.class);
suite.addTestSuite(SafeHtmlAsComponentsTest.class);
suite.addTestSuite(UiRendererTest.class);
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors