1- import { AfterViewInit , Component , Input } from '@angular/core' ;
1+ import { AfterViewInit , Component , Inject , Input , Optional } from '@angular/core' ;
22import {
33 PetriflowArc ,
44 PetriflowCanvasConfigurationService ,
@@ -29,29 +29,34 @@ import {PetriNetImport} from '../../resources/interface/petri-net-import';
2929import { LoggerService } from '../../logger/services/logger.service' ;
3030import { SnackBarService } from '../../snack-bar/services/snack-bar.service' ;
3131import { TranslateService } from '@ngx-translate/core' ;
32+ import { AbstractDataFieldComponent } from '../models/abstract-data-field-component' ;
33+ import { NAE_INFORM_ABOUT_INVALID_DATA } from '../models/invalid-data-policy-token' ;
3234
3335@Component ( {
3436 selector : 'ncc-abstract-case-ref-field' ,
3537 template : ''
3638} )
37- export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
39+ export abstract class AbstractCaseRefFieldComponent extends AbstractDataFieldComponent implements AfterViewInit {
3840
3941 @Input ( ) public dataField : CaseRefField ;
4042
4143 constructor ( protected _petriflowCanvasService : PetriflowCanvasService , protected _petriflowFactoryService : PetriflowCanvasFactoryService ,
4244 protected _petriflowConfigService : PetriflowCanvasConfigurationService , protected _caseResourceService : CaseResourceService ,
4345 protected _petriNetResourceService : PetriNetResourceService , protected _log : LoggerService , protected _snackBar : SnackBarService ,
44- protected _translate : TranslateService ) {
46+ protected _translate : TranslateService , @Optional ( ) @Inject ( NAE_INFORM_ABOUT_INVALID_DATA ) informAboutInvalidData : boolean | null ) {
47+ super ( informAboutInvalidData ) ;
4548 }
4649
4750 ngAfterViewInit ( ) : void {
48- this . _petriNetResourceService . getNetByCaseId ( this . dataField . value ) . subscribe ( net => {
49- if ( net ) {
50- this . createNet ( net ) ;
51+ this . formControl . valueChanges . subscribe ( value => {
52+ if ( value ?. length > 0 ) {
53+ this . _petriNetResourceService . getNetByCaseId ( value [ 0 ] ) . subscribe ( net => {
54+ this . createNet ( net ) ;
55+ } , error => {
56+ this . _log . error ( 'Getting net by Case ID failed in field [' + this . dataField . stringId + ']' , error ) ;
57+ this . _snackBar . openErrorSnackBar ( this . _translate . instant ( 'dataField.snackBar.caseNetGetFailed' ) ) ;
58+ } ) ;
5159 }
52- } , error => {
53- this . _log . error ( 'Getting net by Case ID failed in field [' + this . dataField . stringId + ']' , error ) ;
54- this . _snackBar . openErrorSnackBar ( this . _translate . instant ( 'dataField.snackBar.caseNetGetFailed' ) ) ;
5560 } ) ;
5661 }
5762
@@ -66,16 +71,16 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
6671 trans . push ( t ) ;
6772 minX = Math . min ( minX , value . position . x ) ;
6873 minY = Math . min ( minY , value . position . y ) ;
69- this . setPlaceActions ( t . canvasElement . element ) ;
74+ this . setEmptyEvents ( t . canvasElement . element ) ;
7075 } )
7176 net . places . forEach ( ( value ) => {
7277 const p = this . createPlace ( value )
7378 places . push ( p ) ;
7479 minX = Math . min ( minX , value . position . x ) ;
7580 minY = Math . min ( minY , value . position . y ) ;
76- this . setPlaceActions ( p . canvasElement . element ) ;
81+ this . setEmptyEvents ( p . canvasElement . element ) ;
7782 p . canvasElement . markingTokens . forEach ( markingToken => {
78- this . setPlaceActions ( markingToken ) ;
83+ this . setEmptyEvents ( markingToken ) ;
7984 } ) ;
8085 } )
8186 net . arcs . forEach ( ( arc ) => {
@@ -85,7 +90,7 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
8590 minX = Math . min ( minX , value . x ) ;
8691 minY = Math . min ( minY , value . y ) ;
8792 } ) ;
88- this . setPlaceActions ( a . element . arcLine ) ;
93+ this . setEmptyEvents ( a . element . arcLine ) ;
8994 } ) ;
9095 trans . forEach ( value => {
9196 if ( net . assignedTasks . includes ( value . canvasElement . label . textContent ) ) {
@@ -242,7 +247,7 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
242247 this . dataField . layout . rows * CaseRefField . FIELD_HEIGHT : CaseRefField . FIELD_HEIGHT ;
243248 }
244249
245- protected setPlaceActions ( svgElement : SVGElement ) {
250+ protected setEmptyEvents ( svgElement : SVGElement ) {
246251 svgElement . onmouseenter = ( ) => { } ;
247252 svgElement . onmouseleave = ( ) => { } ;
248253 }
0 commit comments