diff options
Diffstat (limited to 'client-compiler')
-rw-r--r-- | client-compiler/src/com/vaadin/server/widgetsetutils/metadata/RendererVisitor.java | 8 | ||||
-rw-r--r-- | client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/RendererVisitor.java b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/RendererVisitor.java index 12e67988eb..2e54d00aab 100644 --- a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/RendererVisitor.java +++ b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/RendererVisitor.java @@ -52,7 +52,7 @@ public class RendererVisitor extends TypeVisitor { } private static void doRendererType(TreeLogger logger, JClassType type, - ConnectorBundle bundle) { + ConnectorBundle bundle) throws UnableToCompleteException { // The class in which createRenderer is implemented JClassType createRendererClass = ConnectorBundle.findInheritedMethod( type, "createRenderer").getEnclosingType(); @@ -63,6 +63,12 @@ public class RendererVisitor extends TypeVisitor { JMethod getRenderer = ConnectorBundle.findInheritedMethod(type, "getRenderer"); + if (getRenderer.getEnclosingType().getQualifiedSourceName() + .equals(AbstractRendererConnector.class.getCanonicalName())) { + logger.log(Type.ERROR, type.getQualifiedSourceName() + + " must override either createRenderer or getRenderer"); + throw new UnableToCompleteException(); + } JClassType rendererType = getRenderer.getReturnType().isClass(); bundle.setNeedsGwtConstructor(rendererType); diff --git a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java index a77b523d14..9a9cac18ba 100644 --- a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java +++ b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java @@ -42,6 +42,16 @@ public class WidgetInitVisitor extends TypeVisitor { // Needs GWT constructor if createWidget is not overridden if (createWidgetClass.getQualifiedSourceName().equals( AbstractComponentConnector.class.getCanonicalName())) { + if (getWidget + .getEnclosingType() + .getQualifiedSourceName() + .equals(AbstractComponentConnector.class + .getCanonicalName())) { + logger.log(Type.ERROR, type.getQualifiedSourceName() + + " must override either createWidget or getWidget"); + throw new UnableToCompleteException(); + } + bundle.setNeedsGwtConstructor(widgetType); // Also needs widget type to find the right GWT constructor |