From 2878efc1b9cff9d0cf94962d56a3d9ea3585a885 Mon Sep 17 00:00:00 2001 From: nullsub <chrisudeussen@gmail.com> Date: Thu, 3 May 2018 08:25:58 +0200 Subject: [PATCH] refresh policies on config change --- .../core/standardPolicies.editpolicy | 20 +++++++++++++------ .../ChangeConfigurationCommand.java | 3 +++ .../iorm/ui/editPolicy/EditPolicyService.java | 7 +++++-- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/org.framed.iorm.ui/core/standardPolicies.editpolicy b/org.framed.iorm.ui/core/standardPolicies.editpolicy index ba74529b..4d678847 100644 --- a/org.framed.iorm.ui/core/standardPolicies.editpolicy +++ b/org.framed.iorm.ui/core/standardPolicies.editpolicy @@ -115,6 +115,10 @@ <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> </policies> + <policies action="Start" actionType="RelationshipExclusion"> + <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/> + <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> + </policies> <policies actionType="RelationshipExclusion"> <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> @@ -123,10 +127,18 @@ <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> </policies> + <policies action="Start" actionType="RelationshipImplication"> + <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/> + <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> + </policies> <policies actionType="RelationshipImplication"> <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> </policies> + <policies action="Start" actionType="Inheritance"> + <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Role_Inheritance"/> + <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/> + </policies> <policies action="Add" actionType="Inheritance"> <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Role_Inheritance"/> <constraintRule xsi:type="Editpolicymodel:AndConstraintRule"> @@ -233,10 +245,6 @@ <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> </policies> - <policies actionType="Inheritance"> - <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/> - <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> - </policies> <policies actionType="NaturalType"> <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> @@ -245,11 +253,11 @@ <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> </policies> - <policies actionType="RoleGroup"> + <policies actionType="Inheritance"> <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> </policies> - <policies action="Start" actionType="Inheritance"> + <policies actionType="RoleGroup"> <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/> <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/> </policies> diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/configuration/ChangeConfigurationCommand.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/configuration/ChangeConfigurationCommand.java index 503a5001..c2540474 100644 --- a/org.framed.iorm.ui/src/org/framed/iorm/ui/configuration/ChangeConfigurationCommand.java +++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/configuration/ChangeConfigurationCommand.java @@ -4,6 +4,7 @@ import org.eclipse.gef.commands.Command; import org.eclipse.graphiti.features.custom.ICustomFeature; import org.eclipse.swt.widgets.TreeItem; import org.framed.iorm.ui.UILiterals; +import org.framed.iorm.ui.editPolicy.EditPolicyService; import org.framed.iorm.ui.subeditors.FRaMEDDiagramEditor; import org.framed.iorm.ui.subeditors.FRaMEDFeatureEditor; @@ -74,6 +75,8 @@ public class ChangeConfigurationCommand extends Command { ChangeConfigurationContext changeConfigurationContext = new ChangeConfigurationContext(); changeConfigurationContext.setBehaviorEditor(behaviorDiagramEditor); changeConfigurationContext.setConfiguration(featureEditor.getConfiguration()); + EditPolicyService.setDirty(); + if(changeConfigurationFeature.canExecute(changeConfigurationContext)) { //Step 4 changeConfigurationFeature.execute(changeConfigurationContext); diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java index 8c8053e5..0aba7f8e 100644 --- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java +++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java @@ -28,7 +28,6 @@ import org.framed.iorm.ui.UIUtil; */ public class EditPolicyService { - private static List<Editpolicymodel.Model> editpolicymodels; /** @@ -47,7 +46,6 @@ public class EditPolicyService { public static EditPolicyHandler getHandler(Diagram diagram0) { - if(diagram0 == null) { System.out.println("diagram in getHandler is null!"); return null; @@ -136,6 +134,11 @@ public class EditPolicyService { } } + public static void setDirty() { + //empty handlers to reload config + EditPolicyService.editPolicyHandlers = new HashMap<>(); + } + /** * do SAT checking whether policies can be used together */ -- GitLab