1
- import { AfterViewInit , Component , Input } from '@angular/core' ;
1
+ import { AfterViewInit , Component , Inject , Input , Optional } from '@angular/core' ;
2
2
import {
3
3
PetriflowArc ,
4
4
PetriflowCanvasConfigurationService ,
@@ -29,29 +29,34 @@ import {PetriNetImport} from '../../resources/interface/petri-net-import';
29
29
import { LoggerService } from '../../logger/services/logger.service' ;
30
30
import { SnackBarService } from '../../snack-bar/services/snack-bar.service' ;
31
31
import { 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' ;
32
34
33
35
@Component ( {
34
36
selector : 'ncc-abstract-case-ref-field' ,
35
37
template : ''
36
38
} )
37
- export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
39
+ export abstract class AbstractCaseRefFieldComponent extends AbstractDataFieldComponent implements AfterViewInit {
38
40
39
41
@Input ( ) public dataField : CaseRefField ;
40
42
41
43
constructor ( protected _petriflowCanvasService : PetriflowCanvasService , protected _petriflowFactoryService : PetriflowCanvasFactoryService ,
42
44
protected _petriflowConfigService : PetriflowCanvasConfigurationService , protected _caseResourceService : CaseResourceService ,
43
45
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 ) ;
45
48
}
46
49
47
50
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
+ } ) ;
51
59
}
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' ) ) ;
55
60
} ) ;
56
61
}
57
62
@@ -66,16 +71,16 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
66
71
trans . push ( t ) ;
67
72
minX = Math . min ( minX , value . position . x ) ;
68
73
minY = Math . min ( minY , value . position . y ) ;
69
- this . setPlaceActions ( t . canvasElement . element ) ;
74
+ this . setEmptyEvents ( t . canvasElement . element ) ;
70
75
} )
71
76
net . places . forEach ( ( value ) => {
72
77
const p = this . createPlace ( value )
73
78
places . push ( p ) ;
74
79
minX = Math . min ( minX , value . position . x ) ;
75
80
minY = Math . min ( minY , value . position . y ) ;
76
- this . setPlaceActions ( p . canvasElement . element ) ;
81
+ this . setEmptyEvents ( p . canvasElement . element ) ;
77
82
p . canvasElement . markingTokens . forEach ( markingToken => {
78
- this . setPlaceActions ( markingToken ) ;
83
+ this . setEmptyEvents ( markingToken ) ;
79
84
} ) ;
80
85
} )
81
86
net . arcs . forEach ( ( arc ) => {
@@ -85,7 +90,7 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
85
90
minX = Math . min ( minX , value . x ) ;
86
91
minY = Math . min ( minY , value . y ) ;
87
92
} ) ;
88
- this . setPlaceActions ( a . element . arcLine ) ;
93
+ this . setEmptyEvents ( a . element . arcLine ) ;
89
94
} ) ;
90
95
trans . forEach ( value => {
91
96
if ( net . assignedTasks . includes ( value . canvasElement . label . textContent ) ) {
@@ -242,7 +247,7 @@ export abstract class AbstractCaseRefFieldComponent implements AfterViewInit {
242
247
this . dataField . layout . rows * CaseRefField . FIELD_HEIGHT : CaseRefField . FIELD_HEIGHT ;
243
248
}
244
249
245
- protected setPlaceActions ( svgElement : SVGElement ) {
250
+ protected setEmptyEvents ( svgElement : SVGElement ) {
246
251
svgElement . onmouseenter = ( ) => { } ;
247
252
svgElement . onmouseleave = ( ) => { } ;
248
253
}
0 commit comments