blob: d158a201592b34e89935de6bb9a82373837f7a59 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 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.graphics.*;
import org.eclipse.draw2d.*;
import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.draw2d.rap.swt.SWT;
public class UMLClassFigure extends Figure {
static final Color BG = new Color(null, 242, 240, 255);
static Image classImage =
new Image(null, UMLClassFigure.class.getResourceAsStream("class_obj.gif"));
static Font BOLD = new Font(null, "", 10, SWT.BOLD);
public UMLClassFigure() {
class SeparatorBorder extends MarginBorder {
SeparatorBorder () {
super(3, 5, 3, 5);
}
public void paint(IFigure figure, Graphics graphics, Insets insets) {
Rectangle where = getPaintRectangle(figure, insets);
graphics.drawLine(where.getTopLeft(), where.getTopRight());
}
}
Label header = new Label("ClassName", classImage);
header.setFont(BOLD);
header.setBorder(new MarginBorder(3, 5, 3, 5));
Figure attributes = new Figure();
ToolbarLayout layout;
attributes.setLayoutManager(layout = new ToolbarLayout());
layout.setStretchMinorAxis(false);
attributes.add(new Label("name : String"));
attributes.add(new Label("ID : String"));
attributes.setBorder(new SeparatorBorder());
Figure methods = new Figure();
methods.setLayoutManager(layout = new ToolbarLayout());
layout.setStretchMinorAxis(false);
methods.add(new Label("foo() : int"));
methods.add(new Label("bar() : char"));
methods.setBorder(new SeparatorBorder());
setBorder(new LineBorder());
setLayoutManager(new ToolbarLayout());
add(header);
add(attributes);
add(methods);
setOpaque(true);
setBackgroundColor(BG);
}
}