You can make your own widgets with custom html without wrappers, just
be careful because event listening often relies on the proper html
elements being present to operate properly {spans can be wonky when it
comes to KeyListeners}

The following code is for a simple widget that you can send arbitrary
html or plain text and have it converted into a widget...  It's got a
little extra code in it, but that's code cloneNode is way faster than
document.createElement()...


public class xSimpleWidget extends Widget{

        protected xSimpleWidget(){this("<div/>";}

        public xSimpleWidget(String xHtml){
                setElement(xMakeHtml((xHtml.startsWith("<")?xHtml:"<div
style='display:inherit;'> "+xHtml+" </div>").replaceAll("\r|\n", "<br/
>")));
        }
        public xSimpleWidget(Element x){
                setElement(x);
        }

private static Element
                xBLANK_DIV= Document.get().createDivElement()
                ,xBLANK_X= xDiv()
        ;

        public static Element xDiv(){
                return xBLANK_DIV.cloneNode(false).cast();
        }
        public static Element xMakeHtml(String x){
                xBLANK_X.setInnerHTML(x);
                if(xUserAgent.xStandards())//Non IE browsers don't have to 
forget
their reference to the new child
                        return xBLANK_X.getFirstChildElement();
                Element xRet = xBLANK_X.getFirstChildElement();//Get the element
created inside our div
                xBLANK_X=xDiv();//Reset the div so IE won't lose it's reference 
the
next time the xBLANK_X is overwritten
                return xRet;
        }
}


Basically, a Widget, Panel or Composite needs setElement(e), setElement
(e) and initWidget(w) {respectively} before you call getElement() or
add(), and all gwt widgets already call these functions {can only be
set once}.  If you want widgets with element's of any dynamic type
with including the proper GWT-wrapped widgets {they've got a widget
for pretty much every element already}...

If you can't find the GWT widgets, go to the DOM.createFormElement(),
or whatever element you're interested in, right-click and select "open
call hierarchy" to find out where GWT uses those calls...  Should lead
to better Widgets than my xSimpleWidget...

CHEERS!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" 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-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to