@@ -1528,7 +1528,9 @@ public void DisplayOrEditAasEntityAas(
1528
1528
} ;
1529
1529
1530
1530
this . AddKeyReference (
1531
- stack , "derivedFrom" , aas . DerivedFrom , repo ,
1531
+ stack , "derivedFrom" ,
1532
+ aas . DerivedFrom , ( ) => aas . DerivedFrom = null ,
1533
+ repo ,
1532
1534
packages , PackageCentral . PackageCentral . Selector . MainAuxFileRepo , "AssetAdministrationShell" ,
1533
1535
showRefSemId : false ,
1534
1536
jumpLambda : lambda , noEditJumpLambda : lambda , relatedReferable : aas ,
@@ -1599,7 +1601,10 @@ public void DisplayOrEditAasEntityAas(
1599
1601
public void DisplayOrEditAasEntitySubmodelOrRef (
1600
1602
PackageCentral . PackageCentral packages , Aas . Environment env ,
1601
1603
Aas . IAssetAdministrationShell aas ,
1602
- Aas . IReference smref , Aas . ISubmodel submodel , bool editMode ,
1604
+ Aas . IReference smref ,
1605
+ Action setSmRefNull ,
1606
+ Aas . ISubmodel submodel ,
1607
+ bool editMode ,
1603
1608
AnyUiStackPanel stack , bool hintMode = false , bool checkSmt = false ,
1604
1609
AasxMenu superMenu = null )
1605
1610
{
@@ -1615,7 +1620,9 @@ public void DisplayOrEditAasEntitySubmodelOrRef(
1615
1620
} ;
1616
1621
1617
1622
this . AddKeyListKeys (
1618
- stack , "submodelRef" , smref . Keys , repo ,
1623
+ stack , "submodelRef" ,
1624
+ smref . Keys , setSmRefNull ,
1625
+ repo ,
1619
1626
packages , PackageCentral . PackageCentral . Selector . Main , "Reference Submodel " ,
1620
1627
takeOverLambdaAction : new AnyUiLambdaActionRedrawAllElements ( smref ) ,
1621
1628
jumpLambda : lambda , relatedReferable : aas ) ;
@@ -3666,7 +3673,9 @@ public void DisplayOrEditAasEntitySubmodelElement(
3666
3673
this . AddGroup ( stack , "ValueId:" , this . levelColors . SubSection ) ;
3667
3674
3668
3675
this . AddKeyReference (
3669
- stack , "valueId" , p . ValueId , repo ,
3676
+ stack , "valueId" ,
3677
+ p . ValueId , ( ) => p . ValueId = null ,
3678
+ repo ,
3670
3679
packages , PackageCentral . PackageCentral . Selector . MainAuxFileRepo ,
3671
3680
addExistingEntities : "All" , // no restriction
3672
3681
relatedReferable : p ,
@@ -3707,7 +3716,9 @@ public void DisplayOrEditAasEntitySubmodelElement(
3707
3716
stack , repo , mlp . Value , "value:" , "Create data element!" ,
3708
3717
v =>
3709
3718
{
3710
- mlp . Value = new List < Aas . ILangStringTextType > ( ) ;
3719
+ mlp . Value = ExtendILangStringTextType . CreateFrom (
3720
+ lang : AdminShellUtil . GetDefaultLngIso639 ( ) ,
3721
+ text : Options . Curr . DefaultEmptyLangText ) ;
3711
3722
this . AddDiaryEntry ( mlp , new DiaryEntryUpdateValue ( ) ) ;
3712
3723
return new AnyUiLambdaActionRedrawEntity ( ) ;
3713
3724
} ) )
@@ -3744,18 +3755,30 @@ public void DisplayOrEditAasEntitySubmodelElement(
3744
3755
3745
3756
// ValueId
3746
3757
3758
+ this . AddHintBubble (
3759
+ stack , hintMode ,
3760
+ new [ ] {
3761
+ new HintCheck (
3762
+ ( ) => mlp . ValueId != null && mlp . ValueId . IsValid ( ) != true ,
3763
+ "According to the specification, an existing list of elements shall contain " +
3764
+ "at least one element and for each element all mandatory fields shall be " +
3765
+ "not empty." )
3766
+ } ) ;
3767
+
3747
3768
if ( this . SafeguardAccess (
3748
3769
stack , repo , mlp . ValueId , "valueId:" , "Create data element!" ,
3749
3770
v =>
3750
3771
{
3751
- mlp . ValueId = new Aas . Reference ( Aas . ReferenceTypes . ExternalReference , new List < Aas . IKey > ( ) ) ;
3772
+ mlp . ValueId = Options . Curr . GetDefaultEmptyReference ( ) ;
3752
3773
this . AddDiaryEntry ( mlp , new DiaryEntryUpdateValue ( ) ) ;
3753
3774
return new AnyUiLambdaActionRedrawEntity ( ) ;
3754
3775
} ) )
3755
3776
{
3756
3777
this . AddGroup ( stack , "ValueID" , this . levelColors . SubSection ) ;
3757
3778
this . AddKeyListKeys (
3758
- stack , "valueId" , mlp . ValueId . Keys , repo ,
3779
+ stack , "valueId" ,
3780
+ mlp . ValueId . Keys , ( ) => mlp . ValueId = null ,
3781
+ repo ,
3759
3782
packages , PackageCentral . PackageCentral . Selector . MainAuxFileRepo ,
3760
3783
Aas . Stringification . ToString ( Aas . KeyTypes . GlobalReference ) ,
3761
3784
relatedReferable : mlp ,
@@ -4113,7 +4136,9 @@ public void DisplayOrEditAasEntitySubmodelElement(
4113
4136
return new AnyUiLambdaActionNavigateTo (
4114
4137
new Aas . Reference ( Aas . ReferenceTypes . ModelReference , new List < Aas . IKey > ( kl ) ) , translateAssetToAAS : true ) ;
4115
4138
} ;
4116
- this . AddKeyReference ( stack , "value" , rfe . Value , repo ,
4139
+ this . AddKeyReference ( stack , "value" ,
4140
+ rfe . Value , ( ) => rfe . Value = null ,
4141
+ repo ,
4117
4142
packages , PackageCentral . PackageCentral . Selector . MainAuxFileRepo ,
4118
4143
addExistingEntities : "All" , // no restriction
4119
4144
addPresetNames : bufferKeys . Item1 ,
@@ -4165,7 +4190,9 @@ public void DisplayOrEditAasEntitySubmodelElement(
4165
4190
} ) )
4166
4191
{
4167
4192
this . AddKeyReference (
4168
- stack , "first" , rele . First , repo ,
4193
+ stack , "first" ,
4194
+ rele . First , ( ) => rele . First = null ,
4195
+ repo ,
4169
4196
packages , PackageCentral . PackageCentral . Selector . MainAuxFileRepo ,
4170
4197
addExistingEntities : "All" , // no restriction
4171
4198
addPresetNames : bufferKeys . Item1 ,
@@ -4202,7 +4229,9 @@ public void DisplayOrEditAasEntitySubmodelElement(
4202
4229
} ) )
4203
4230
{
4204
4231
this . AddKeyReference (
4205
- stack , "second" , rele . Second , repo ,
4232
+ stack , "second" ,
4233
+ rele . Second , ( ) => rele . Second = null ,
4234
+ repo ,
4206
4235
packages , PackageCentral . PackageCentral . Selector . MainAuxFileRepo ,
4207
4236
addExistingEntities : "All" , // no restriction
4208
4237
addPresetNames : bufferKeys . Item1 ,
@@ -4323,7 +4352,9 @@ public void DisplayOrEditAasEntitySubmodelElement(
4323
4352
return new AnyUiLambdaActionRedrawEntity ( ) ;
4324
4353
} ) )
4325
4354
AddKeyReference (
4326
- stack , "semanticIdListElement" , sml . SemanticIdListElement , repo ,
4355
+ stack , "semanticIdListElement" ,
4356
+ sml . SemanticIdListElement , ( ) => sml . SemanticIdListElement = null ,
4357
+ repo ,
4327
4358
packages , PackageCentral . PackageCentral . Selector . MainAux ,
4328
4359
showRefSemId : false ,
4329
4360
addExistingEntities : "Submodel SubmodelElement ConceptDescription " , addFromKnown : true ,
@@ -4527,7 +4558,9 @@ public void DisplayOrEditAasEntitySubmodelElement(
4527
4558
return new AnyUiLambdaActionRedrawEntity ( ) ;
4528
4559
} ) )
4529
4560
{
4530
- this . AddKeyListKeys ( stack , "observed" , bev . Observed . Keys , repo ,
4561
+ this . AddKeyListKeys ( stack , "observed" ,
4562
+ bev . Observed . Keys , ( ) => bev . Observed = null ,
4563
+ repo ,
4531
4564
packages , PackageCentral . PackageCentral . Selector . Main ,
4532
4565
addExistingEntities : "All" ,
4533
4566
addPresetNames : bufferKeys . Item1 ,
@@ -4637,14 +4670,27 @@ public bool DisplayOrEditCommonEntity(
4637
4670
4638
4671
// edit
4639
4672
DisplayOrEditAasEntitySubmodelOrRef (
4640
- packages , vesmref . theEnv , aas , vesmref . theSubmodelRef , vesmref . theSubmodel , editMode , stack ,
4673
+ packages , vesmref . theEnv , aas ,
4674
+ vesmref . theSubmodelRef ,
4675
+ ( ) =>
4676
+ {
4677
+ // challenge to remove the reference to the Submodel
4678
+ if ( vesmref . theAas ? . Submodels == null )
4679
+ return ;
4680
+ vesmref . theAas . Submodels . Remove ( vesmref . theSubmodelRef ) ;
4681
+ if ( vesmref . theAas . Submodels . Count < 1 )
4682
+ vesmref . theAas . Submodels = null ;
4683
+ } ,
4684
+ vesmref . theSubmodel , editMode , stack ,
4641
4685
hintMode : hintMode , checkSmt : checkSmt ,
4642
4686
superMenu : superMenu ) ;
4643
4687
}
4644
4688
else if ( entity is VisualElementSubmodel vesm && vesm . theSubmodel != null )
4645
4689
{
4646
4690
DisplayOrEditAasEntitySubmodelOrRef (
4647
- packages , vesm . theEnv , null , null , vesm . theSubmodel , editMode , stack ,
4691
+ packages , vesm . theEnv ,
4692
+ aas : null , smref : null , setSmRefNull : null ,
4693
+ submodel : vesm . theSubmodel , editMode : editMode , stack : stack ,
4648
4694
hintMode : hintMode , checkSmt : checkSmt ,
4649
4695
superMenu : superMenu ) ;
4650
4696
}
0 commit comments