Hi all! , The Widget.wrap() API is very usefull to build widgets(fragments) from html templates retrieved from server or bound with the java widget class at the compilation time (generators). By this way, the design (HTML+CSS) is entirely delagated to Web Developpers, Java Gwt Developpers have to manage only with GWT Widget which are in fact only controllers:
Each controler pick up some html element by id left in its corresponding template and "build" gwt widget (TextBox,Label etc...) with the wrap API to manage the (dynamic) behavior. No css gwt api is used, no Panel for composition is used. Everything works fine while the widget fragment is attached to the DOM (RootPanel) but there is a trouble : If the widget fragment is detached its components (i e widgets created with the wrap api) are not garbaged because they don't have any parent. So there is a memory leak. The wrap method doesn't alow to link the life cycle of the component to its logical parent i e the widget parent. Here is the code of the wrap method : public static Label wrap(Element element) { // Assert that the element is attached. assert Document.get().getBody().isOrHasChild(element); Label label = new Label(element); // Mark it attached and remember it for cleanup. label.onAttach(); RootPanel.detachOnWindowClose(label); return label; } By the call of "RootPanel.detachOnWindowClose(label);" the widget is gabaged only when the main window is closed. It is not very clean if the fragment is garbaged. We reported this touble http://code.google.com/p/google-web-toolkit/issues/detail?id=3113 in the bug tracker few months ago but it still in the same state . --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to Google-Web-Toolkit@googlegroups.com To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---