FixedConnectionAnchor
4105 단어 Connection
public class HelloWorld1 {
public static void main(String args[]) {
Shell shell = new Shell();
shell.setText("Draw2d Hello World");
shell.setSize(400, 400);
shell.open();
// create content 4 shell.
createContent4Shell(shell);
while (!shell.isDisposed ()) {
if (!Display.getDefault().readAndDispatch ())
Display.getDefault().sleep ();
}
}
private static void createContent4Shell(Shell shell) {
Panel rootFigure = new Panel();
rootFigure.setLayoutManager(new XYLayout());
IFigure figure1 = new Ellipse();
IFigure figure2 = new org.eclipse.draw2d.RectangleFigure();
// IFigure figure2 = new Triangle();
// --------------------------------------------------------
// add connection
PolylineConnection connection = new PolylineConnection();
connection.setSourceAnchor(new ChopboxAnchor(figure1));
FixedConnectionAnchor anchor = new FixedConnectionAnchor(figure2);
// anchor.leftToRight = false;
// anchor.topDown = false;
// anchor.offsetH = 10;
anchor.offsetV = 10;
connection.setTargetAnchor(anchor);
// add connection
// --------------------------------------------------------
rootFigure.add(figure1,new Rectangle(10,10,60,30));
rootFigure.add(figure2,new Rectangle(180,10,60,60));
rootFigure.add(connection);
LightweightSystem lws = new LightweightSystem(shell);
lws.setContents(rootFigure);
}
}
class FixedConnectionAnchor extends AbstractConnectionAnchor {
public boolean leftToRight = true;
public int offsetH;
public int offsetV;
public boolean topDown = true;
public FixedConnectionAnchor(IFigure owner) {
super(owner);
}
/**
* @see org.eclipse.draw2d.AbstractConnectionAnchor#ancestorMoved(IFigure)
*/
public void ancestorMoved(IFigure figure) {
if (figure instanceof ScalableFigure)
return;
super.ancestorMoved(figure);
}
public Point getLocation(Point reference) {
Rectangle r = getOwner().getBounds();
int x, y;
if (topDown)
y = r.y + offsetV;
else
y = r.bottom() - 1 - offsetV;
if (leftToRight)
x = r.x + offsetH;
else
x = r.right() - 1 - offsetH;
Point p = new PrecisionPoint(x, y);
getOwner().translateToAbsolute(p);
return p;
}
public Point getReferencePoint() {
return getLocation(null);
}
/**
* @param offsetH
* The offsetH to set.
*/
public void setOffsetH(int offsetH) {
this.offsetH = offsetH;
fireAnchorMoved();
}
/**
* @param offsetV
* The offsetV to set.
*/
public void setOffsetV(int offsetV) {
this.offsetV = offsetV;
fireAnchorMoved();
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o) {
if (o instanceof FixedConnectionAnchor) {
FixedConnectionAnchor fa = (FixedConnectionAnchor) o;
if (fa.leftToRight == this.leftToRight
&& fa.topDown == this.topDown && fa.offsetH == this.offsetH
&& fa.offsetV == this.offsetV
&& fa.getOwner() == this.getOwner()) {
return true;
}
}
return false;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return ((this.leftToRight ? 31 : 0) + (this.topDown ? 37 : 0)
+ this.offsetH * 43 + this.offsetV * 47)
^ this.getOwner().hashCode();
}
}
Fixed Connection Anchor 는 확실한 점 을 Anchor 로 지정 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
flash LocalConnection Error #2044: 처리되지 않은 AsyncErrorEvent:오늘 가장 간단한 flash Local Connection 예를 하나 해볼게요. 항상 실패합니다. 다음 오류를 보고하십시오. Error #2044: 처리되지 않은 AsyncErrorEvent:.text=Error #...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.