blob: 629c3a48b89f1ee54655b0fa884f2b92bb12ce79 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.draw2d.examples.uml;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.draw2d.*;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.FigureCanvas;
import org.eclipse.draw2d.geometry.PointList;
import org.eclipse.draw2d.geometry.Rectangle;
public class UMLClassDiagram {
public static void main(String[] args) {
Display d = new Display();
Shell shell = new Shell(d);
shell.setLayout(new FillLayout());
FigureCanvas canvas = new FigureCanvas(shell);
canvas.setBackground(ColorConstants.white);
Figure diagram = new Figure();
diagram.setLayoutManager(new XYLayout());
canvas.setContents(diagram);
IFigure c1, c2;
diagram.add(c1 = new UMLClassFigure(), new Rectangle( 20,20, -1, -1));
diagram.add(c2 = new UMLClassFigure(), new Rectangle(230, 102, -1, -1));
PolylineConnection assoc = new PolylineConnection();
assoc.setTargetAnchor(new ChopboxAnchor(c1));
assoc.setSourceAnchor(new ChopboxAnchor(c2));
PolygonDecoration containment = new PolygonDecoration();
containment.setTemplate(new PointList(new int[]{-2, 0, -1, 1, 0, 0, -1, -1}));
assoc.setTargetDecoration(containment);
diagram.add(assoc);
Label ref = new Label("end1");
ConnectionEndpointLocator locator = new ConnectionEndpointLocator(assoc, false);
locator.setUDistance(8);
assoc.add(ref, locator);
Label connLabel = new Label("connection");
connLabel.setBorder(new LineBorder());
connLabel.setOpaque(true);
connLabel.setBackgroundColor(ColorConstants.tooltipBackground);
assoc.add(connLabel, new ConnectionLocator(assoc, ConnectionLocator.MIDDLE));
diagram.add(new StickyNote(), new Rectangle(180, 10, 90, - 1));
shell.setSize(500, 300);
shell.open();
while (!shell.isDisposed())
while (!d.readAndDispatch())
d.sleep();
}
}