Пример #1
0
  @Override
  public void selfStyleConnection(Object element, GraphConnection connection) {

    // Connections are not rendered in some cases when curved
    // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=373199
    // Seems to be fixed

    connection.setLineWidth(0);
    connection.setTooltip(getTooltip(element));
    connection.setLineColor(ColorConstants.black);

    PolylineConnection conn = (PolylineConnection) connection.getConnectionFigure();

    if (element instanceof ISpecialisationRelationship) {
      conn.setTargetDecoration(SpecialisationConnectionFigure.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 IRealisationRelationship) {
      conn.setTargetDecoration(RealisationConnectionFigure.createFigureTargetDecoration());
      connection.setLineStyle(SWT.LINE_CUSTOM);
      conn.setLineDash(new float[] {4});
    } 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 IUsedByRelationship) {
      conn.setTargetDecoration(UsedByConnectionFigure.createFigureTargetDecoration());
    } else if (element instanceof IAccessRelationship) {
      conn.setTargetDecoration(AccessConnectionFigure.createFigureSourceDecoration());
      conn.setTargetDecoration(AccessConnectionFigure.createFigureTargetDecoration());
      connection.setLineStyle(SWT.LINE_CUSTOM);
      conn.setLineDash(new float[] {1.5f, 3});
    } else if (element instanceof IInfluenceRelationship) {
      conn.setTargetDecoration(InfluenceConnectionFigure.createFigureTargetDecoration());
      connection.setLineStyle(SWT.LINE_CUSTOM);
      conn.setLineDash(new float[] {6, 3});
    }

    conn.setAntialias(SWT.ON);
  }