making progres...

This commit is contained in:
Michael Becker 2024-02-02 01:45:57 -05:00
parent 3b601293ce
commit b3abc7e451
13 changed files with 235 additions and 25 deletions

View File

@ -105,9 +105,16 @@ class YAMLLibraryParser (LibraryParser):
globalIdentifier = Guid.create()
print("creating new instance for relationship '%s' with globalid '%s'" % (rel_iid, globalIdentifier.get_value()))
if "customTagNameCreatesInstanceOf" in rel:
createsInstanceOf = None
if "type" in relationshipValue:
print("found relationship override type '%s'" % (relationshipValue['type']))
createsInstanceOf = Guid(self.manager.expand_entity_references(relationshipValue["type"]))
elif "customTagNameCreatesInstanceOf" in rel:
createsInstanceOf = Guid(self.manager.expand_entity_references(rel["customTagNameCreatesInstanceOf"]))
if not createsInstanceOf is None:
# create the new instance
self.manager.add_instance(createsInstanceOf, globalIdentifier, None, None)
@ -126,6 +133,8 @@ class YAMLLibraryParser (LibraryParser):
self.apply_template(relationshipValue, createsInstanceOfTemplate, globalIdentifier)
else:
print("no template registered for createsInstanceOf '%s'" % (createsInstanceOf.get_value()))
else:
print ("neither createsInstanceOf nor override 'type' present for relationship value")
def apply_template(self, elem, template, instanceId):

View File

@ -268,9 +268,6 @@
- IDR_Layout__has__Style: '{e684bb26-7e78-4a21-b8b4-5a550f3053d5}'
- IDR_Style__for__Layout: '{7588a2f7-823d-4e00-ae37-10547c8d06e4}'
- IDR_Button_Layout__executes_task_from__Instance_Set: '{04d104fa-a6c4-425e-a6cd-56d847c63e9d}'
- IDR_Instance_Set__has_task_executed_by__Button_Layout: '{c17171be-9d7a-4df9-8903-2b9d5cc26742}'
- IDR_Measurement__has__Measurement_Unit: '{C9720082-1F40-406D-80B7-81C1B690354D}'
- IDR_Measurement_Unit__for__Measurement: '{3117CB16-6860-48B6-8E21-3655A121E695}'

View File

@ -1,14 +1,24 @@
- entityDefinitions:
- IDR_Button_Layout__executes_task_from__Instance_Set: '{04d104fa-a6c4-425e-a6cd-56d847c63e9d}'
- IDR_Instance_Set__has_task_executed_by__Button_Layout: '{c17171be-9d7a-4df9-8903-2b9d5cc26742}'
- IDR_Button_Layout__gets_related_instance_from__Instance_Set: '{462bb1ab-aefa-4455-8d56-eff233e3caa7}'
- IDR_Instance_Set__has_related_instance_for__Button_Layout: '{81449573-4334-4b31-8fa6-007b3a15ef2b}'
- library: '&IDL_MochaBaseSystem;'
instances:
- class: '&IDC_ButtonLayout;'
index: 3009
name: Button Layout
customTagName: buttonLayout
registerForTemplate: yes
superclasses:
- instance: '&IDC_Layout;'
relationships:
- instance: '&IDR_Button_Layout__executes_task_from__Instance_Set;'
customTagName: 'executesTask'
- instance: '&IDR_Button_Layout__gets_related_instance_from__Instance_Set;'
customTagName: 'relatedInstance'
- relationship: '&IDR_Button_Layout__executes_task_from__Instance_Set;'
index: 9232
@ -25,3 +35,19 @@
destinationClassId: '&IDC_ButtonLayout;'
siblingRelationshipId: '&IDR_Button_Layout__executes_task_from__Instance_Set;'
singular: no
- relationship: '&IDR_Button_Layout__gets_related_instance_from__Instance_Set;'
index: 7878
sourceClassId: '&IDC_ButtonLayout;'
type: 'gets related instance from'
destinationClassId: '&IDC_InstanceSet;'
siblingRelationshipId: '&IDR_Instance_Set__has_related_instance_for__Button_Layout;'
singular: yes
- relationship: '&IDR_Instance_Set__has_related_instance_for__Button_Layout;'
index: 7879
sourceClassId: '&IDC_InstanceSet;'
type: 'has related instance for'
destinationClassId: '&IDC_ButtonLayout;'
siblingRelationshipId: '&IDR_Button_Layout__gets_related_instance_from__Instance_Set;'
singular: no

View File

