diff --git a/org.framed.iorm.ui/core/standardPolicies.editpolicy b/org.framed.iorm.ui/core/standardPolicies.editpolicy index ba74529b1b28d222446cd3db3ac3b16e9ecfac14..4d6788472f71b3eb153acd6b789f3bad1a4371ac 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 503a5001df275ef9dbb063b011e7d471395848a8..c2540474a855a01fbc82e3f22798f72427554755 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 8c8053e5216d37d4d38933efdf9b492f74326484..0aba7f8e4cef7d8e852c2657ad141e346c9e16a0 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 */