| /******************************************************************************** |
| * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation |
| * |
| * See the NOTICE file(s) distributed with this work for additional |
| * information regarding copyright ownership. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| ********************************************************************************/ |
| import { Component, OnInit } from '@angular/core'; |
| import { ActivatedRoute } from '@angular/router'; |
| |
| import { TranslateService } from '@ngx-translate/core'; |
| |
| import { Node} from '@navigator/node'; |
| import { NavigatorService } from '@navigator/navigator.service'; |
| import { LocalizationService } from '@localization/localization.service'; |
| import { MDMNotificationService } from '@core/mdm-notification.service'; |
| import { TRANSLATE } from '@core/mdm-core.module'; |
| |
| import { ContextService } from '../../services/context.service'; |
| import { Sensor, Context } from '../../model/details.model'; |
| |
| @Component({ |
| selector: 'sensors', |
| templateUrl: 'sensor.component.html', |
| }) |
| export class SensorComponent implements OnInit { |
| |
| readonly StatusLoading = TRANSLATE('details.sensor.status-loading'); |
| readonly StatusNoNodes = TRANSLATE('details.sensor.status-no-nodes-available'); |
| readonly StatusNoDescriptiveData = TRANSLATE('details.sensor.status-no-descriptive-data-available'); |
| |
| selectedNode: Node; |
| context: String; |
| |
| _diff = false; |
| contexts: Context[]; |
| sensors: Sensor[]; |
| errorMessage: string; |
| status: string; |
| |
| uut = 'Prüfling'; |
| ts = 'Testablauf'; |
| te = 'Messgerät'; |
| s = 'Sensoren'; |
| |
| constructor(private route: ActivatedRoute, |
| private localService: LocalizationService, |
| private _contextService: ContextService, |
| private navigatorService: NavigatorService, |
| private notificationService: MDMNotificationService, |
| private translateService: TranslateService) {} |
| |
| ngOnInit() { |
| this.status = this.StatusLoading; |
| this.route.params |
| .subscribe( |
| params => this.setContext(params['context']), |
| error => this.notificationService.notifyError(this.translateService.instant('details.sensor.err-cannot-load-scope'), error) |
| ); |
| |
| this.navigatorService.selectedNodeChanged |
| .subscribe(node => this.loadContext(node), |
| error => this.notificationService.notifyError(this.translateService.instant('details.sensor.err-cannot-load-data'), error) |
| ); |
| } |
| |
| setContext(context: string) { |
| this.context = context; |
| this.loadContext(this.navigatorService.getSelectedNode()); |
| } |
| |
| loadContext(node: Node) { |
| if (node != undefined) { |
| this.selectedNode = node; |
| this.contexts = undefined; |
| if (node.name != undefined && (node.type.toLowerCase() === 'measurement' || node.type.toLowerCase() === 'teststep')) { |
| this.status = this.StatusLoading; |
| this._contextService.getSensors(node).subscribe( |
| sensors => this.sensors = <Sensor[]> sensors, |
| error => this.notificationService.notifyError( |
| this.translateService.instant('details.sensor.err-cannot-load-descriptive-data'), error) |
| ); |
| } else { |
| this.status = this.StatusNoDescriptiveData; |
| } |
| } else { |
| this.status = this.StatusNoNodes; |
| } |
| } |
| |
| diffToggle() { |
| this._diff = !this._diff; |
| } |
| |
| diff(attr1: string, attr2: string) { |
| if (attr1 !== attr2 && this._diff) { |
| return 'danger'; |
| } |
| } |
| } |