aboutsummaryrefslogtreecommitdiffstats
path: root/winery/org.eclipse.winery.repository/src/main/webapp/js/boundaryDefinitionsXSelection.js
diff options
context:
space:
mode:
authorhuangjian <huang.jian12@zte.com.cn>2016-08-31 16:47:33 +0800
committerhuangjian <huang.jian12@zte.com.cn>2016-08-31 16:47:33 +0800
commitfa49e78cc199526a9e33b59c5194f8e3bf0f0952 (patch)
tree3478e867a8f304266dbceca6e992cceca410ede4 /winery/org.eclipse.winery.repository/src/main/webapp/js/boundaryDefinitionsXSelection.js
parent159d40f0011559c8f82338b29dca1bffd700f2c8 (diff)
Add winery source code
Change-Id: I1c5088121d79b71098c3cba1996c6f784737532e Issue-id: TOSCA-49 Signed-off-by: huangjian <huang.jian12@zte.com.cn>
Diffstat (limited to 'winery/org.eclipse.winery.repository/src/main/webapp/js/boundaryDefinitionsXSelection.js')
-rw-r--r--winery/org.eclipse.winery.repository/src/main/webapp/js/boundaryDefinitionsXSelection.js96
1 files changed, 96 insertions, 0 deletions
diff --git a/winery/org.eclipse.winery.repository/src/main/webapp/js/boundaryDefinitionsXSelection.js b/winery/org.eclipse.winery.repository/src/main/webapp/js/boundaryDefinitionsXSelection.js
new file mode 100644
index 0000000..afefc8c
--- /dev/null
+++ b/winery/org.eclipse.winery.repository/src/main/webapp/js/boundaryDefinitionsXSelection.js
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2014 University of Stuttgart.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ * Oliver Kopp - initial API and implementation
+ * Tobias Binz - communication with the parent window
+ *******************************************************************************/
+
+ /**
+ * Called from the renderer as soon as the whole topology is loaded
+ */
+ function wineryViewExternalScriptOnLoad() {
+
+ function getIdOfNodeTemplateShape(element) {
+ var nodeTemplate = element.closest("div.NodeTemplateShape");
+ var id = nodeTemplate.children("div.headerContainer").children("div.id").text();
+ return id;
+ }
+
+ jsPlumb.bind("ready", function() {
+ jsPlumb.bind("click", function(conn, originalEvent) {
+ var id = winery.connections[conn.id].id;
+ var message = {
+ targetRelationshipTemplateRef: id
+ }
+ sendMessage(message);
+ });
+ });
+
+
+ $("div.NodeTemplateShape").on("click", function(e) {
+ var id = getIdOfNodeTemplateShape($(e.target));
+ // send id and empty property as no property has been clicked
+ var message = {
+ targetObjectRef: id,
+ targetPropertyRef: ""
+ };
+ sendMessage(message);
+
+ return false;
+ });
+
+ $("tr.KVProperty").on("click", function(e) {
+ var trKVProperty = $(e.target).closest("tr.KVProperty");
+ var key = trKVProperty.children("td").children("span.KVPropertyKey").text();
+
+ var content = trKVProperty.closest("div.content");
+ var elementName = content.children("span.elementName").text();
+
+ // form namespace-unaware XPath
+ var xpath = "/*[local-name()='" + elementName + "']/*[local-name()='" + key + "']";
+
+ var message = {
+ targetPropertyRef: xpath,
+ targetObjectRef: getIdOfNodeTemplateShape(trKVProperty)
+ };
+ sendMessage(message);
+
+ // do not trigger click on NodeTemplateShape -> we included both values in the message
+ return false;
+ });
+
+ $("div.requirements").on("click", function(e) {
+ var reqorcap = $(e.target).closest("div.requirements");
+ var id = reqorcap.children("div.id").text();
+
+ var message = {
+ reqRef: id
+ };
+ sendMessage(message);
+
+ return false;
+ });
+
+ $("div.capabilities").on("click", function(e) {
+ var reqorcap = $(e.target).closest("div.capabilities");
+ var id = reqorcap.children("div.id").text();
+
+ var message = {
+ capRef: id
+ };
+ sendMessage(message);
+
+ return false;
+ });
+
+ }
+
+function sendMessage(message) {
+ window.parent.postMessage(message, "*");
+}