use of com.archimatetool.model.ICompositionRelationship in project archi by archimatetool.
the class ZestViewerLabelProvider method selfStyleConnection.
// ========================================================================================
// ISelfStyleProvider
// ========================================================================================
@Override
public void selfStyleConnection(Object element, GraphConnection connection) {
connection.setLineWidth(0);
connection.setTooltip(getTooltip(element));
connection.setLineColor(ColorConstants.black);
connection.setText(getText(element));
PolylineConnection conn = (PolylineConnection) connection.getConnectionFigure();
if (element instanceof ISpecializationRelationship) {
conn.setTargetDecoration(SpecializationConnectionFigure.createFigureTargetDecoration());
} else if (element instanceof ICompositionRelationship) {
conn.setSourceDecoration(CompositionConnectionFigure.createFigureSourceDecoration());
} else if (element instanceof IAggregationRelationship) {
conn.setSourceDecoration(AggregationConnectionFigure.createFigureSourceDecoration());
} else if (element instanceof IAssignmentRelationship) {
conn.setSourceDecoration(AssignmentConnectionFigure.createFigureSourceDecoration());
conn.setTargetDecoration(AssignmentConnectionFigure.createFigureTargetDecoration());
} else if (element instanceof IRealizationRelationship) {
conn.setTargetDecoration(RealizationConnectionFigure.createFigureTargetDecoration());
connection.setLineStyle(SWT.LINE_CUSTOM);
conn.setLineDash(new float[] { 2 });
} else if (element instanceof ITriggeringRelationship) {
conn.setTargetDecoration(TriggeringConnectionFigure.createFigureTargetDecoration());
} else if (element instanceof IFlowRelationship) {
conn.setTargetDecoration(FlowConnectionFigure.createFigureTargetDecoration());
connection.setLineStyle(SWT.LINE_CUSTOM);
conn.setLineDash(new float[] { 6, 3 });
} else if (element instanceof IServingRelationship) {
conn.setTargetDecoration(ServingConnectionFigure.createFigureTargetDecoration());
} else if (element instanceof IAccessRelationship) {
switch(((IAccessRelationship) element).getAccessType()) {
case IAccessRelationship.WRITE_ACCESS:
default:
conn.setSourceDecoration(null);
// arrow at target endpoint
conn.setTargetDecoration(AccessConnectionFigure.createFigureTargetDecoration());
break;
case IAccessRelationship.READ_ACCESS:
// arrow at source endpoint
conn.setSourceDecoration(AccessConnectionFigure.createFigureTargetDecoration());
conn.setTargetDecoration(null);
break;
case IAccessRelationship.UNSPECIFIED_ACCESS:
// no arrows
conn.setSourceDecoration(null);
conn.setTargetDecoration(null);
break;
case IAccessRelationship.READ_WRITE_ACCESS:
// both arrows
conn.setSourceDecoration(AccessConnectionFigure.createFigureTargetDecoration());
conn.setTargetDecoration(AccessConnectionFigure.createFigureTargetDecoration());
break;
}
connection.setLineStyle(SWT.LINE_CUSTOM);
conn.setLineDash(new float[] { 2 });
} else if (element instanceof IInfluenceRelationship) {
conn.setTargetDecoration(InfluenceConnectionFigure.createFigureTargetDecoration());
connection.setLineStyle(SWT.LINE_CUSTOM);
conn.setLineDash(new float[] { 6, 3 });
}
conn.setAntialias(SWT.ON);
}
use of com.archimatetool.model.ICompositionRelationship in project archi by archimatetool.
the class NestedElementsChecker method isNestedWithoutValidRelation.
boolean isNestedWithoutValidRelation(IDiagramModelArchimateObject parent, IDiagramModelArchimateObject child) {
IArchimateElement parentElement = parent.getArchimateElement();
IArchimateElement childElement = child.getArchimateElement();
// Ignore nested Junctions
if (childElement instanceof IJunction) {
return false;
}
// Specialization relationship goes the other way around
for (IArchimateRelationship relation : parentElement.getTargetRelationships()) {
if (relation.getSource() == childElement) {
if (relation instanceof ISpecializationRelationship) {
return false;
}
}
}
// Other relationships
for (IArchimateRelationship relation : parentElement.getSourceRelationships()) {
if (relation.getTarget() == childElement) {
if (relation instanceof ICompositionRelationship || relation instanceof IAggregationRelationship || relation instanceof IAssignmentRelationship || relation instanceof IRealizationRelationship || relation instanceof IAccessRelationship) {
return false;
}
}
}
return true;
}
Aggregations