Because  the ElementParser is not in the client package.

On Jan 8, 11:09 pm, Miroslav Pokorny <[email protected]>
wrote:
> In your ElementParserToUse annontation why not pass the class instead  
> of classname which enforces some typesafety.
>
> On 09/01/2010, at 3:30 AM, ggeorg <[email protected]>  
> wrote:
>
> > Hi Ray,
>
> > Please have a look at:
>
> >http://code.google.com/p/google-web-toolkit/issues/detail?id=4461
>
> > the attached patch is the simplest patch I could make. It adds support
> > for adding custom ElementParser(s) to UiBinder by tagging each widgets
> > that is using a custom parser with the @ElementParserToUse annotation,
> > e.g.: for GWT Mosaic's LayoutPanel the code is:
>
> > @ElementParserToUse(className =
> > "org.gwt.mosaic.ui.elementparsers.LayoutPanelParser")
> > public class LayoutPanel extends AbsolutePanel implements
> > HasLayoutManager,
> >    HasAnimation {
> > ...
> > }
>
> > ----
>
> > After applying the patch, the UiBinderWriter.registerParsers() looks
> > like this:
>
> >  private void registerParsers() {
> >    // TODO(rjrjr): Allow third-party parsers to register themselves
> >    // automagically
>
> >    addElementParser("com.google.gwt.dom.client.Element",
> >        "com.google.gwt.uibinder.elementparsers.DomElementParser");
>
> >    // Register widget parsers.
> >    addWidgetParser("UIObject");
> >    addWidgetParser("HasText");
> >    addWidgetParser("HasHTML");
> >    addWidgetParser("HasWidgets");
> >    addWidgetParser("HTMLPanel");
> >    addWidgetParser("DockPanel");
> >    addWidgetParser("StackPanel");
> >    addWidgetParser("DisclosurePanel");
> >    addWidgetParser("TabPanel");
> >    addWidgetParser("MenuItem");
> >    addWidgetParser("MenuBar");
> >    addWidgetParser("RadioButton");
> >    addWidgetParser("CellPanel");
> >    addWidgetParser("CustomButton");
> >    addWidgetParser("DialogBox");
> >    addWidgetParser("LayoutPanel");
> >    addWidgetParser("DockLayoutPanel");
> >    addWidgetParser("StackLayoutPanel");
> >    addWidgetParser("TabLayoutPanel");
>
> >    // Register custom widget parsers... (almost automagically)
>
> >    Collection<OwnerField> uiFields = ownerClass.getUiFields();
>
> >    if (uiFields == null) {
> >      return;
> >    }
>
> >    for (OwnerField uiField : uiFields) {
> >      JClassType fieldType = uiField.getType().getRawType().isClass();
> >      String uiClassName = fieldType.getQualifiedSourceName();
>
> >      if (elementParsers.containsKey(uiClassName)) {
> >        continue;
> >      }
>
> >      if (fieldType != null
> >          && fieldType.isAnnotationPresent(ElementParserToUse.class))
> > {
> >        String parserClassName = fieldType.getAnnotation
> > (ElementParserToUse.class).className();
> >        if (parserClassName != null && parserClassName.length() > 0) {
> >          addElementParser(uiClassName, parserClassName);
> >        }
> >      }
> >    }
> >  }
>
> > Kind Regards,
> > George.
>
> > On Jan 7, 12:04 am, Ray Ryan <[email protected]> wrote:
> >> How could I stop you? :-)
>
> >> Would you making an issue tracker entry about this and putting the  
> >> patch
> >> there?
> > --
> >http://groups.google.com/group/Google-Web-Toolkit-Contributors
-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to