package org.eclipse.uml2.diagram.sequence.figures;
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
import org.eclipse.swt.graphics.Color;
import org.eclipse.uml2.diagram.common.editparts.NeedsParentEditPart;
import org.eclipse.uml2.diagram.common.layered.MultiLayeredContainer;
import org.eclipse.uml2.diagram.common.layered.MultilayeredFigure;
import org.eclipse.uml2.diagram.common.layered.MultilayeredSupport;
import org.eclipse.uml2.diagram.common.layered.MultilayeredSupportImpl;
public class ExecutionSpecificationShape extends LifelineBracketContainerShape implements MultilayeredFigure, NeedsParentEditPart {
private final MultilayeredSupportImpl myMultilayeredSupport;
private final CrossFigure myCrossFigure;
public ExecutionSpecificationShape(){
setFill(true);
setOpaque(false);
setOutline(true);
myMultilayeredSupport = new MultilayeredSupportImpl();
myMultilayeredSupport.setLayerToFigure(MultiLayeredContainer.MIDDLE_LAYER, this);
myMultilayeredSupport.setLayerToContentPane(MultiLayeredContainer.MIDDLE_LAYER, this);
myCrossFigure = new CrossFigure(this);
myMultilayeredSupport.setLayerToFigure(MultiLayeredContainer.FOREGROUND_LAYER, myCrossFigure);
myMultilayeredSupport.setLayerToContentPane(MultiLayeredContainer.FOREGROUND_LAYER, myCrossFigure);
//myCrossFigure.setVisible(false);
}
public void hookParentEditPart(GraphicalEditPart parentEditPart) {
myMultilayeredSupport.setParentFromParentEditPart(parentEditPart);
}
public MultilayeredSupport getMultilayeredSupport() {
return myMultilayeredSupport;
}
public void setForegroundColor(Color fg) {
super.setForegroundColor(fg);
if (myCrossFigure != null) {
myCrossFigure.setForegroundColor(fg);
}
}
public void setCrossVisible(boolean visible){
myCrossFigure.setVisible(visible);
}
@Override
protected void layout() {
super.layout();
if (myCrossFigure != null) {
myCrossFigure.revalidate();
}
}
}