blob: 0dc5ce94c23a9338f960845b7cb2fa08eca572cd [file] [log] [blame]
/*******************************************************************************
* <copyright>
*
* Copyright (c) 2012, 2012 SAP AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Benjamin Schmeling - mwenz - Bug 367483 - Support composite connections
*
* </copyright>
*
*******************************************************************************/
package org.eclipse.graphiti.testtool.sketch.features.create;
import java.util.Iterator;
import org.eclipse.emf.common.util.EList;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.mm.pictograms.Anchor;
import org.eclipse.graphiti.mm.pictograms.CompositeConnection;
import org.eclipse.graphiti.mm.pictograms.Connection;
import org.eclipse.graphiti.mm.pictograms.CurvedConnection;
import org.eclipse.graphiti.services.Graphiti;
/**
* The Class SketchCreateCompositeConnectionFeature.
*/
public class SketchCreateCompositeConnectionFeature extends AbstractSketchCreateSimpleConnectionFeature {
/**
* Instantiates a new sketch create composite connection feature.
*
* @param fp
* the fp
* @param name
* the name
* @param description
* the description
*/
public SketchCreateCompositeConnectionFeature(IFeatureProvider fp, String name, String description) {
super(fp, name, description);
}
@Override
protected Connection createConnection() {
CompositeConnection compositeConnection = Graphiti.getPeCreateService().createCompositeConnection(getDiagram());
CurvedConnection curvedConnection1 = Graphiti.getPeCreateService().createCurvedConnection(
new double[] { 0.1d, -50d, 0.9d, -50d }, getDiagram());
compositeConnection.getChildren().add(curvedConnection1);
CurvedConnection curvedConnection2 = Graphiti.getPeCreateService().createCurvedConnection(
new double[] { 0.1d, 50d, 0.9d, 50d }, getDiagram());
compositeConnection.getChildren().add(curvedConnection2);
return compositeConnection;
}
protected Connection createConnection(Anchor startAnchor, Anchor endAnchor) {
Connection connection = createConnection();
createVisualization(connection);
connection.getGraphicsAlgorithm().setLineVisible(false);
setAnchors(startAnchor, endAnchor, connection);
EList<CurvedConnection> children = ((CompositeConnection) connection).getChildren();
for (Iterator<CurvedConnection> childConnections = children.iterator(); childConnections.hasNext();) {
Connection childConnection = childConnections.next();
createVisualization(childConnection);
}
return connection;
}
}