summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-06-15 13:56:10 +0300
committerLeif Åstrand <leif@vaadin.com>2012-06-15 13:56:10 +0300
commitae2a42dd038b03c5b3dc69c4574bc887bfc8abc2 (patch)
treecf791670f51057ee4081e32ec84a91163e7450bb /src/com
parent1cf98eca5d6f861d3cde9ec9ca9fd98117b053e0 (diff)
downloadvaadin-framework-ae2a42dd038b03c5b3dc69c4574bc887bfc8abc2.tar.gz
vaadin-framework-ae2a42dd038b03c5b3dc69c4574bc887bfc8abc2.zip
Add API for getting the parent connector's id (#8888)
Diffstat (limited to 'src/com')
-rw-r--r--src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java b/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java
index 006105fed6..bd62a759cb 100644
--- a/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java
+++ b/src/com/vaadin/terminal/gwt/client/JavaScriptConnectorHelper.java
@@ -173,6 +173,9 @@ public class JavaScriptConnectorHelper {
'getConnectorId': function() {
return connectorId;
},
+ 'getParentId': $entry(function(connectorId) {
+ return h.@com.vaadin.terminal.gwt.client.JavaScriptConnectorHelper::getParentId(Ljava/lang/String;)(connectorId);
+ }),
'getState': function() {
return nativeState;
},
@@ -208,13 +211,21 @@ public class JavaScriptConnectorHelper {
});
}-*/;
- private Element getWidgetElement(String connectorId) {
- if (connectorId == null) {
- connectorId = connector.getConnectorId();
+ private String getParentId(String connectorId) {
+ ServerConnector target = getConnector(connectorId);
+ if (target == null) {
+ return null;
}
+ ServerConnector parent = target.getParent();
+ if (parent == null) {
+ return null;
+ } else {
+ return parent.getConnectorId();
+ }
+ }
- ServerConnector target = ConnectorMap.get(connector.getConnection())
- .getConnector(connectorId);
+ private Element getWidgetElement(String connectorId) {
+ ServerConnector target = getConnector(connectorId);
if (target instanceof ComponentConnector) {
return ((ComponentConnector) target).getWidget().getElement();
} else {
@@ -222,6 +233,15 @@ public class JavaScriptConnectorHelper {
}
}
+ private ServerConnector getConnector(String connectorId) {
+ if (connectorId == null || connectorId.length() == 0) {
+ return connector;
+ }
+
+ return ConnectorMap.get(connector.getConnection())
+ .getConnector(connectorId);
+ }
+
private void fireRpc(String iface, String method,
JsArray<JavaScriptObject> arguments) {
if (iface == null) {