diff options
author | Michael Lando <ml636r@att.com> | 2018-03-04 14:53:33 +0200 |
---|---|---|
committer | Michael Lando <ml636r@att.com> | 2018-03-07 13:19:05 +0000 |
commit | a5445100050e49e83f73424198d73cd72d672a4d (patch) | |
tree | cacf4df817df31be23e4e790d1dda857bdae061e /catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-zone-utils.ts | |
parent | 51157f92c21976cba4914c378aaa3cba49826931 (diff) |
Sync Integ to Master
Change-Id: I71e3acc26fa612127756ac04073a522b9cc6cd74
Issue-ID: SDC-977
Signed-off-by: Gitelman, Tal (tg851x) <tg851x@intl.att.com>
Diffstat (limited to 'catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-zone-utils.ts')
-rw-r--r-- | catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-zone-utils.ts | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-zone-utils.ts b/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-zone-utils.ts new file mode 100644 index 0000000000..28f2dc85d2 --- /dev/null +++ b/catalog-ui/src/app/directives/graphs-v2/composition-graph/utils/composition-graph-zone-utils.ts @@ -0,0 +1,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' +];
\ No newline at end of file |