-/*\r
-@VaadinApache2LicenseForJavaFiles@\r
- */\r
-package com.vaadin.terminal.gwt.client;\r
-\r
-import java.io.Serializable;\r
-import java.util.List;\r
-\r
-import com.google.gwt.event.shared.EventHandler;\r
-import com.google.gwt.event.shared.GwtEvent;\r
-import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent.ConnectorHierarchyChangeHandler;\r
-import com.vaadin.terminal.gwt.client.communication.AbstractServerConnectorEvent;\r
-\r
-/**\r
- * Event for containing data related to a change in the {@link ServerConnector}\r
- * hierarchy. A {@link ConnectorHierarchyChangedEvent} is fired when an update\r
- * from the server has been fully processed and all hierarchy updates have been\r
- * completed.\r
- * \r
- * @author Vaadin Ltd\r
- * @version @VERSION@\r
- * @since 7.0.0\r
- * \r
- */\r
-public class ConnectorHierarchyChangeEvent extends\r
- AbstractServerConnectorEvent<ConnectorHierarchyChangeHandler> {\r
- /**\r
- * Type of this event, used by the event bus.\r
- */\r
- public static final Type<ConnectorHierarchyChangeHandler> TYPE = new Type<ConnectorHierarchyChangeHandler>();\r
-\r
- List<ComponentConnector> oldChildren;\r
- private ComponentContainerConnector parent;\r
-\r
- public ConnectorHierarchyChangeEvent() {\r
- }\r
-\r
- /**\r
- * Returns a collection of the old children for the connector. This was the\r
- * state before the update was received from the server.\r
- * \r
- * @return A collection of old child connectors. Never returns null.\r
- */\r
- public List<ComponentConnector> getOldChildren() {\r
- return oldChildren;\r
- }\r
-\r
- /**\r
- * Sets the collection of the old children for the connector.\r
- * \r
- * @param oldChildren\r
- * The old child connectors. Must not be null.\r
- */\r
- public void setOldChildren(List<ComponentConnector> oldChildren) {\r
- this.oldChildren = oldChildren;\r
- }\r
-\r
- /**\r
- * Returns the {@link ComponentContainerConnector} for which this event\r
- * occurred.\r
- * \r
- * @return The {@link ComponentContainerConnector} whose child collection\r
- * has changed. Never returns null.\r
- */\r
- public ComponentContainerConnector getParent() {\r
- return parent;\r
- }\r
-\r
- /**\r
- * Sets the {@link ComponentContainerConnector} for which this event\r
- * occurred.\r
- * \r
- * @param The\r
- * {@link ComponentContainerConnector} whose child collection has\r
- * changed.\r
- */\r
- public void setParent(ComponentContainerConnector parent) {\r
- this.parent = parent;\r
- }\r
-\r
- public interface ConnectorHierarchyChangeHandler extends Serializable,\r
- EventHandler {\r
- public void onConnectorHierarchyChange(\r
- ConnectorHierarchyChangeEvent connectorHierarchyChangeEvent);\r
- }\r
-\r
- @Override\r
- public void dispatch(ConnectorHierarchyChangeHandler handler) {\r
- handler.onConnectorHierarchyChange(this);\r
- }\r
-\r
- @Override\r
- public GwtEvent.Type<ConnectorHierarchyChangeHandler> getAssociatedType() {\r
- return TYPE;\r
- }\r
-\r
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.terminal.gwt.client;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.vaadin.terminal.gwt.client.ConnectorHierarchyChangeEvent.ConnectorHierarchyChangeHandler;
+import com.vaadin.terminal.gwt.client.communication.AbstractServerConnectorEvent;
+
+/**
+ * Event for containing data related to a change in the {@link ServerConnector}
+ * hierarchy. A {@link ConnectorHierarchyChangedEvent} is fired when an update
+ * from the server has been fully processed and all hierarchy updates have been
+ * completed.
+ *
+ * @author Vaadin Ltd
+ * @version @VERSION@
+ * @since 7.0.0
+ *
+ */
+public class ConnectorHierarchyChangeEvent extends
+ AbstractServerConnectorEvent<ConnectorHierarchyChangeHandler> {
+ /**
+ * Type of this event, used by the event bus.
+ */
+ public static final Type<ConnectorHierarchyChangeHandler> TYPE = new Type<ConnectorHierarchyChangeHandler>();
+
+ List<ComponentConnector> oldChildren;
+ private ComponentContainerConnector parent;
+
+ public ConnectorHierarchyChangeEvent() {
+ }
+
+ /**
+ * Returns a collection of the old children for the connector. This was the
+ * state before the update was received from the server.
+ *
+ * @return A collection of old child connectors. Never returns null.
+ */
+ public List<ComponentConnector> getOldChildren() {
+ return oldChildren;
+ }
+
+ /**
+ * Sets the collection of the old children for the connector.
+ *
+ * @param oldChildren
+ * The old child connectors. Must not be null.
+ */
+ public void setOldChildren(List<ComponentConnector> oldChildren) {
+ this.oldChildren = oldChildren;
+ }
+
+ /**
+ * Returns the {@link ComponentContainerConnector} for which this event
+ * occurred.
+ *
+ * @return The {@link ComponentContainerConnector} whose child collection
+ * has changed. Never returns null.
+ */
+ public ComponentContainerConnector getParent() {
+ return parent;
+ }
+
+ /**
+ * Sets the {@link ComponentContainerConnector} for which this event
+ * occurred.
+ *
+ * @param The
+ * {@link ComponentContainerConnector} whose child collection has
+ * changed.
+ */
+ public void setParent(ComponentContainerConnector parent) {
+ this.parent = parent;
+ }
+
+ public interface ConnectorHierarchyChangeHandler extends Serializable,
+ EventHandler {
+ public void onConnectorHierarchyChange(
+ ConnectorHierarchyChangeEvent connectorHierarchyChangeEvent);
+ }
+
+ @Override
+ public void dispatch(ConnectorHierarchyChangeHandler handler) {
+ handler.onConnectorHierarchyChange(this);
+ }
+
+ @Override
+ public GwtEvent.Type<ConnectorHierarchyChangeHandler> getAssociatedType() {
+ return TYPE;
+ }
+
}
\ No newline at end of file
-/*\r
-@VaadinApache2LicenseForJavaFiles@\r
- */\r
-package com.vaadin.terminal.gwt.widgetsetutils;\r
-\r
-import java.io.PrintWriter;\r
-import java.util.Date;\r
-\r
-import com.google.gwt.core.client.GWT;\r
-import com.google.gwt.core.ext.Generator;\r
-import com.google.gwt.core.ext.GeneratorContext;\r
-import com.google.gwt.core.ext.TreeLogger;\r
-import com.google.gwt.core.ext.TreeLogger.Type;\r
-import com.google.gwt.core.ext.UnableToCompleteException;\r
-import com.google.gwt.core.ext.typeinfo.JClassType;\r
-import com.google.gwt.core.ext.typeinfo.TypeOracle;\r
-import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;\r
-import com.google.gwt.user.rebind.SourceWriter;\r
-import com.vaadin.terminal.gwt.client.ServerConnector;\r
-import com.vaadin.terminal.gwt.client.communication.RpcProxy.RpcProxyCreator;\r
-import com.vaadin.terminal.gwt.client.communication.ServerRpc;\r
-import com.vaadin.terminal.gwt.client.communication.ServerRpc.InitializableClientToServerRpc;\r
-\r
-public class RpcProxyCreatorGenerator extends Generator {\r
-\r
- @Override\r
- public String generate(TreeLogger logger, GeneratorContext ctx,\r
- String requestedClassName) throws UnableToCompleteException {\r
- logger.log(TreeLogger.DEBUG, "Running RpcProxyCreatorGenerator");\r
- TypeOracle typeOracle = ctx.getTypeOracle();\r
- assert (typeOracle != null);\r
-\r
- JClassType requestedType = typeOracle.findType(requestedClassName);\r
- String packageName = requestedType.getPackage().getName();\r
- String className = requestedType.getSimpleSourceName() + "Impl";\r
- if (requestedType == null) {\r
- logger.log(TreeLogger.ERROR, "Unable to find metadata for type '"\r
- + requestedClassName + "'", null);\r
- throw new UnableToCompleteException();\r
- }\r
-\r
- createType(logger, ctx, packageName, className);\r
- return packageName + "." + className;\r
- }\r
-\r
- private void createType(TreeLogger logger, GeneratorContext context,\r
- String packageName, String className) {\r
- ClassSourceFileComposerFactory composer = new ClassSourceFileComposerFactory(\r
- packageName, className);\r
-\r
- PrintWriter printWriter = context.tryCreate(logger,\r
- composer.getCreatedPackage(),\r
- composer.getCreatedClassShortName());\r
- if (printWriter == null) {\r
- // print writer is null if source code has already been generated\r
- return;\r
- }\r
- Date date = new Date();\r
- TypeOracle typeOracle = context.getTypeOracle();\r
-\r
- // init composer, set class properties, create source writer\r
- composer.addImport(GWT.class.getCanonicalName());\r
- composer.addImport(ServerRpc.class.getCanonicalName());\r
- composer.addImport(ServerConnector.class.getCanonicalName());\r
- composer.addImport(InitializableClientToServerRpc.class\r
- .getCanonicalName());\r
- composer.addImport(IllegalArgumentException.class.getCanonicalName());\r
- composer.addImplementedInterface(RpcProxyCreator.class\r
- .getCanonicalName());\r
-\r
- SourceWriter sourceWriter = composer.createSourceWriter(context,\r
- printWriter);\r
- sourceWriter.indent();\r
-\r
- sourceWriter\r
- .println("public <T extends ServerRpc> T create(Class<T> rpcInterface, ServerConnector connector) {");\r
- sourceWriter.indent();\r
-\r
- sourceWriter\r
- .println("if (rpcInterface == null || connector == null) {");\r
- sourceWriter.indent();\r
- sourceWriter\r
- .println("throw new IllegalArgumentException(\"RpcInterface and/or connector cannot be null\");");\r
- sourceWriter.outdent();\r
- sourceWriter\r
- .println("} else if (connector.getConnectorId() == null) {");\r
- sourceWriter.indent();\r
- sourceWriter\r
- .println("throw new IllegalArgumentException(\"Connector must be initialized before creating Rpc instances.\");");\r
- sourceWriter.outdent();\r
-\r
- JClassType initializableInterface = typeOracle.findType(ServerRpc.class\r
- .getCanonicalName());\r
-\r
- for (JClassType rpcType : initializableInterface.getSubtypes()) {\r
- String rpcClassName = rpcType.getQualifiedSourceName();\r
- if (InitializableClientToServerRpc.class.getCanonicalName().equals(\r
- rpcClassName)) {\r
- // InitializableClientToServerRpc is a special marker interface\r
- // that should not get a generated class\r
- continue;\r
- }\r
- sourceWriter.println("} else if (rpcInterface == " + rpcClassName\r
- + ".class) {");\r
- sourceWriter.indent();\r
- sourceWriter.println(rpcClassName + " rpc = GWT.create("\r
- + rpcClassName + ".class);");\r
- sourceWriter\r
- .println("((InitializableClientToServerRpc) rpc).initRpc(connector.getConnectorId(), connector.getConnection());");\r
- sourceWriter.println("return (T) rpc;");\r
- sourceWriter.outdent();\r
- }\r
-\r
- sourceWriter.println("} else {");\r
- sourceWriter.indent();\r
- sourceWriter\r
- .println("throw new IllegalArgumentException(\"No RpcInterface of type \"+ rpcInterface.getName() + \" was found.\");");\r
- sourceWriter.outdent();\r
- // End of if\r
- sourceWriter.println("}");\r
- // End of method\r
- sourceWriter.println("}");\r
-\r
- // close generated class\r
- sourceWriter.outdent();\r
- sourceWriter.println("}");\r
- // commit generated class\r
- context.commit(logger, printWriter);\r
- logger.log(Type.INFO, composer.getCreatedClassName() + " created in "\r
- + (new Date().getTime() - date.getTime()) / 1000 + "seconds");\r
-\r
- }\r
-}\r
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.terminal.gwt.widgetsetutils;
+
+import java.io.PrintWriter;
+import java.util.Date;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.ext.Generator;
+import com.google.gwt.core.ext.GeneratorContext;
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.TreeLogger.Type;
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.JClassType;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;
+import com.google.gwt.user.rebind.SourceWriter;
+import com.vaadin.terminal.gwt.client.ServerConnector;
+import com.vaadin.terminal.gwt.client.communication.RpcProxy.RpcProxyCreator;
+import com.vaadin.terminal.gwt.client.communication.ServerRpc;
+import com.vaadin.terminal.gwt.client.communication.ServerRpc.InitializableClientToServerRpc;
+
+public class RpcProxyCreatorGenerator extends Generator {
+
+ @Override
+ public String generate(TreeLogger logger, GeneratorContext ctx,
+ String requestedClassName) throws UnableToCompleteException {
+ logger.log(TreeLogger.DEBUG, "Running RpcProxyCreatorGenerator");
+ TypeOracle typeOracle = ctx.getTypeOracle();
+ assert (typeOracle != null);
+
+ JClassType requestedType = typeOracle.findType(requestedClassName);
+ String packageName = requestedType.getPackage().getName();
+ String className = requestedType.getSimpleSourceName() + "Impl";
+ if (requestedType == null) {
+ logger.log(TreeLogger.ERROR, "Unable to find metadata for type '"
+ + requestedClassName + "'", null);
+ throw new UnableToCompleteException();
+ }
+
+ createType(logger, ctx, packageName, className);
+ return packageName + "." + className;
+ }
+
+ private void createType(TreeLogger logger, GeneratorContext context,
+ String packageName, String className) {
+ ClassSourceFileComposerFactory composer = new ClassSourceFileComposerFactory(
+ packageName, className);
+
+ PrintWriter printWriter = context.tryCreate(logger,
+ composer.getCreatedPackage(),
+ composer.getCreatedClassShortName());
+ if (printWriter == null) {
+ // print writer is null if source code has already been generated
+ return;
+ }
+ Date date = new Date();
+ TypeOracle typeOracle = context.getTypeOracle();
+
+ // init composer, set class properties, create source writer
+ composer.addImport(GWT.class.getCanonicalName());
+ composer.addImport(ServerRpc.class.getCanonicalName());
+ composer.addImport(ServerConnector.class.getCanonicalName());
+ composer.addImport(InitializableClientToServerRpc.class
+ .getCanonicalName());
+ composer.addImport(IllegalArgumentException.class.getCanonicalName());
+ composer.addImplementedInterface(RpcProxyCreator.class
+ .getCanonicalName());
+
+ SourceWriter sourceWriter = composer.createSourceWriter(context,
+ printWriter);
+ sourceWriter.indent();
+
+ sourceWriter
+ .println("public <T extends ServerRpc> T create(Class<T> rpcInterface, ServerConnector connector) {");
+ sourceWriter.indent();
+
+ sourceWriter
+ .println("if (rpcInterface == null || connector == null) {");
+ sourceWriter.indent();
+ sourceWriter
+ .println("throw new IllegalArgumentException(\"RpcInterface and/or connector cannot be null\");");
+ sourceWriter.outdent();
+ sourceWriter
+ .println("} else if (connector.getConnectorId() == null) {");
+ sourceWriter.indent();
+ sourceWriter
+ .println("throw new IllegalArgumentException(\"Connector must be initialized before creating Rpc instances.\");");
+ sourceWriter.outdent();
+
+ JClassType initializableInterface = typeOracle.findType(ServerRpc.class
+ .getCanonicalName());
+
+ for (JClassType rpcType : initializableInterface.getSubtypes()) {
+ String rpcClassName = rpcType.getQualifiedSourceName();
+ if (InitializableClientToServerRpc.class.getCanonicalName().equals(
+ rpcClassName)) {
+ // InitializableClientToServerRpc is a special marker interface
+ // that should not get a generated class
+ continue;
+ }
+ sourceWriter.println("} else if (rpcInterface == " + rpcClassName
+ + ".class) {");
+ sourceWriter.indent();
+ sourceWriter.println(rpcClassName + " rpc = GWT.create("
+ + rpcClassName + ".class);");
+ sourceWriter
+ .println("((InitializableClientToServerRpc) rpc).initRpc(connector.getConnectorId(), connector.getConnection());");
+ sourceWriter.println("return (T) rpc;");
+ sourceWriter.outdent();
+ }
+
+ sourceWriter.println("} else {");
+ sourceWriter.indent();
+ sourceWriter
+ .println("throw new IllegalArgumentException(\"No RpcInterface of type \"+ rpcInterface.getName() + \" was found.\");");
+ sourceWriter.outdent();
+ // End of if
+ sourceWriter.println("}");
+ // End of method
+ sourceWriter.println("}");
+
+ // close generated class
+ sourceWriter.outdent();
+ sourceWriter.println("}");
+ // commit generated class
+ context.commit(logger, printWriter);
+ logger.log(Type.INFO, composer.getCreatedClassName() + " created in "
+ + (new Date().getTime() - date.getTime()) / 1000 + "seconds");
+
+ }
+}