road-width.component.ts 3.92 KB
import {Component, ViewEncapsulation} from '@angular/core';
import {GridOptions} from 'ag-grid/main';
import { TdLoadingService } from '@covalent/core';

import { StatementBase } from '../../../models/statement.base';


import { RoadWidth } from '../../../models/road-width';
import { EditorComponent } from '../../../helpers/editor.component';
import { RendererComponent } from '../../../helpers/renderer.component';
import { RoadWidthService } from '../../../services/road-width.service';
import { RoadWidthCreateService } from '../../../services/road-width-create.service';
import { RegionSelectList } from '../../../models/region-select-list';
import { RoadSelectList } from '../../../models/road-select-list';




import { routerTransition } from '../../../animations/router.animation';

@Component({
    selector: 'road-width',
    templateUrl: 'road-width.component.html',
    styleUrls: ['road-width.scss'],
    encapsulation: ViewEncapsulation.None,
})
export class RoadWidthComponent extends StatementBase {

    public regions: RegionSelectList[];

    public roads: RoadSelectList[];

    constructor(
        protected service: RoadWidthService,
        protected dataService: RoadWidthCreateService,
        protected loadingService: TdLoadingService,
    ) {
        super();
    }

  protected createColumnDefs(): any[] {
    return [
      {
        headerName: '#',
        width: 30,
        checkboxSelection: true,
        suppressSorting: true,
        suppressMenu: true,
        pinned: true,
      },
      {
        headerName: 'ID',
        field: 'id',
      },
      {
        headerName: 'Назва дороги',
        field: 'roadId',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.roads,
          valueCol: 'roadId',
          labelCol: 'name',
        },
      },
      {
        headerName: 'Область',
        field: 'regionId',
        editable: true,
        cellEditorFramework: EditorComponent,
        cellRendererFramework: RendererComponent,
        cellEditorParams: {
          data: this.regions,
          valueCol: 'regionId',
          labelCol: 'name',
        },
      },
      {
        headerName: 'Місцезнаходження, км+ початок',
        field: 'begin',
        editable: true,
      },
      {
        headerName: 'Місцезнаходженя, км+ кінець',
        field: 'end',
        editable: true,
      },
      {
        headerName: 'Ширина, узбіччя зліва',
        field: 'widthRoadsideLeft',
        editable: true,
      },
      {
        headerName: 'Ширина, проїзна зворотнього напрямку',
        field: 'widthReverseRoad',
        editable: true,
      },
      {
        headerName: 'Ширина, розподільча смуга',
        field: 'widthStrip',
        editable: true,
      },
      {
        headerName: 'Ширина, проїзна прямого напрямку',
        field: 'widthRoadwayForward',
        editable: true,
      },
      {
        headerName: 'Ширина, узбіччя справа',
        field: 'widthRoadsideRight',
        editable: true,
      },
      {
        headerName: 'Кількість смуг руху зліва',
        field: 'countLaneLeft',
        editable: true,
      },
      {
        headerName: 'Кількість смуг руху справа',
        field: 'countLaneRight',
        editable: true,
      },
    ];
  }

  protected initFunction(): void {
    this.dataService.getModels().then((models: any) => {
            this.regions = models.regionSelectListDsM as RegionSelectList[];
            this.roads = models.roadSelectListDsM as RoadSelectList[];
      }).then(() => {
            this.bootstrapGrid();
      });
  }

  // tslint:disable-next-line:member-ordering
  public CreateModel(): Object {
    return new RoadWidth();
  }
}