blob: 28f2dc85d23041b5b061cfb9b626796bbfc1efdf (
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
|
import { PolicyInstance } from "app/models/graph/zones/policy-instance";
import { ZoneConfig, ZoneInstanceConfig } from "app/models/graph/zones/zone-child";
import { DynamicComponentService } from "app/ng2/services/dynamic-component.service";
import { PaletteAnimationComponent } from "app/ng2/components/ui/palette-animation/palette-animation.component";
import { Point } from "../../../../models";
export class CompositionGraphZoneUtils {
constructor(private dynamicComponentService: DynamicComponentService) {}
public createCompositionZones(){
let zones = {
'policy': new ZoneConfig('Policies', 'P', 'policy', false),
'group': new ZoneConfig('Groups', 'G', 'group', false)
};
return zones;
}
public initPolicyInstances(policyZone:ZoneConfig, policies:Array<PolicyInstance>) {
if(policies && policies.length){
policyZone.showZone = true;
}
_.forEach(policies, (policy:PolicyInstance) => {
policyZone.instances.push(new ZoneInstanceConfig(policy));
});
}
public addInstanceToZone(zone:ZoneConfig, instance:PolicyInstance){
zone.instances.push(new ZoneInstanceConfig(instance));
};
private findZoneCoordinates(zoneType):Point{
let point:Point = new Point(0,0);
let zone = angular.element(document.querySelector('.' + zoneType + '-zone'));
let wrapperZone = zone.offsetParent();
point.x = zone.prop('offsetLeft') + wrapperZone.prop('offsetLeft');
point.y = zone.prop('offsetTop') + wrapperZone.prop('offsetTop');
return point;
}
public showAnimationToZone = (startPoint:Point, zoneType:string) => {
let paletteToZoneAnimation = this.dynamicComponentService.createDynamicComponent(PaletteAnimationComponent);
paletteToZoneAnimation.instance.from = startPoint;
paletteToZoneAnimation.instance.to = this.findZoneCoordinates(zoneType);
paletteToZoneAnimation.instance.iconName = zoneType;
paletteToZoneAnimation.instance.runAnimation();
}
}
CompositionGraphZoneUtils.$inject = [
'DynamicComponentService'
];
|