@ -0,0 +1,23 @@
- entityDefinitions:
- IDM_Element__get__Returned_by_BEM: '{4d5a8393-6b7e-4cb8-9ced-342709fe3cfd}'
- IDMB_Element__get__Returned_by_BEM: '{07d9f79a-3fdd-43e7-90c9-108b9fd7bfae}'
- IDI_WorkSet_ReturnedByBEM: '{da30159a-4f66-4c69-86a0-7ede8924817b}'
- library: '&IDL_MochaBaseSystem;'
instances:
- workSet: '&IDI_WorkSet_ReturnedByBEM;'
name: 'Returned by BEM - Build Element Method'
singular: yes
- getReferencedInstanceSetMethod: '&IDM_Element__get__Returned_by_BEM;'
forClassId: '&IDC_Element;'
returnsWorkSetId: '&IDI_WorkSet_ReturnedByBEM;'
verb: 'get'
name: 'Returned by BEM'
accessModifierId: '&IDI_AccessModifier_RootA2;'
referenceInstanceSet: '&IDC_Element;'
answerInstanceSet: '&IDR_Element__returned_by__Build_Element_Method;'
singular: yes
- returnInstanceSetMethodBinding: '&IDMB_Element__get__Returned_by_BEM;'
executesMethod: '&IDM_Element__get__Returned_by_BEM;'

View File

@ -0,0 +1,20 @@
- entityDefinitions:
- IDM_Method_Binding__get__Parameter_Assignments: '{b3d742ad-65f5-4eec-bed3-5f7c20df3e22}'
- IDMB_Method_Binding__get__Parameter_Assignments: '{f89b7bc9-cbab-4d45-b079-c421163ef1e9}'
- library: '&IDL_MochaBaseSystem;'
instances:
- getReferencedInstanceSetMethod: '&IDM_Method_Binding__get__Parameter_Assignments;'
# initialValue: 'Method Example@get Dummy Method Name (BA)*S*P(public)'
forClassId: '&IDC_MethodBinding;'
# returnsWorkSetId: '&IDI_WorkSet_MethodSingular;'
returnsWorkSetId: '&IDC_ParameterAssignment;'
verb: 'get'
name: 'Parameter Assignments'
accessModifierId: '&IDI_AccessModifier_RootA2;'
referenceInstanceSet: '&IDC_MethodBinding;'
answerInstanceSet: '&IDR_Method_Binding__has__Parameter_Assignment;'
singular: no
- returnInstanceSetMethodBinding: '&IDMB_Method_Binding__get__Parameter_Assignments;'
executesMethod: '&IDM_Method_Binding__get__Parameter_Assignments;'

View File

@ -1,6 +1,7 @@
- entityDefinitions:
- IDE_ClassStart: '{8730d21a-44a8-4d93-9bf7-f8191ca08489}'
- IDE_ClassSelect: '{bc393547-3a92-48b2-b0dc-7e93306ab5fb}'
- IDE_ViewClassButtons: '{a3fd6203-8e9c-4b7f-b731-e73f9f77967e}'
- library: '&IDL_MochaBaseSystem;'
instances:
@ -60,18 +61,20 @@
displayOptions:
- instance: '&IDI_DisplayOption_Required;'
- element: '&IDE_ViewClass;'
name: 'view class'
- element: '&IDE_ViewClassButtons;'
name: 'view class buttons'
elementContents:
- globalIdentifier: '{dafb235b-ba1a-4b1a-8f9b-84cd987553e4}'
layout: '&IDI_ButtonLayout_DefaultButtonGroup;'
label: 'Edit'
value:
- taskId: '&IDI_Task_EditClass;'
- parameterAssignments:
- globalIdentifier: '{9dbdb202-e9f8-49ca-bbc2-0b63df651246}'
layout:
- globalIdentifier: '{31974c8d-9492-4f5b-a4d9-79c4e92f51c6}'
type: '&IDC_ButtonLayout;'
executesTask: '&IDI_Task_EditClass;'
relatedInstance: '&IDI_WorkSet_TaskRelatedInstance;'
parameterAssignments:
- globalIdentifier: '{29164916-503e-4585-ba76-f37a3530d6dc}'
assignsToParm: '&IDC_Class;'
assignsFromWorkData: '&IDC_Class;'
label: 'Edit'
- globalIdentifier: '{7059bd24-6a43-483f-b3fb-a2ae1e9ae90b}'
layout: '&IDI_ButtonLayout_DefaultButtonGroup;'
label: 'Add Attribute'
@ -127,6 +130,14 @@
assignsToParm: '&IDC_Class;'
assignsFromWorkData: '&IDC_Class;'
- element: '&IDE_ViewClass;'
name: 'view class'
elementContents:
- globalIdentifier: '{156e622f-da03-42f9-8d45-a85b9336501a}'
defaultDataType: '&IDE_ViewClassButtons;'
displayOptions:
- instance: '&IDI_DisplayOption_Singular;'
- globalIdentifier: '{24fbaf94-bcca-4513-b93d-6a1866a1641c}'
defaultDataType: '&IDE_Class_Structure;'
displayOptions:

