blob: afefc8c20157f48f11e5e8ad7f9d24e868d968c3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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, "*");
}
|