| /******************************************************************************* |
| * 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; |
| |
| import org.eclipse.swt.graphics.Font; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.swt.widgets.Shell; |
| |
| import org.eclipse.draw2d.FigureCanvas; |
| import org.eclipse.draw2d.IFigure; |
| import org.eclipse.draw2d.rap.swt.SWT; |
| |
| /** |
| * A baseclass for draw2d examples. |
| * @author hudsonr |
| */ |
| public abstract class AbstractExample { |
| |
| protected static final Font COURIER = new Font(null, "Courier", 9, 0);//$NON-NLS-1$ |
| protected static final Font BOLD = new Font(null, "Helvetica", 10, SWT.BOLD);//$NON-NLS-1$ |
| protected static final Font ITALICS = new Font(null, "Helvetica", 10, SWT.ITALIC);//$NON-NLS-1$ |
| protected static final Font HEADING_1 = new Font(null, "Helvetica", 15, SWT.BOLD);//$NON-NLS-1$ |
| protected FigureCanvas fc; |
| protected IFigure contents; |
| |
| protected Shell shell; |
| |
| protected void run(){ |
| Display d = Display.getDefault(); |
| shell = new Shell(d, getShellStyle()); |
| String appName = getClass().getName(); |
| appName = appName.substring(appName.lastIndexOf('.')+1); |
| shell.setText(appName); |
| shell.setLayout(new GridLayout(2, false)); |
| setFigureCanvas(new FigureCanvas(shell)); |
| getFigureCanvas().setContents(contents = getContents()); |
| getFigureCanvas().getViewport().setContentsTracksHeight(true); |
| getFigureCanvas().getViewport().setContentsTracksWidth(true); |
| getFigureCanvas().setLayoutData(new GridData(GridData.FILL_BOTH)); |
| hookShell(shell); |
| sizeShell(); |
| shell.open(); |
| while (!shell.isDisposed()) |
| while (!d.readAndDispatch()) |
| d.sleep(); |
| } |
| |
| /** |
| * Runs the demo. |
| */ |
| public void run(Composite parent) { |
| Composite main = new Composite(parent, SWT.NONE); |
| String appName = getClass().getName(); |
| appName = appName.substring(appName.lastIndexOf('.') + 1); |
| main.setLayout(new GridLayout(2, false)); |
| setFigureCanvas(new FigureCanvas(main)); |
| getFigureCanvas().setContents(contents = getContents()); |
| getFigureCanvas().getViewport().setContentsTracksHeight(true); |
| getFigureCanvas().getViewport().setContentsTracksWidth(true); |
| getFigureCanvas().setLayoutData(new GridData(GridData.FILL_BOTH)); |
| hookShell(main); |
| } |
| |
| protected int getShellStyle() { |
| return SWT.SHELL_TRIM; |
| } |
| |
| protected void sizeShell() { |
| shell.pack(); |
| } |
| |
| protected abstract IFigure getContents(); |
| |
| protected FigureCanvas getFigureCanvas(){ |
| return fc; |
| } |
| |
| protected void hookShell(Composite main){} |
| |
| protected void setFigureCanvas(FigureCanvas canvas){ |
| this.fc = canvas; |
| } |
| |
| } |