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