View File

@ -8,6 +8,7 @@
- IDE_Element_View_Toolbar: '{ad0b929c-d24f-42e9-8548-cca0d30ee760}'
- IDE_Element_Common: '{beb75322-b61e-444e-b0ab-8ac7a5103953}'
- IDMB_Element__get__Returned_by_BEM__Task_Related_Instance: '{ea65f363-deb4-4a94-ae49-ba11eeef08dc}'
- library: '&IDL_MochaBaseSystem;'
instances:
@ -61,20 +62,27 @@
name: 'build element contents'
loopExecutableReturningInstanceSet: '&IDMB_Element__get__Element_Contents;'
- returnInstanceSetMethodBinding: '&IDMB_Element__get__Returned_by_BEM__Task_Related_Instance;'
executesMethod: '&IDM_Element__get__Returned_by_BEM;'
parameterAssignments:
- assignsToParameter: '&IDC_Element;'
assignsFromWorkData: '&IDI_WorkSet_TaskRelatedInstance;'
- element: '&IDE_Element_View_Toolbar;'
name: 'view element buttons'
elementContents:
- globalIdentifier: '{04ce9724-fa4f-4200-a7e6-c71c871004b0}'
layout: '&IDI_ButtonLayout_DefaultButtonGroup;'
layout:
- type: '&IDC_ButtonLayout;'
executesTask: '&IDI_Task_Element_Edit;'
relatedInstance: '&IDI_WorkSet_TaskRelatedInstance;'
label: 'Edit'
value:
- taskId: '&IDI_Task_Element_Edit;'
- parameterAssignments:
- globalIdentifier: '{9dbdb202-e9f8-49ca-bbc2-0b63df651246}'
assignsToParm: '&IDC_Class;'
assignsFromWorkData: '&IDC_Class;'
- globalIdentifier: '{b955d049-faf0-4a1b-a345-ee41b377dc78}'
layout: '&IDI_ButtonLayout_DefaultButtonGroup;'
layout:
- type: '&IDC_ButtonLayout;'
# executesTask: '&IDI_Task_ViewBuildElementMethod;'
executesTask: '&IDI_Task_Element_Edit;'
relatedInstance: '&IDMB_Element__get__Returned_by_BEM__Task_Related_Instance;'
label: 'View BEM'
value:
- taskId: '&IDI_Task_Element_Edit;'
@ -83,7 +91,11 @@
assignsToParm: '&IDC_Class;'
assignsFromWorkData: '&IDC_Class;'
- globalIdentifier: '{7ae5d892-9d46-4962-b763-8f8071c8cc18}'
layout: '&IDI_ButtonLayout_DefaultButtonGroup;'
layout:
- type: '&IDC_ButtonLayout;'
# executesTask: '&IDI_Task_EditBuildElementMethod;'
executesTask: '&IDI_Task_Element_Edit;'
relatedInstance: '&IDMB_Element__get__Returned_by_BEM;'
label: 'Edit BEM'
value:
- taskId: '&IDI_Task_Element_Edit;'
@ -122,6 +134,8 @@
- globalIdentifier: '{99cf85da-6d7f-436e-af21-33647d3d2e07}'
defaultDataType: '&IDE_Element_View_Toolbar;'
order: b
displayOptions:
- instance: '&IDI_DisplayOption_Singular;'
- globalIdentifier: '{ebc2cf46-6abf-4b23-a85c-2d4a950f0aef}'
defaultDataType: '&IDE_Element_Common;'
order: c

View File

