blob: 5ebdcf53a0d81104e02d0b3ea797665f75cf545f [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;
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;
}
}