104 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import {bootstrap, ElementRef, ComponentRef} from 'angular2/angular2';
 | |
| import {MdDialog, MdDialogRef, MdDialogConfig} from 'angular2_material/src/components/dialog/dialog'
 | |
| import {UrlResolver} from 'angular2/src/services/url_resolver';
 | |
| import {commonDemoSetup, DemoUrlResolver} from '../demo_common';
 | |
| import {bind, Injector} from 'angular2/di';
 | |
| import {isPresent} from 'angular2/src/facade/lang';
 | |
| 
 | |
| // TODO(radokirov): Once the application is transpiled by TS instead of Traceur,
 | |
| // add those imports back into 'angular2/angular2';
 | |
| import {Component, Directive} from 'angular2/src/core/annotations_impl/annotations';
 | |
| import {View} from 'angular2/src/core/annotations_impl/view';
 | |
| 
 | |
| 
 | |
| @Component({
 | |
|   selector: 'demo-app',
 | |
|   injectables: [MdDialog]
 | |
| })
 | |
| @View({
 | |
|   templateUrl: './demo_app.html',
 | |
|   directives: []
 | |
| })
 | |
| class DemoApp {
 | |
|   dialog: MdDialog;
 | |
|   elementRef: ElementRef;
 | |
|   dialogRef: MdDialogRef;
 | |
|   dialogConfig: MdDialogConfig;
 | |
|   injector: Injector;
 | |
|   lastResult: string;
 | |
| 
 | |
|   constructor(mdDialog: MdDialog, elementRef: ElementRef, injector: Injector) {
 | |
|     this.dialog = mdDialog;
 | |
|     this.elementRef = elementRef;
 | |
|     this.dialogConfig = new MdDialogConfig();
 | |
|     this.injector = injector;
 | |
| 
 | |
|     this.dialogConfig.width = '60%';
 | |
|     this.dialogConfig.height = '60%';
 | |
|     this.lastResult = '';
 | |
|   }
 | |
| 
 | |
|   open() {
 | |
|     if (isPresent(this.dialogRef)) {
 | |
|       return;
 | |
|     }
 | |
| 
 | |
|     this.dialog.open(SimpleDialogComponent,
 | |
|         this.elementRef, this.injector, this.dialogConfig).then(ref => {
 | |
|       this.dialogRef = ref;
 | |
|       ref.instance.numCoconuts = 777;
 | |
| 
 | |
|       ref.whenClosed.then(result => {
 | |
|         this.dialogRef = null;
 | |
|         this.lastResult = result;
 | |
|       });
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   close() {
 | |
|     this.dialogRef.close();
 | |
|   }
 | |
| }
 | |
| 
 | |
| @Component({
 | |
|   selector: 'simple-dialog',
 | |
|   properties: {'numCoconuts': 'numCoconuts'}
 | |
| })
 | |
| @View({
 | |
|   template: `
 | |
|     <h2>This is the dialog content</h2>
 | |
|     <p>There are {{numCoconuts}} coconuts.</p>
 | |
|     <p>Return: <input (input)="updateValue($event)"></p>
 | |
|     <button type="button" (click)="done()">Done</button>
 | |
|   `
 | |
| })
 | |
| class SimpleDialogComponent {
 | |
|   numCoconuts: number;
 | |
|   dialogRef: MdDialogRef;
 | |
|   toReturn: string;
 | |
| 
 | |
|   constructor(dialogRef: MdDialogRef) {
 | |
|     this.numCoconuts = 0;
 | |
|     this.dialogRef = dialogRef;
 | |
|     this.toReturn = '';
 | |
|   }
 | |
| 
 | |
|   updateValue(event) {
 | |
|     this.toReturn = event.target.value;
 | |
|   }
 | |
| 
 | |
|   done() {
 | |
|     this.dialogRef.close(this.toReturn);
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| export function main() {
 | |
|   commonDemoSetup();
 | |
|   bootstrap(DemoApp, [
 | |
|     bind(UrlResolver).toValue(new DemoUrlResolver())
 | |
|   ]);
 | |
| }
 | |
| 
 | |
| 
 |