package org.eclipse.uml2.diagram.sequence.internal.layout.model;
import org.eclipse.uml2.diagram.sequence.internal.layout.GeometryConstants;
import org.eclipse.uml2.diagram.sequence.internal.layout.abstractgde.AbsElementPropertyAccess;
import org.eclipse.uml2.diagram.sequence.internal.layout.abstractgde.AbsNode;
/**
*
*/
public class LMInteractionOperand extends LMFrame {
LMInteractionOperand(AbsNode gdeNode) {
super(gdeNode);
//String debugText = (String) gdeNode.getProperty("hello");
//if (debugText == null) {
// throw new RuntimeException("Cannot find debug property in "+gdeNode);
//}
myDelimitLineLayouter = AbsElementPropertyAccess.getInstance().getDelimitLineLayouter(gdeNode);
}
public interface DelimitLineLayouter {
void setX(int x);
void setY(int pos);
void setHeight(int height);
void setWidth(int width);
}
public int getInnerHorizontalPadding() {
return GeometryConstants.Frames.INTERATCTION_OPERAND_INNER_SPACE_HORIZONTAL;
}
public int getOuterHorizontalPadding() {
return 0;
}
boolean hasVisibleMountingLinks() {
return false;
}
public void setLeftBorderPosByTool(int pos) {
// CombinedFragment should manage my position
}
public void setRightBorderPosByTool(int pos) {
// CombinedFragment should manage my position
}
public void setLeftBorderPosByLayout(int pos) {
// CombinedFragment should manage my position
}
public void setRightBorderPosByLayout(int pos) {
// CombinedFragment should manage my position
}
protected void setWidth(int width) {
super.setWidth(width);
myDelimitLineLayouter.setWidth(width);
//System.out.println("[LMInteractionOperand.setTopBorderPos] x="+myDelimitLineGdeNode.getX()+", width="+myDelimitLineGdeNode.getWidth()+", y="+myDelimitLineGdeNode.getY()+", height="+myDelimitLineGdeNode.getHeight());
}
protected void setX(int x) {
super.setX(x);
myDelimitLineLayouter.setX(x);
}
public void setTopBorderPos(int pos) {
if (isFirst()) {
myDelimitLineLayouter.setHeight(0);
} else {
myDelimitLineLayouter.setHeight(1);
}
super.setTopBorderPos(pos);
myDelimitLineLayouter.setY(pos);
}
private boolean isFirst() {
return getContainer().getChildList().get(0) == this;
}
private final DelimitLineLayouter myDelimitLineLayouter;
}