@ -1,3 +1,6 @@
- entityDefinitions:
- IDE_Method_Common_Parms: '{9e4b1ad8-1988-483d-abb4-b8e4ab77a02c}'
- library: '&IDL_MochaBaseSystem;'
instances:
- element: '&IDE_Method_Common_Definition;'
@ -9,7 +12,7 @@
order: a
displayOptions:
- instance: '&IDI_DisplayOption_DoNotShow;'
- globalIdentifier: '{9e51cd55-6dc1-4b07-a08f-dc1c8ea4d97f}'
- globalIdentifier: '{f4493d97-f34c-40c4-836c-2bf8a305182a}'
defaultDataType: '&IDMB_Instance__get__Global_Identifier;'
label: 'Global Identifier'
order: b
@ -45,3 +48,25 @@
defaultDataType: '&IDA_Final;'
label: 'Final'
order: i
- element: '&IDE_Method_Common_Parms;'
label: 'Parameters'
elementContents:
- globalIdentifier: '{09c6b9c6-e925-41eb-ae09-b12ac931db07}'
defaultDataType: '&IDC_Method;'
label: 'Method'
order: a
displayOptions:
- instance: '&IDI_DisplayOption_DoNotShow;'
# - globalIdentifier: '{47c78a41-ae70-4c60-9385-33a4f268d3ab}'
# defaultDataType: '&IDR_Method_with_Static_and_Parms__uses_parm__Work_Data;'
# label: 'Optional parms'
# order: b
# - globalIdentifier: '{ab3627d3-ab43-4ae9-a175-535e83be0537}'
# defaultDataType: '&IDR_Method_with_Static_and_Parms__uses_required_parm__Work_Data;'
# label: 'Required parms (null allowed)'
# order: c
# - globalIdentifier: '{1b5e31b1-047d-443b-a381-c7d49370198a}'
# defaultDataType: '&IDR_Method_with_Static_and_Parms__uses_required_nullable_parm__Work_Data;'
# label: 'Required parms (not null)'
# order: d

View File

@ -6,6 +6,9 @@
- IDE_ReturnInstanceSetMethodBinding_Definition: '{c7191f4b-e45e-4430-a568-8bb29600c860}'
- IDE_ReturnInstanceSetMethodBinding_Preview: '{98e39ace-c4cf-4cf1-b648-74eed221dc9c}'
- IDE_MethodBinding_ParameterAssignments: '{c757b7ad-f00d-4fc6-970a-6e9dc33c2c38}'
- IDMB_Method_Binding__get__Parameter_Assignments_TaskRelatedInstance: '{1e567031-8cb3-49a9-ab4f-2236ba547abe}'
- library: '&IDL_MochaBaseSystem;'
instances:
- sequenceTask: '&IDI_Task_ViewReturnInstanceSetMethodBinding;'
@ -22,20 +25,60 @@
name: 'view rsmb'
elementContents:
- globalIdentifier: '{742aa7e2-79c3-4167-9de4-db194a32bd96}'
order: a
defaultDataType: '&IDE_ReturnInstanceSetMethodBinding_Definition;'
displayOptions:
- instance: '&IDI_DisplayOption_Singular;'
- instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
- instance: '&IDI_DisplayOption_NotEnterable;'
- globalIdentifier: '{d3be5892-b103-46b2-a6e8-c30685398934}'
defaultDataType: '&IDE_MethodBinding_ParameterAssignments;' # &IDR_Method_Binding__has__Parameter_Assignment;'
label: 'Parameter Assignments'
order: b
builtFromBEMProcess: '{f1da7d9c-ed2f-4d36-9d40-b48f40cfdb96}'
displayOptions:
- instance: '&IDI_DisplayOption_NotEnterable;'
- element: '&IDE_MethodBinding_ParameterAssignments;'
name: 'parm assigns'
elementContents:
- globalIdentifier: '{ee32c353-b0eb-4708-8afc-76f1a37afe9b}'
defaultDataType: '&IDR_Parameter_Assignment__assigns_to__Work_Data;'
label: 'Assigns to Parm'
order: a
- globalIdentifier: '{3e5239a1-3c6c-4f22-b116-d03fb6bf43d2}'
defaultDataType: '&IDR_Parameter_Assignment__assigns_from__Executable_returning_Work_Data;'
label: 'Assigns from RWMB'
order: b
- buildElementMethod: '{d31608cd-b669-46a8-ac68-03a1ffc28feb}'
hasBemProcess: '{f1da7d9c-ed2f-4d36-9d40-b48f40cfdb96}'
- bemProcess: '{f1da7d9c-ed2f-4d36-9d40-b48f40cfdb96}'
name: 'build parm assigns'
loopExecutableReturningInstanceSet: '&IDMB_Method_Binding__get__Parameter_Assignments_TaskRelatedInstance;'
- returnInstanceSetMethodBinding: '&IDMB_Method_Binding__get__Parameter_Assignments_TaskRelatedInstance;'
executesMethod: '&IDM_Method_Binding__get__Parameter_Assignments;'
parameterAssignments:
- assignsToParameter: '&IDC_MethodBinding;'
assignsFromWorkData: '&IDI_WorkSet_TaskRelatedInstance;'
- element: '&IDE_ReturnInstanceSetMethodBinding_Edit;'
name: 'edit rsmb'
elementContents:
- globalIdentifier: '{370db58f-09fc-46b8-8485-849ef2fe0734}'
defaultDataType: '&IDE_ReturnInstanceSetMethodBinding_Definition;'
order: a
displayOptions:
- instance: '&IDI_DisplayOption_Singular;'
- instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
- globalIdentifier: '{52ada6e0-8192-42ed-b191-0120dbcdc14f}'
defaultDataType: '&IDE_MethodBinding_ParameterAssignments;' # &IDR_Method_Binding__has__Parameter_Assignment;'
label: 'Parameter Assignments'
order: b
builtFromBEMProcess: '{f1da7d9c-ed2f-4d36-9d40-b48f40cfdb96}'
- element: '&IDE_ReturnInstanceSetMethodBinding_Definition;'
name: 'rsmb subedit'

