1717import java .util .Objects ;
1818import java .util .UUID ;
1919
20+ import org .eclipse .acceleo .query .services .EObjectServices ;
2021import org .eclipse .emf .common .util .URI ;
22+ import org .eclipse .emf .ecore .EAttribute ;
23+ import org .eclipse .emf .ecore .EObject ;
24+ import org .eclipse .emf .ecore .EStructuralFeature ;
2125import org .eclipse .emf .ecore .resource .Resource ;
2226import org .eclipse .emf .ecore .util .EcoreUtil ;
2327import org .eclipse .emf .ecore .xmi .impl .XMIResourceImpl ;
28+ import org .eclipse .syson .sysml .Element ;
2429import org .eclipse .emf .edit .provider .ComposedAdapterFactory .Descriptor ;
2530import org .eclipse .sirius .components .collaborative .forms .services .api .IPropertiesDescriptionRegistry ;
2631import org .eclipse .sirius .components .collaborative .forms .services .api .IPropertiesDescriptionRegistryConfigurer ;
6065import org .eclipse .syson .model .services .aql .ModelQueryAQLService ;
6166import org .eclipse .syson .services .UtilService ;
6267import org .eclipse .syson .sysml .SysmlPackage ;
63- import org .eclipse .syson .sysml .helper .LabelConstants ;
6468import org .eclipse .syson .util .AQLConstants ;
6569import org .eclipse .syson .util .AQLUtils ;
6670import org .eclipse .syson .util .ServiceMethod ;
@@ -140,7 +144,7 @@ public void addPropertiesDescriptions(IPropertiesDescriptionRegistry registry) {
140144 // The FormDescription must be part of View inside a proper EMF Resource to be correctly handled
141145 URI uri = URI .createURI (IEMFEditingContext .RESOURCE_SCHEME + ":///" + UUID .nameUUIDFromBytes (SysMLv2PropertiesConfigurer .class .getCanonicalName ().getBytes ()));
142146 Resource resource = new XMIResourceImpl (uri );
143- View view = org . eclipse . sirius . components . view . ViewFactory .eINSTANCE .createView ();
147+ View view = ViewFactory .eINSTANCE .createView ();
144148
145149 view .eAllContents ().forEachRemaining (eObject -> {
146150 eObject .eAdapters ().add (new IDAdapter (UUID .nameUUIDFromBytes (EcoreUtil .getURI (eObject ).toString ().getBytes ())));
@@ -263,8 +267,8 @@ private GroupDescription createExtraRedefinitionPropertiesGroup() {
263267 refWidget .setReferenceOwnerExpression (AQLConstants .AQL_SELF );
264268 refWidget .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY );
265269 ChangeContext setRefWidget = ViewFactory .eINSTANCE .createChangeContext ();
266- setRefWidget .setExpression ("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage . eINSTANCE . getRedefinition_RedefinedFeature (). getName () + "', " + ViewFormDescriptionConverter . NEW_VALUE
267- + LabelConstants . CLOSE_PARENTHESIS );
270+ setRefWidget .setExpression (ServiceMethod . of2 ( DetailsViewService :: handleReferenceWidgetNewValue )
271+ . aqlSelf ( AQLUtils . aqlString ( SysmlPackage . eINSTANCE . getRedefinition_RedefinedFeature (). getName ()), ViewFormDescriptionConverter . NEW_VALUE ) );
268272 refWidget .getBody ().add (setRefWidget );
269273
270274 group .getChildren ().add (refWidget );
@@ -287,9 +291,8 @@ private GroupDescription createExtraReferenceSubsettingPropertiesGroup() {
287291 refWidget .setReferenceOwnerExpression (AQLConstants .AQL_SELF );
288292 refWidget .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY );
289293 ChangeContext setRefWidget = ViewFactory .eINSTANCE .createChangeContext ();
290- setRefWidget
291- .setExpression ("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage .eINSTANCE .getReferenceSubsetting_ReferencedFeature ().getName () + "', " + ViewFormDescriptionConverter .NEW_VALUE
292- + LabelConstants .CLOSE_PARENTHESIS );
294+ setRefWidget .setExpression (ServiceMethod .of2 (DetailsViewService ::handleReferenceWidgetNewValue )
295+ .aqlSelf (AQLUtils .aqlString (SysmlPackage .eINSTANCE .getReferenceSubsetting_ReferencedFeature ().getName ()), ViewFormDescriptionConverter .NEW_VALUE ));
293296 refWidget .getBody ().add (setRefWidget );
294297
295298 group .getChildren ().add (refWidget );
@@ -307,14 +310,15 @@ private GroupDescription createExtraStatesubactionMembershipKindPropertiesGroup(
307310 RadioDescription radio = FormFactory .eINSTANCE .createRadioDescription ();
308311 radio .setName ("ExtraRadioKindWidget" );
309312 radio .setLabelExpression ("Kind" );
310- radio .setCandidatesExpression (AQLUtils .getSelfServiceCallExpression ("getEnumCandidates" , AQLUtils .aqlString (SysmlPackage .eINSTANCE .getStateSubactionMembership_Kind ().getName ())));
313+ radio .setCandidatesExpression (ServiceMethod .of1 (DetailsViewService .class , DetailsViewService ::getEnumCandidates , Element .class , String .class )
314+ .aqlSelf (AQLUtils .aqlString (SysmlPackage .eINSTANCE .getStateSubactionMembership_Kind ().getName ())));
311315 radio .setCandidateLabelExpression ("aql:candidate.name" );
312- radio .setValueExpression (AQLUtils .getSelfServiceCallExpression ("getEnumValue" , AQLUtils .aqlString (SysmlPackage .eINSTANCE .getStateSubactionMembership_Kind ().getName ())));
316+ radio .setValueExpression (ServiceMethod .of1 (DetailsViewService .class , DetailsViewService ::getEnumValue , Element .class , String .class )
317+ .aqlSelf (AQLUtils .aqlString (SysmlPackage .eINSTANCE .getStateSubactionMembership_Kind ().getName ())));
313318 radio .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY );
314319 ChangeContext setNewValueOperation = ViewFactory .eINSTANCE .createChangeContext ();
315- setNewValueOperation
316- .setExpression (
317- AQLUtils .getSelfServiceCallExpression ("setNewValue" , List .of (AQLUtils .aqlString (SysmlPackage .eINSTANCE .getStateSubactionMembership_Kind ().getName ()), "newValue.instance" )));
320+ setNewValueOperation .setExpression (ServiceMethod .of2 (DetailsViewService .class , DetailsViewService ::setNewValue , Element .class , String .class , Object .class )
321+ .aqlSelf (AQLUtils .aqlString (SysmlPackage .eINSTANCE .getStateSubactionMembership_Kind ().getName ()), "newValue.instance" ));
318322 radio .getBody ().add (setNewValueOperation );
319323
320324 group .getChildren ().add (radio );
@@ -337,8 +341,8 @@ private GroupDescription createExtraSubclassificationPropertiesGroup() {
337341 refWidget .setReferenceOwnerExpression (AQLConstants .AQL_SELF );
338342 refWidget .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY );
339343 ChangeContext setRefWidget = ViewFactory .eINSTANCE .createChangeContext ();
340- setRefWidget .setExpression ("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage . eINSTANCE . getSubclassification_Superclassifier (). getName () + "', " + ViewFormDescriptionConverter . NEW_VALUE
341- + LabelConstants . CLOSE_PARENTHESIS );
344+ setRefWidget .setExpression (ServiceMethod . of2 ( DetailsViewService :: handleReferenceWidgetNewValue )
345+ . aqlSelf ( AQLUtils . aqlString ( SysmlPackage . eINSTANCE . getSubclassification_Superclassifier (). getName ()), ViewFormDescriptionConverter . NEW_VALUE ) );
342346 refWidget .getBody ().add (setRefWidget );
343347
344348 group .getChildren ().add (refWidget );
@@ -361,8 +365,8 @@ private GroupDescription createExtraSubsettingPropertiesGroup() {
361365 refWidget .setReferenceOwnerExpression (AQLConstants .AQL_SELF );
362366 refWidget .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY );
363367 ChangeContext setRefWidget = ViewFactory .eINSTANCE .createChangeContext ();
364- setRefWidget .setExpression ("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage . eINSTANCE . getSubsetting_SubsettedFeature (). getName () + "', " + ViewFormDescriptionConverter . NEW_VALUE
365- + LabelConstants . CLOSE_PARENTHESIS );
368+ setRefWidget .setExpression (ServiceMethod . of2 ( DetailsViewService :: handleReferenceWidgetNewValue )
369+ . aqlSelf ( AQLUtils . aqlString ( SysmlPackage . eINSTANCE . getSubsetting_SubsettedFeature (). getName ()), ViewFormDescriptionConverter . NEW_VALUE ) );
366370 refWidget .getBody ().add (setRefWidget );
367371
368372 group .getChildren ().add (refWidget );
@@ -580,7 +584,7 @@ private WidgetDescription createLabelWidget() {
580584 label .setName ("LabelWidget" );
581585 label .setLabelExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewLabel ).aqlSelf (E_STRUCTURAL_FEATURE ));
582586 label .setHelpExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewHelpText ).aqlSelf (E_STRUCTURAL_FEATURE ));
583- label .setValueExpression (AQLUtils . getSelfServiceCallExpression ( " eGet" , E_STRUCTURAL_FEATURE ));
587+ label .setValueExpression (ServiceMethod . of1 ( EObjectServices . class , EObjectServices :: eGet , EObject . class , EStructuralFeature . class ). aqlSelf ( E_STRUCTURAL_FEATURE ));
584588 return label ;
585589 }
586590
@@ -589,10 +593,11 @@ private WidgetDescription createTextAreaFieldWidget() {
589593 textArea .setName ("TextAreaWidget" );
590594 textArea .setLabelExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewLabel ).aqlSelf (E_STRUCTURAL_FEATURE ));
591595 textArea .setHelpExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewHelpText ).aqlSelf (E_STRUCTURAL_FEATURE ));
592- textArea .setValueExpression (AQLUtils . getSelfServiceCallExpression ( " eGet" , E_STRUCTURAL_FEATURE ));
596+ textArea .setValueExpression (ServiceMethod . of1 ( EObjectServices . class , EObjectServices :: eGet , EObject . class , EStructuralFeature . class ). aqlSelf ( E_STRUCTURAL_FEATURE ));
593597 textArea .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE );
594598 ChangeContext setNewValueOperation = ViewFactory .eINSTANCE .createChangeContext ();
595- setNewValueOperation .setExpression (AQLUtils .getSelfServiceCallExpression ("setNewValue" , List .of (E_STRUCTURAL_FEATURE , ViewFormDescriptionConverter .NEW_VALUE )));
599+ setNewValueOperation .setExpression (ServiceMethod .of2 (DetailsViewService .class , DetailsViewService ::setNewValue , Element .class , EStructuralFeature .class , Object .class )
600+ .aqlSelf (E_STRUCTURAL_FEATURE , ViewFormDescriptionConverter .NEW_VALUE ));
596601 textArea .getBody ().add (setNewValueOperation );
597602 return textArea ;
598603 }
@@ -602,10 +607,11 @@ private WidgetDescription createTextfieldWidget() {
602607 textfield .setName ("TextfieldWidget" );
603608 textfield .setLabelExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewLabel ).aqlSelf (E_STRUCTURAL_FEATURE ));
604609 textfield .setHelpExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewHelpText ).aqlSelf (E_STRUCTURAL_FEATURE ));
605- textfield .setValueExpression (AQLUtils . getSelfServiceCallExpression ( " eGet" , E_STRUCTURAL_FEATURE ));
610+ textfield .setValueExpression (ServiceMethod . of1 ( EObjectServices . class , EObjectServices :: eGet , EObject . class , EStructuralFeature . class ). aqlSelf ( E_STRUCTURAL_FEATURE ));
606611 textfield .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE );
607612 ChangeContext setNewValueOperation = ViewFactory .eINSTANCE .createChangeContext ();
608- setNewValueOperation .setExpression (AQLUtils .getSelfServiceCallExpression ("setNewValue" , List .of (E_STRUCTURAL_FEATURE , ViewFormDescriptionConverter .NEW_VALUE )));
613+ setNewValueOperation .setExpression (ServiceMethod .of2 (DetailsViewService .class , DetailsViewService ::setNewValue , Element .class , EStructuralFeature .class , Object .class )
614+ .aqlSelf (E_STRUCTURAL_FEATURE , ViewFormDescriptionConverter .NEW_VALUE ));
609615 textfield .getBody ().add (setNewValueOperation );
610616 return textfield ;
611617 }
@@ -614,11 +620,12 @@ private WidgetDescription createCheckboxWidget() {
614620 CheckboxDescription checkbox = FormFactory .eINSTANCE .createCheckboxDescription ();
615621 checkbox .setName ("CheckboxWidget" );
616622 checkbox .setLabelExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewLabel ).aqlSelf (E_STRUCTURAL_FEATURE ));
617- checkbox .setValueExpression (AQLUtils . getSelfServiceCallExpression ( " eGet" , E_STRUCTURAL_FEATURE ));
623+ checkbox .setValueExpression (ServiceMethod . of1 ( EObjectServices . class , EObjectServices :: eGet , EObject . class , EStructuralFeature . class ). aqlSelf ( E_STRUCTURAL_FEATURE ));
618624 checkbox .setHelpExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewHelpText ).aqlSelf (E_STRUCTURAL_FEATURE ));
619625 checkbox .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE );
620626 ChangeContext setNewValueOperation = ViewFactory .eINSTANCE .createChangeContext ();
621- setNewValueOperation .setExpression (AQLUtils .getSelfServiceCallExpression ("setNewValue" , List .of (E_STRUCTURAL_FEATURE , ViewFormDescriptionConverter .NEW_VALUE )));
627+ setNewValueOperation .setExpression (ServiceMethod .of2 (DetailsViewService .class , DetailsViewService ::setNewValue , Element .class , EStructuralFeature .class , Object .class )
628+ .aqlSelf (E_STRUCTURAL_FEATURE , ViewFormDescriptionConverter .NEW_VALUE ));
622629 checkbox .getBody ().add (setNewValueOperation );
623630 return checkbox ;
624631 }
@@ -628,12 +635,13 @@ private WidgetDescription createRadioWidget() {
628635 radio .setName ("RadioWidget" );
629636 radio .setLabelExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewLabel ).aqlSelf (E_STRUCTURAL_FEATURE ));
630637 radio .setHelpExpression (ServiceMethod .of1 (DetailsViewService ::getDetailsViewHelpText ).aqlSelf (E_STRUCTURAL_FEATURE ));
631- radio .setCandidatesExpression (AQLUtils . getSelfServiceCallExpression ( " getEnumCandidates" , E_STRUCTURAL_FEATURE ));
638+ radio .setCandidatesExpression (ServiceMethod . of1 ( DetailsViewService . class , DetailsViewService :: getEnumCandidates , Element . class , EAttribute . class ). aqlSelf ( E_STRUCTURAL_FEATURE ));
632639 radio .setCandidateLabelExpression ("aql:candidate.name" );
633- radio .setValueExpression (AQLUtils . getSelfServiceCallExpression ( " getEnumValue" , E_STRUCTURAL_FEATURE ));
640+ radio .setValueExpression (ServiceMethod . of1 ( DetailsViewService . class , DetailsViewService :: getEnumValue , Element . class , EAttribute . class ). aqlSelf ( E_STRUCTURAL_FEATURE ));
634641 radio .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE );
635642 ChangeContext setNewValueOperation = ViewFactory .eINSTANCE .createChangeContext ();
636- setNewValueOperation .setExpression (AQLUtils .getSelfServiceCallExpression ("setNewValue" , List .of (E_STRUCTURAL_FEATURE , "newValue.instance" )));
643+ setNewValueOperation .setExpression (
644+ ServiceMethod .of2 (DetailsViewService .class , DetailsViewService ::setNewValue , Element .class , EStructuralFeature .class , Object .class ).aqlSelf (E_STRUCTURAL_FEATURE , "newValue.instance" ));
637645 radio .getBody ().add (setNewValueOperation );
638646 return radio ;
639647 }
@@ -647,7 +655,7 @@ private WidgetDescription createReferenceWidget() {
647655 refWidget .setReferenceOwnerExpression (AQLConstants .AQL_SELF );
648656 refWidget .setIsEnabledExpression (AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE );
649657 ChangeContext setRefWidget = ViewFactory .eINSTANCE .createChangeContext ();
650- setRefWidget .setExpression (AQLUtils . getSelfServiceCallExpression ( " handleReferenceWidgetNewValue" , List . of (E_STRUCTURAL_FEATURE + ".name" , ViewFormDescriptionConverter .NEW_VALUE ) ));
658+ setRefWidget .setExpression (ServiceMethod . of2 ( DetailsViewService :: handleReferenceWidgetNewValue ). aqlSelf (E_STRUCTURAL_FEATURE + ".name" , ViewFormDescriptionConverter .NEW_VALUE ));
651659 refWidget .getBody ().add (setRefWidget );
652660 return refWidget ;
653661 }
0 commit comments