import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';

import 'rxjs/add/operator/switchMap';

import {SourceService} from '../source.service';

@Component({
  selector: 'app-source-viewer',
  providers: [ SourceService ],
  template: `<textarea appEditor [sourceText]="source" [sourceLine]="line">{{source}}</textarea>`,
})
export class SourceViewComponent implements OnInit {
  source: string;
  line: number;

  constructor(private sourceService: SourceService,
      private route: ActivatedRoute) { }

  ngOnInit() {
    this.route.params.switchMap((params: Params) => {
      this.line = +params['line'];
      return this.sourceService.getSource(params['filename']);
    })
    .subscribe(source => {
      this.source = source;
    });
  }

}