View File

@ -0,0 +1,16 @@
public class Class, 1$1 {
attributes:
// <none>
relationships:
// <none>
functions:
static stub function getAllClasses() : Class*
instances:
// <none>
}

View File

@ -310,6 +310,7 @@ class KnownRelationshipGuids
const User_Preferences__for__System_Account = "{ab2372a5-a4c7-488a-89f6-67e5834f8c83}";
const Button_Layout__executes_task_from__Instance_Set = "04d104faa6c4425ea6cd56d847c63e9d";
const Button_Layout__gets_related_instance_from__Instance_Set = "{462bb1ab-aefa-4455-8d56-eff233e3caa7}";
const Element__processed_by__Process_Related_Updates_Method = "{ed9c836a-04a4-4505-8953-3c567e841c66}";
const Element__processed_by__Control_Transaction_Method = "{0f182291-6784-47b3-a8d3-d2f6ebf3950c}";

View File

@ -638,6 +638,17 @@
}
return null;
}
public function executeAndEvaluateWorkData(OmsContext $context, InstanceReference $inst)
{
$result = $this->execute($context, $inst);
if ($this->is_a($result, KnownClassGuids::WorkSet))
{
return $context->getWorkData($result);
}
return $result;
}
public function execute(OmsContext $context, InstanceReference $inst, $classesLookupWorkData = true, ?array $parms = null)
{
$instParent = $this->getParentClass($inst);

View File

@ -1134,7 +1134,12 @@
}
$fullyQualifiedECID = $this->getElementContentId($parentElementContents, $elementContent);
echo ("<!-- " . $fullyQualifiedECID . " ; " . $ecInst->InstanceKey . " -->");
echo ("<!-- " . $fullyQualifiedECID . " ; ");
if ($ecInst !== null)
{
echo ($ecInst->InstanceKey);
}
echo (" -->");
$ecLayout = $oms->getRelatedInstance($elementContent, $oms->getInstanceByGlobalIdentifier(KnownRelationshipGuids::Element_Content__has__Layout));
if ($ecLayout !== null)
@ -1149,10 +1154,19 @@
// override layout : button
echo ("<a class=\"uwt-button\" href=\"");
$executesTaskFromIS = $oms->getRelatedInstance($ecLayout, KnownRelationshipGuids::Button_Layout__executes_task_from__Instance_Set);
$getsRelatedInstanceFromIS = $oms->getRelatedInstance($ecLayout, KnownRelationshipGuids::Button_Layout__gets_related_instance_from__Instance_Set);
if ($executesTaskFromIS !== null)
{
if ($getsRelatedInstanceFromIS !== null)
{
$getsRelatedInstanceFromIS = $oms->executeAndEvaluateWorkData($this->Context, $getsRelatedInstanceFromIS);
echo(System::ExpandRelativePath("~/d/inst/" . $getsRelatedInstanceFromIS->InstanceKey . "/rel-task/" . $executesTaskFromIS->InstanceKey . ".htmld"));
}
else
{
echo(System::ExpandRelativePath("~/d/task/" . $executesTaskFromIS->InstanceKey . ".htmld"));
}
}
echo("\">");
//
// 3$7872 Button Layout.uses for label Text Attribute