Skip to content
Snippets Groups Projects
Select Git revision
  • ba9b092e82606a8858d02a6b1571894a8a8954b9
  • master default protected
2 results

RelationshipPattern.java

  • RelationshipPattern.java 17.51 KiB
    package relationship;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.eclipse.graphiti.features.IFeature;
    import org.eclipse.graphiti.features.context.IAddConnectionContext;
    import org.eclipse.graphiti.features.context.IAddContext;
    import org.eclipse.graphiti.features.context.ICreateConnectionContext;
    import org.eclipse.graphiti.features.context.IDeleteContext;
    import org.eclipse.graphiti.features.context.IReconnectionContext;
    import org.eclipse.graphiti.features.context.impl.AddConnectionContext;
    import org.eclipse.graphiti.features.context.impl.CustomContext;
    import org.eclipse.graphiti.features.context.impl.DeleteContext;
    import org.eclipse.graphiti.features.context.impl.ReconnectionContext;
    import org.eclipse.graphiti.features.custom.ICustomFeature;
    import org.eclipse.graphiti.mm.algorithms.Polyline;
    import org.eclipse.graphiti.mm.algorithms.Rectangle;
    import org.eclipse.graphiti.mm.algorithms.Text;
    import org.eclipse.graphiti.mm.pictograms.Anchor;
    import org.eclipse.graphiti.mm.pictograms.Connection;
    import org.eclipse.graphiti.mm.pictograms.ConnectionDecorator;
    import org.eclipse.graphiti.mm.pictograms.Diagram;
    import org.eclipse.graphiti.mm.pictograms.PictogramElement;
    import org.framed.iorm.featuremodel.FRaMEDConfiguration;
    import org.framed.iorm.featuremodel.FRaMEDFeature;
    import org.framed.iorm.model.Model;
    import org.framed.iorm.model.NamedElement;
    import org.framed.iorm.model.OrmFactory;
    import org.framed.iorm.model.Relation;
    import org.framed.iorm.model.Type;
    import org.framed.iorm.ui.FRaMEDConnectionPattern;
    import org.framed.iorm.ui.FRaMEDDeleteConnectionFeature;
    import org.framed.iorm.ui.UIUtil;
    import org.framed.iorm.ui.editPolicy.EditPolicyService;
    import org.framed.iorm.ui.exceptions.NoModelFoundException;
    import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
    import org.framed.iorm.ui.palette.PaletteCategory;
    import org.framed.iorm.ui.palette.PaletteView;
    import org.framed.iorm.ui.palette.ViewVisibility;
    
    /**
     * This graphiti pattern is used to work with {@link Relation}s
     * of the type {@link Type#RELATIONSHIP} in the editor.
     * <p>
     * It deals with the following aspects of Relationships:<br>
     * (1) creating relationships, especially their business object<br>
     * (2) adding relationships to the diagram, especially their pictogram elements<br>
     * @author Kevin Kassin
     */
    public class RelationshipPattern extends FRaMEDConnectionPattern {
    	
    	/**
    	 * the object to get names, ids and so on for this feature
    	 */
    	Literals literals = new Literals();
    	
    	/**
    	 * the feature palette descriptor manages the palette visibility, see {@link FeaturePaletteDescriptor}
    	 */
    	private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
    			PaletteCategory.RELATIONS_CATEGORY,
    			ViewVisibility.COMPARTMENT_VIEW) {
    				@Override
    				public boolean featureExpression(List<String> framedFeatureNames, PaletteView paletteView) {
    					return framedFeatureNames.contains("Relationships");
    			}	};
    
    	/**
    	 * class constructor