Revision: 6548 Author: [email protected] Date: Thu Oct 29 15:26:24 2009 Log: Merges tr...@6547 into releases/2.0 Fix various error reporting issues svn merge --ignore-ancestry -c 6547 https://google-web-toolkit.googlecode.com/svn/trunk .
http://code.google.com/p/google-web-toolkit/source/detail?r=6548 Modified: /releases/2.0/branch-info.txt /releases/2.0/user/src/com/google/gwt/uibinder/parsers/CellPanelParser.java /releases/2.0/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java /releases/2.0/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java /releases/2.0/user/src/com/google/gwt/uibinder/rebind/XMLElement.java /releases/2.0/user/src/com/google/gwt/uibinder/sample/client/HandlerDemo.ui.xml ======================================= --- /releases/2.0/branch-info.txt Thu Oct 29 12:29:31 2009 +++ /releases/2.0/branch-info.txt Thu Oct 29 15:26:24 2009 @@ -118,3 +118,7 @@ tr...@6543 was merged into this branch Fixes an NPE when a logged exception has a null stack trace as string. svn merge --ignore-ancestry -c 6543 http://google-web-toolkit.googlecode.com/svn/trunk/ . + +tr...@6547 was merged into this branch + Fix various error reporting issues + svn merge --ignore-ancestry -c 6547 https://google-web-toolkit.googlecode.com/svn/trunk . ======================================= --- /releases/2.0/user/src/com/google/gwt/uibinder/parsers/CellPanelParser.java Wed Oct 28 14:57:48 2009 +++ /releases/2.0/user/src/com/google/gwt/uibinder/parsers/CellPanelParser.java Thu Oct 29 15:26:24 2009 @@ -84,7 +84,8 @@ String ns = child.getNamespaceUri(); String tagName = child.getLocalName(); - if (ns.equals(elem.getNamespaceUri()) && localTagNameIsCell(tagName)) { + if (ns != null && ns.equals(elem.getNamespaceUri()) + && localTagNameIsCell(tagName)) { // It's a cell element, so parse its single child as a widget. XMLElement widget = child.consumeSingleChildElement(); String childFieldName = writer.parseElementToField(widget); @@ -93,6 +94,10 @@ // Parse the cell tag's alignment & size attributes. parseCellAttributes(child, fieldName, childFieldName, writer); } else { + if (!writer.isWidgetElement(child)) { + writer.die("In %s, expected a widget or <%s:%s>, found %s", elem, + elem.getPrefix(), CELL_TAG.toLowerCase(), child); + } // It's just a normal child, so parse it as a widget. String childFieldName = writer.parseElementToField(child); writer.addStatement("%1$s.add(%2$s);", fieldName, childFieldName); ======================================= --- /releases/2.0/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java Tue Oct 27 00:00:07 2009 +++ /releases/2.0/user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java Thu Oct 29 15:26:24 2009 @@ -77,6 +77,7 @@ // guice!!! private static final String IMPORT_ATTRIBUTE = "import"; + private static final String TAG = "UiBinder"; private final UiBinderWriter writer; private final TypeOracle oracle; private final MessagesWriter messagesWriter; @@ -105,6 +106,18 @@ * the document. */ public String parse(XMLElement elem) throws UnableToCompleteException { + if (!writer.isBinderElement(elem)) { + writer.die("Bad prefix on <%s:%s>? The root element must be in " + + "xml namespace \"%s\" (usually with prefix \"ui:\"), " + + "but this has prefix \"%s\"", elem.getPrefix(), + elem.getLocalName(), UiBinderWriter.BINDER_URI, elem.getPrefix()); + } + + if (!TAG.equals(elem.getLocalName())) { + writer.die("Root element must be %s:%s, but found %s", elem.getPrefix(), + TAG, elem); + } + findResources(elem); messagesWriter.findMessagesConfig(elem); XMLElement uiRoot = elem.consumeSingleChildElement(); ======================================= --- /releases/2.0/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java Tue Oct 27 16:44:52 2009 +++ /releases/2.0/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java Thu Oct 29 15:26:24 2009 @@ -69,7 +69,7 @@ */ @SuppressWarnings("deprecation") public class UiBinderWriter { - private static final String BINDER_URI = "urn:ui:com.google.gwt.uibinder"; + static final String BINDER_URI = "urn:ui:com.google.gwt.uibinder"; private static final String BUNDLE_URI_SCHEME = "urn:with:"; private static final String PACKAGE_URI_SCHEME = "urn:import:"; @@ -646,7 +646,7 @@ public String getUiFieldAttributeName() { return gwtPrefix + ":field"; } - + public boolean isBinderElement(XMLElement elem) { String uri = elem.getNamespaceUri(); return uri != null && BINDER_URI.equals(uri); ======================================= --- /releases/2.0/user/src/com/google/gwt/uibinder/rebind/XMLElement.java Tue Oct 27 00:00:07 2009 +++ /releases/2.0/user/src/com/google/gwt/uibinder/rebind/XMLElement.java Thu Oct 29 15:26:24 2009 @@ -391,8 +391,8 @@ XMLElement ret = null; for (XMLElement child : consumeChildElements()) { if (ret != null) { - writer.die("%s may only contain a single child element, but found" - + "%s and %s.", getLocalName(), ret, child); + writer.die("%s may only contain a single child element, but found " + + "%s and %s.", this, ret, child); } ret = child; ======================================= --- /releases/2.0/user/src/com/google/gwt/uibinder/sample/client/HandlerDemo.ui.xml Wed Aug 5 20:27:52 2009 +++ /releases/2.0/user/src/com/google/gwt/uibinder/sample/client/HandlerDemo.ui.xml Thu Oct 29 15:26:24 2009 @@ -1,4 +1,4 @@ -<gwt:UiBinder +<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:gwt='urn:import:com.google.gwt.user.client.ui'> @@ -16,4 +16,4 @@ <gwt:TextBox ui:field="textBoxValueChange"/> </gwt:FlowPanel> -</gwt:UiBinder> +</ui:UiBinder> --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
