-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathOrgEventArgsFactory.js
More file actions
40 lines (33 loc) · 1.3 KB
/
OrgEventArgsFactory.js
File metadata and controls
40 lines (33 loc) · 1.3 KB
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
import OrgEventArgs from './events/OrgEventArgs';
import Rect from './graphics/structs/Rect';
import { getElementOffset } from './graphics/dom';
export default function EventArgsFactory(data, oldTreeItemId, newTreeItemId, name) {
var result = new OrgEventArgs(),
combinedContextsTask = data.tasks.getTask("CombinedContextsTask"),
alignDiagramTask = data.tasks.getTask("AlignDiagramTask"),
oldItemConfig = combinedContextsTask.getConfig(oldTreeItemId),
newItemConfig = combinedContextsTask.getConfig(newTreeItemId),
itemPosition,
actualPosition,
offset,
panelOffset;
if (oldItemConfig && oldItemConfig.id != null) {
result.oldContext = oldItemConfig;
}
if (newItemConfig && newItemConfig.id != null) {
result.context = newItemConfig;
if (newItemConfig.parent !== null) {
result.parentItem = combinedContextsTask.getConfig(newItemConfig.parent);
}
panelOffset = getElementOffset(data.layout.mousePanel);
offset = getElementOffset(data.layout.element);
itemPosition = alignDiagramTask.getItemPosition(newTreeItemId),
result.position = new Rect(itemPosition.actualPosition)
.translate(panelOffset.left, panelOffset.top)
.translate(-offset.left, -offset.top);
}
if (name != null) {
result.name = name;
}
return result;
};