Skip to content
nullsub edited this page Jan 8, 2017 · 28 revisions

A summary of all rules used in FRaMED for EditPolicies

Unused Configuration options:

      RML_FEATURE_MODEL,
      ROLE_TYPES, ROLE_STRUCTURE, , , ,
      , , DEPENDENT, ON_COMPARTMENTS, ON_RELATIONSHIPS,
      ROLE_CONSTRAINTS, ROLE_IMPLICATION, ROLE_PROHIBITION, ROLE_EQUIVALENCE, GROUP_CONSTRAINTS,
      OCCURRENCE_CONSTRAINTS, , RELATIONSHIP_CONSTRAINTS, RELATIONSHIP_CARDINALITY,
      , PARTHOOD_CONSTRAINTS, INTER_RELATIONSHIP_CONSTRAINTS,
      COMPARTMENT_TYPES, , COMPARTMENT_PROPERTIES, COMPARTMENT_BEHAVIOR,
      COMPARTMENT_INHERITANCE, PARTICIPANTS, CONTAINS_COMPARTMENTS,
      PLAYABLE_BY_DEFINING_COMPARTMENT, DATA_TYPES, ,COMPARTMENT_STRUCTURE

Trivial Pallete Entry Rules https://github.com/leondart/FRaMED/wiki/Palette-Entry-Visibility#step-in-table

Configuration Description EditPolicy Code
RML_FEATURE_MODEL - - -
RELATIONSHIPS, INTRA_RELATIONSHIP_CONSTRAINTS nur wenn aktiviert dürfen RELATIONSHIPS erzeugt werden - -
PLAYERS (NATURALS, ROLES, COMPARTMENTS, DATES) (von wo aus darf fullfilment gezogen werden) -> (wenn roles aktiviert, dann Compartments dürfen compartments spielen) - -
ROLE_INHERITANCE man darf vererbungspfeile ziehen (nur relevant für step in) - -
ROLE_PROPERTIES, ROLE_BEHAVIOR attribute/methoden dürfen aus der Pallete dahin ziehen zum entsprechenden role-type - -
DATA_TYPE_INHERITANCE Wenn Datatype-Inheritance aktiviert: vererbung zwischen -types - -
PLAYABLE When FULFILLMENT is set, show FULFILLMENT in pallete entry FULFILLMENT -
-

More Complex rules

Description EditPolicy Code
When COMPARTMENT is not set, only RoleModel can be added - -
If Compartment c1 contains Compartment c2 then all roles in c1 can play other roles - -
when the parent of a model is a compartmenttype or a rolegroup only roletype and rolegroup instances can be added - -
when the parent of a model is a group or the model is the root model than only naturaltype, compartmenttype and group instances can be added to the model - -
installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new ConnectionEndpointEditPolicy()); 
installEditPolicy(EditPolicy.CONNECTION_ROLE, new ORMRelationConnectionEditPolicy()); 
installEditPolicy(EditPolicy.CONNECTION_BENDPOINTS_ROLE, new ORMRelationBendpointEditPolicy()); 
installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new ORMRelationGraphicalNodeEditPolicy()); 
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ORMNamedElementDirectEditPolicy()); 
installEditPolicy(EditPolicy.LAYOUT_ROLE, new ORMSegmentXYLayoutPolicy()); 
installEditPolicy(EditPolicy.LAYOUT_ROLE, new ORMSegmentXYLayoutPolicy()); 
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ORMNamedElementDirectEditPolicy()); 
installEditPolicy("Snap Feedback", new SnapFeedbackPolicy()); 
installEditPolicy(EditPolicy.COMPONENT_ROLE, new ORMShapeComponentEditPolicy(this)); 
installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new ORMShapeGraphicalNodeEditPolicy()); 
installEditPolicy(EditPolicy.LAYOUT_ROLE, new ORMModelXYLayoutPolicy()); 
installEditPolicy(EditPolicy.CONTAINER_ROLE, new ORMContainerEditPolicy()); 
installEditPolicy("Snap Feedback", new SnapFeedbackPolicy()); 
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ORMNamedElementDirectEditPolicy()); 
installEditPolicy(EditPolicy.COMPONENT_ROLE, new ORMAttributeOperationComponentEditPolicy()); 

Advanced rules

Description EditPolicy Code
Check entity names with regular expression - -

Clone this wiki locally