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
|
import {Component, OnInit} from 'angular2/core';
import {ROUTER_DIRECTIVES, RouteParams} from 'angular2/router';
import {IPlan} from '../../interfaces/iplan';
import {HighlightType} from '../../enums';
import {PlanNode} from '../plan-node/plan-node';
import {PlanService} from '../../services/plan-service';
import {SyntaxHighlightService} from '../../services/syntax-highlight-service';
import {DurationPipe, DurationUnitPipe} from '../../pipes';
@Component({
selector: 'plan-view',
templateUrl: './components/plan-view/plan-view.html',
directives: [ROUTER_DIRECTIVES, PlanNode],
providers: [PlanService, SyntaxHighlightService],
pipes: [DurationPipe, DurationUnitPipe]
})
export class PlanView {
id: string;
plan: IPlan;
rootContainer: any;
hideMenu: boolean = true;
viewOptions: any = {
showPlanStats: true,
showHighlightBar: true,
showPlannerEstimate: false,
showTags: true,
highlightType: HighlightType.NONE
};
showPlannerEstimate: boolean = true;
showMenu: boolean = false;
highlightTypes = HighlightType; // exposing the enum to the view
constructor(private _planService: PlanService, routeParams: RouteParams) {
this.id = routeParams.get('id');
}
getPlan() {
if (!this.id) {
return;
}
this.plan = this._planService.getPlan(this.id);
this.rootContainer = this.plan.content;
this.plan.planStats = {
executionTime: this.rootContainer['Execution Time'] || this.rootContainer['Total Runtime'],
planningTime: this.rootContainer['Planning Time'] || 0,
maxRows: this.rootContainer[this._planService.MAXIMUM_ROWS_PROP] || 0,
maxCost: this.rootContainer[this._planService.MAXIMUM_COSTS_PROP] || 0,
maxDuration: this.rootContainer[this._planService.MAXIMUM_DURATION_PROP] || 0
};
}
ngOnInit() {
this.getPlan();
}
toggleHighlight(type: HighlightType) {
this.viewOptions.highlightType = type;
}
analyzePlan() {
this._planService.analyzePlan(this.plan);
}
}
|