| /******************************************************************************* |
| * Copyright (c) 2001, 2008 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.wst.xsd.ui.internal.adt.typeviz.design.figures; |
| |
| import java.util.Iterator; |
| import org.eclipse.draw2d.ColorConstants; |
| import org.eclipse.draw2d.Figure; |
| import org.eclipse.draw2d.Graphics; |
| import org.eclipse.draw2d.IFigure; |
| import org.eclipse.draw2d.Label; |
| import org.eclipse.draw2d.ToolbarLayout; |
| import org.eclipse.draw2d.geometry.Rectangle; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.layouts.ColumnData; |
| |
| public class BoxFigure extends Figure |
| { |
| protected ColumnData columnData = new ColumnData(); |
| public HeadingFigure headingFigure; |
| protected Figure contentPane; |
| |
| public boolean isSelected = false; |
| |
| public BoxFigure() |
| { |
| super(); |
| |
| boolean highContrast = false; |
| try |
| { |
| highContrast = Display.getDefault().getHighContrast(); |
| } |
| catch (Exception e) |
| { |
| } |
| if (!highContrast) |
| { |
| setBackgroundColor(ColorConstants.white); |
| } |
| |
| headingFigure = new HeadingFigure(); |
| add(headingFigure); |
| |
| contentPane = new Figure() |
| { |
| public void paint(Graphics graphics) |
| { |
| graphics.fillRectangle(getBounds()); |
| super.paint(graphics); |
| boolean isFirst = false; |
| for (Iterator i = getChildren().iterator(); i.hasNext();) |
| { |
| Figure figure = (Figure) i.next(); |
| if (isFirst) |
| { |
| isFirst = false; |
| } |
| else |
| { |
| Rectangle r = figure.getBounds(); |
| graphics.drawLine(r.x, r.y + 1, r.x + r.width, r.y + 1); |
| } |
| } |
| } |
| }; |
| contentPane.setLayoutManager(new ToolbarLayout()); |
| add(contentPane); |
| headingFigure.setForegroundColor(ColorConstants.black); |
| } |
| |
| public void paint(Graphics graphics) |
| { |
| super.paint(graphics); |
| /* |
| // Fill for the header section |
| // |
| Rectangle r = getBounds().getCopy(); |
| graphics.setBackgroundColor(ColorConstants.darkGray); |
| Color gradient1 = ColorConstants.lightGray; |
| if (isSelected) |
| { |
| gradient1 = ColorConstants.lightBlue; |
| } |
| Color gradient2 = ColorConstants.white; |
| graphics.setForegroundColor(gradient1); |
| graphics.setBackgroundColor(gradient2); |
| graphics.fillGradient(r.x + 1, r.y + 1, r.width - 2, nodeNameLabel.getBounds().height - 1, true); |
| nodeNameLabel.paint(graphics); |
| */ |
| } |
| |
| public IFigure getContentPane() |
| { |
| return contentPane; |
| } |
| |
| public Label getNameLabel() |
| { |
| return headingFigure.getLabel(); |
| } |
| |
| public HeadingFigure getHeadingFigure() |
| { |
| return headingFigure; |
| } |
| |
| public ColumnData getColumnData() |
| { |
| return columnData; |
| } |
| } |