First of all, there was an issue a lot of SmartGWT users ran into
w/r/t visualization I wanted you to be aware of.

http://code.google.com/p/gwt-google-apis/issues/detail?id=425

The message you're getting doesn't sound specific to the visualization
API, it sounds more like a general GWT or smart GWT problem.   As a
general debugging tip, I'd recommend setting break points in dev mode
and making sure you aren't moving any widgets from one parent to
another and you aren't accidentally getting a callback more than once.


On Sun, May 8, 2011 at 9:44 PM, Rob <[email protected]> wrote:
> Hi
>
> I would like to add visualization support via the Google Visualization
> API (1.1) to an existing GWT (2.1.1) and smartGWT (2.4) application.
>
> I followed the approach described in this post ->
> http://forums.smartclient.com/showpost.php?p=37754&postcount=2 and the
> Visualization Getting Started guide->
> http://code.google.com/p/gwt-google-apis/wiki/VisualizationGettingStarted.
>
> And, then found this post ->
> http://groups.google.com/group/google-visualization-api/browse_thread/thread/ff89e49ecf52fd4/69b7bfd3d4042526?lnk=gst&q=smartGWT#69b7bfd3d4042526
> in the Google Visualization API discussion group.
>
> For example:
>
> ->
>
>  public void loadVisualizationApi() {
>
>    Log.debug("loadVisualizationApi()");
>
>    // Create a callback to be called when the visualization API
>    // has been loaded.
>    Runnable onLoadCallback = new Runnable() {
>      public void run() {
>
>        Log.debug("onLoadCallback()");
>
>        // Create a pie chart visualization.
>        pie = new PieChart(createTable(), createOptions());
>        pie.setWidth("80%");
>
>        Canvas canvas = new Canvas();
>        canvas.setID("sys_pie_canvas");
>        canvas.setWidth100();
>        canvas.setHeight("50%");
>        canvas.addChild(pie);
>
>        panel.addMember(canvas, 0);
>
>        Log.debug("panel.addMember(canvas, 0)");
>      }
>    };
>
>    // Load the visualization api, passing the onLoadCallback
>    // to be called when loading is complete.
>    VisualizationUtils.loadVisualizationApi("1.1", onLoadCallback,
>        PieChart.PACKAGE);
>  }
>
>  // The code for createTable() and createOptions()) is as per
>  // the post mentioned above.
>
> ->
>
> However, this results in the following error:
> java.lang.AssertionError: A widget that has an existing parent widget
> may not be added to the detach list at
> com.google.gwt.user.client.ui.RootPanel.detachOnWi
> ndowClose(RootPanel.java:136) when using GWT (2.1.1), smartGWT LGPL
> (2.5 nightly build) and Google Visualization API (1.1).
>
> Note: I also tested the code using smartGWT (2.4) and received the
> following error: (NativeMethodAccessorImpl.java:-2) 2011-05-09
> 10:26:21,613 [FATAL] Uncaught JavaScript exception [Script error.]
> in , line 0
>
> If I comment out the call to "panel.addMember(pie)" and replace it
> with "RootPanel.get().add(pie)" no exception is thrown and the "chart"
> is rendered correctly (you can see it momentarily if you re-size the
> browser window) but as a child of the root panel. Which means it is
> hidden by the application's other nested layout containers (e.g.
> North, West, East and South).
>
> I would like to be able to place the "chart" in a nested layout
> container if possible?
>
> The stack trace:
>
> ->
>
> 16:13:50.134 [ERROR] [serendipity] (ExceptionHelper.java:38)
> 2011-05-08 16:13:50,134 [FATAL] Uncaught Exception:
>
> java.lang.AssertionError: A widget that has an existing parent widget
> may not be added to the detach list
>    at
> com.google.gwt.user.client.ui.RootPanel.detachOnWindowClose(RootPanel.java:
> 136)
>    at com.google.gwt.user.client.ui.RootPanel.get(RootPanel.java:211)
>    at
> com.smartgwt.client.widgets.WidgetCanvas.onDraw(WidgetCanvas.java:39)
>    at com.smartgwt.client.widgets.BaseWidget.rendered(BaseWidget.java:
> 242)
>    at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
>    at java.lang.reflect.Method.invoke(Method.java:597)
>    at
> com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
>    at
> com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
>    at
> com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
> 157)
>    at
> com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:
> 326)
>    at
> com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:
> 207)
>    at
> com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:
> 126)
>    at
> com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
> 561)
>    at
> com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:
> 289)
>    at
> com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:
> 107)
>    at
> com.smartgwt.client.widgets.layout.Layout.addMemberPostCreate(Layout.java)
>    at com.smartgwt.client.widgets.layout.Layout.addMember(Layout.java:
> 1089)
>    at com.smartgwt.client.widgets.layout.Layout.addMember(Layout.java:
> 1076)
>    at au.com.uptick.serendipity.client.sales.view.DashboardsView
> $1.run(DashboardsView.java:76)
>    at
> com.google.gwt.ajaxloader.client.ExceptionHelper.runProtected(ExceptionHelper.java:
> 36)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 25)
>    at java.lang.reflect.Method.invoke(Method.java:597)
>    at
> com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
>    at
> com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
>    at
> com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
> 157)
>    at
> com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:
> 281)
>    at
> com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:
> 531)
>    at
> com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:
> 352)
>    at java.lang.Thread.run(Thread.java:619)
>
> ->
>
> Cheers
> Rob
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google Visualization API" group.
> To post to this group, send email to 
> [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/google-visualization-api?hl=en.
>
>



-- 
Eric Z. Ayers
Google Web Toolkit, Atlanta, GA USA

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.

Reply via email to