conf, tag);
if (classType == null || classType == UnknownComponentConnector.class) {
- String serverSideName = conf
- .getUnknownServerClassNameByTag(tag);
+ String serverSideName = conf.getUnknownServerClassNameByTag(tag);
UnknownComponentConnector c = GWT
.create(UnknownComponentConnector.class);
c.setServerSideClassName(serverSideName);
Class<? extends ComponentConnector> connectorClass = null;
Integer t = tag;
do {
+ String serverSideClassName = conf.getServerSideClassNameForTag(t);
connectorClass = widgetMap
- .getConnectorClassForServerSideClassName(conf
- .getServerSideClassNameForTag(t));
+ .getConnectorClassForServerSideClassName(serverSideClassName);
t = conf.getParentTag(t);
} while (connectorClass == UnknownComponentConnector.class && t != null);
if (typeMappingsOpen) {
// send the whole type inheritance map if any new mappings
for (Class<? extends ClientConnector> class1 : usedClientConnectors) {
+ if (!ClientConnector.class.isAssignableFrom(class1
+ .getSuperclass())) {
+ continue;
+ }
if (!typeInheritanceMapOpen) {
typeInheritanceMapOpen = true;
outWriter.print(", \"typeInheritanceMap\" : { ");
outWriter.print("\"");
outWriter.print(getTagForType(class1));
outWriter.print("\" : ");
- // note that if the superclass is not in typeMappings, a "dummy"
- // tag is used
outWriter
.print(getTagForType((Class<? extends ClientConnector>) class1
.getSuperclass()));
private BootstrapHandler bootstrapHandler;
String getTagForType(Class<? extends ClientConnector> class1) {
- Integer object = typeToKey.get(class1);
- if (object == null) {
- object = nextTypeKey++;
- typeToKey.put(class1, object);
+ Integer id = typeToKey.get(class1);
+ if (id == null) {
+ id = nextTypeKey++;
+ typeToKey.put(class1, id);
+ logger.log(Level.FINE, "Mapping " + class1.getName() + " to " + id);
}
- return object.toString();
+ return id.toString();
}
/**
throw new IllegalArgumentException(
"Tags are only available for ClientConnectors");
}
- Class<?> clazz = paintable.getClass();
+ Class<? extends Paintable> paintableClass = paintable.getClass();
+ while (paintableClass.isAnonymousClass()) {
+ paintableClass = (Class<? extends Paintable>) paintableClass
+ .getSuperclass();
+ }
+ Class<?> clazz = paintableClass;
while (!usedClientConnectors.contains(clazz)
&& clazz.getSuperclass() != null
- && ClientConnector.class
- .isAssignableFrom(clazz.getSuperclass())) {
+ && ClientConnector.class.isAssignableFrom(clazz)) {
usedClientConnectors.add((Class<? extends ClientConnector>) clazz);
clazz = clazz.getSuperclass();
}
return manager
- .getTagForType((Class<? extends ClientConnector>) paintable
- .getClass());
+ .getTagForType((Class<? extends ClientConnector>) paintableClass);
}
Collection<Class<? extends ClientConnector>> getUsedClientConnectors() {