Mercurial > hg > ng2-query-ismi
annotate app/query-select.component.ts @ 7:6cd6c09032aa
object type query with results!
author | Robert Casties <casties@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 15 Jan 2016 20:00:47 +0100 |
parents | 9f5473536a98 |
children | fa646ee46c19 |
rev | line source |
---|---|
7
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
1 import {Component, Output, EventEmitter, OnInit} from 'angular2/core'; |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
2 |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
3 import {QueryService} from './query.service'; |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
4 import {QueryMode} from './query-mode'; |
5
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
5 import {QueryStep} from './query-step'; |
7
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
6 import {QueryState} from './query-state'; |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
7 |
0 | 8 |
9 @Component({ | |
10 selector: 'query-select', | |
11 template: ` | |
12 <p>Selected option: {{selectedQuery}}</p> | |
3
c741a00d38de
first list of object types :-)
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1
diff
changeset
|
13 <select (change)="onSelectMode($event)"> |
7
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
14 <option></option> |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
15 <option *ngFor="#mode of queryModes" [value]="mode.id"> |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
16 {{mode.label}} |
0 | 17 </option> |
18 </select> | |
5
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
19 <select (change)="onSelectOption($event)"> |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
20 <option *ngFor="#option of query2Options" [value]="option"> |
0 | 21 {{option}} |
22 </option> | |
23 </select> | |
5
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
24 ` |
7
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
25 //outputs: ['queryChanged'] |
0 | 26 }) |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
27 |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
28 export class QuerySelectComponent implements OnInit { |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
29 public queryModes; |
5
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
30 public selectedMode; |
0 | 31 public selectedQuery = 'unknown'; |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
32 public query2Options; |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
33 |
7
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
34 @Output('queryChanged') queryChanged = new EventEmitter<QueryState>(); |
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
35 |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
36 constructor(private _queryService: QueryService) {} |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
37 |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
38 ngOnInit() { |
4 | 39 this.setup(); |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
40 } |
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
41 |
4 | 42 setup() { |
5
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
43 this._queryService.setupIsmiObjectTypes(); |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
44 this.queryModes = this._queryService.getQueryModes(); |
7
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
45 // select first mode (too early?) |
5
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
46 this.selectedMode = this.queryModes[0]; |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
47 this.query2Options = this._queryService.getQueryOptions(this.selectedMode); |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
48 } |
0 | 49 |
3
c741a00d38de
first list of object types :-)
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
1
diff
changeset
|
50 onSelectMode(event: any) { |
1
59b7c3afcc6b
first interface and http request.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
0
diff
changeset
|
51 var selected = event.target.value; |
5
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
52 this.selectedMode = this.queryModes.find(mode => mode.id === selected); |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
53 this.query2Options = this._queryService.getQueryOptions(this.selectedMode); |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
54 } |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
55 |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
56 onSelectOption(event: any) { |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
57 var selected = event.target.value; |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
58 this.selectedQuery = selected; |
b06a5d61afed
new query state stuff.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
4
diff
changeset
|
59 console.debug("selected option:", selected); |
7
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
60 var query: QueryStep = {'mode': this.selectedMode, 'objectType': selected}; |
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
61 this._queryService.setQueryStep(0, query); |
6cd6c09032aa
object type query with results!
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
62 this.queryChanged.emit(this._queryService.getState()); |
0 | 63 } |
64 } |