summaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/terminal/gwt/client/WidgetSet.java
diff options
context:
space:
mode:
authorHenri Sara <hesara@vaadin.com>2012-04-04 15:04:23 +0300
committerHenri Sara <hesara@vaadin.com>2012-04-04 15:04:23 +0300
commit87e5022ca881154f7e4cba9b2c014b344646fa8f (patch)
treef60e74ea9b6b84f6f1ff75da58f59819d7666a54 /src/com/vaadin/terminal/gwt/client/WidgetSet.java
parent6bf22c0d4359034e2f934038382895f177f6a458 (diff)
downloadvaadin-framework-87e5022ca881154f7e4cba9b2c014b344646fa8f.tar.gz
vaadin-framework-87e5022ca881154f7e4cba9b2c014b344646fa8f.zip
Replace @ClientWidget with client-side @Component (#8440)
Diffstat (limited to 'src/com/vaadin/terminal/gwt/client/WidgetSet.java')
-rw-r--r--src/com/vaadin/terminal/gwt/client/WidgetSet.java45
1 files changed, 28 insertions, 17 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/WidgetSet.java b/src/com/vaadin/terminal/gwt/client/WidgetSet.java
index 656c92e285..5aa4b24764 100644
--- a/src/com/vaadin/terminal/gwt/client/WidgetSet.java
+++ b/src/com/vaadin/terminal/gwt/client/WidgetSet.java
@@ -30,7 +30,7 @@ public class WidgetSet {
* @return New uninitialized and unregistered component that can paint given
* UIDL.
*/
- public ComponentConnector createWidget(String tag,
+ public ComponentConnector createWidget(int tag,
ApplicationConfiguration conf) {
/*
* Yes, this (including the generated code in WidgetMap) may look very
@@ -40,12 +40,12 @@ public class WidgetSet {
* has no "native" counterpart on client side.
*/
- Class<? extends ComponentConnector> classType = resolveWidgetType(tag,
- conf);
+ Class<? extends ComponentConnector> classType = resolveInheritedWidgetType(
+ conf, tag);
if (classType == null || classType == UnknownComponentConnector.class) {
String serverSideName = conf
- .getUnknownServerClassNameByEncodedTagName(tag);
+ .getUnknownServerClassNameByTag(tag);
UnknownComponentConnector c = GWT
.create(UnknownComponentConnector.class);
c.setServerSideClassName(serverSideName);
@@ -56,16 +56,25 @@ public class WidgetSet {
*/
return widgetMap.instantiate(classType);
}
+ }
+ private Class<? extends ComponentConnector> resolveInheritedWidgetType(
+ ApplicationConfiguration conf, int tag) {
+ Class<? extends ComponentConnector> classType = null;
+ Integer t = tag;
+ do {
+ classType = resolveWidgetType(t, conf);
+ t = conf.getParentTag(t);
+ } while (classType == null && t != null);
+ return classType;
}
- protected Class<? extends ComponentConnector> resolveWidgetType(String tag,
+ protected Class<? extends ComponentConnector> resolveWidgetType(int tag,
ApplicationConfiguration conf) {
Class<? extends ComponentConnector> widgetClass = conf
.getWidgetClassByEncodedTag(tag);
return widgetClass;
-
}
/**
@@ -73,20 +82,22 @@ public class WidgetSet {
* limitation, widgetset must have function that returns Class by its fully
* qualified name.
*
- * @param fullyQualifiedName
+ * @param tag
* @param applicationConfiguration
* @return
*/
- public Class<? extends ComponentConnector> getImplementationByClassName(
- String fullyqualifiedName) {
- if (fullyqualifiedName == null) {
- return UnknownComponentConnector.class;
- }
- Class<? extends ComponentConnector> implementationByServerSideClassName = widgetMap
- .getImplementationByServerSideClassName(fullyqualifiedName);
-
- return implementationByServerSideClassName;
-
+ public Class<? extends ComponentConnector> getConnectorClassByTag(int tag,
+ ApplicationConfiguration conf) {
+ Class<? extends ComponentConnector> connectorClass = null;
+ Integer t = tag;
+ do {
+ connectorClass = widgetMap
+ .getConnectorClassForServerSideClassName(conf
+ .getServerSideClassNameForTag(t));
+ t = conf.getParentTag(t);
+ } while (connectorClass == UnknownComponentConnector.class && t != null);
+
+ return connectorClass;
}
public Class<? extends ComponentConnector>[] getDeferredLoadedWidgets() {