| /******************************************************************************* |
| * 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.layouts; |
| |
| import org.eclipse.swt.events.SelectionAdapter; |
| import org.eclipse.swt.events.SelectionEvent; |
| import org.eclipse.swt.layout.FillLayout; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| import org.eclipse.swt.widgets.Button; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Group; |
| import org.eclipse.swt.widgets.Label; |
| import org.eclipse.swt.widgets.Scale; |
| |
| import org.eclipse.draw2d.ColorConstants; |
| import org.eclipse.draw2d.Ellipse; |
| import org.eclipse.draw2d.Figure; |
| import org.eclipse.draw2d.FlowLayout; |
| import org.eclipse.draw2d.IFigure; |
| import org.eclipse.draw2d.LineBorder; |
| import org.eclipse.draw2d.RectangleFigure; |
| import org.eclipse.draw2d.RoundedRectangle; |
| import org.eclipse.draw2d.Shape; |
| import org.eclipse.draw2d.ToolbarLayout; |
| import org.eclipse.draw2d.examples.AbstractExample; |
| import org.eclipse.swt.SWT; |
| |
| /** |
| * @author hudsonr |
| * Created on Apr 30, 2003 |
| */ |
| public class ToolbarLayoutExample extends AbstractExample { |
| |
| ToolbarLayout layout; |
| |
| Shape ellipse, rect, roundRect, ellipse2, rect2; |
| |
| public static void main(String[] args) { |
| new ToolbarLayoutExample().run(); |
| } |
| |
| /** |
| * @see org.eclipse.draw2d.examples.AbstractExample#getContents() |
| */ |
| protected IFigure getContents() { |
| Figure container = new Figure(); |
| container.setBorder(new LineBorder()); |
| container.setLayoutManager(layout = new ToolbarLayout(true)); |
| |
| ellipse = new Ellipse(); |
| ellipse.setBackgroundColor(ColorConstants.blue); |
| ellipse.setSize(60,40); |
| container.add(ellipse); |
| |
| rect = new RectangleFigure(); |
| rect.setBackgroundColor(ColorConstants.red); |
| rect.setSize(30,70); |
| container.add(rect); |
| |
| roundRect = new RoundedRectangle(); |
| roundRect.setBackgroundColor(ColorConstants.yellow); |
| roundRect.setSize(90,30); |
| container.add(roundRect); |
| |
| rect2 = new RectangleFigure(); |
| rect2.setBackgroundColor(ColorConstants.gray); |
| rect2.setSize(50,80); |
| container.add(rect2); |
| |
| ellipse2 = new Ellipse(); |
| ellipse2.setBackgroundColor(ColorConstants.green); |
| ellipse2.setSize(50,50); |
| container.add(ellipse2); |
| |
| return container; |
| } |
| |
| /** |
| * @see org.eclipse.draw2d.examples.AbstractExample#hookShell() |
| */ |
| protected void hookShell() { |
| Composite composite = new Composite(shell, 0); |
| composite.setLayoutData(new GridData(GridData.FILL_VERTICAL)); |
| |
| composite.setLayout(new GridLayout()); |
| |
| final Button horizontal = new Button(composite, SWT.CHECK); |
| horizontal.setText("Horizontal"); |
| horizontal.setSelection(true); |
| horizontal.addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| layout.setVertical(layout.isHorizontal()); |
| if (layout.getStretchMinorAxis()) |
| resetShapes(); |
| contents.revalidate(); |
| shell.layout(true); |
| } |
| }); |
| |
| final Button stretch = new Button(composite, SWT.CHECK); |
| stretch.setText("Stretch Minor Axis"); |
| stretch.setSelection(false); |
| stretch.addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| layout.setStretchMinorAxis(!layout.getStretchMinorAxis()); |
| resetShapes(); |
| contents.revalidate(); |
| shell.layout(true); |
| } |
| }); |
| { |
| Group major = new Group(composite, 0); |
| major.setLayout(new FillLayout(SWT.VERTICAL)); |
| major.setText("Minor Axis"); |
| |
| Button left = new Button(major, SWT.RADIO); |
| left.setText("Top/Left"); |
| left.setSelection(true); |
| left.addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| layout.setMinorAlignment(FlowLayout.ALIGN_LEFTTOP); |
| contents.revalidate(); |
| } |
| }); |
| |
| Button center = new Button(major, SWT.RADIO); |
| center.setText("Middle/Center"); |
| center.addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| layout.setMinorAlignment(FlowLayout.ALIGN_CENTER); |
| contents.revalidate(); |
| } |
| }); |
| |
| Button right = new Button(major, SWT.RADIO); |
| right.setText("Buttom/Right"); |
| right.addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| layout.setMinorAlignment(FlowLayout.ALIGN_RIGHTBOTTOM); |
| contents.revalidate(); |
| } |
| }); |
| |
| final Scale spacing = new Scale(major, 0); |
| spacing.setMinimum(0); |
| spacing.setMaximum(20); |
| spacing.setSelection(5); |
| spacing.addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| layout.setSpacing(spacing.getSelection()); |
| contents.revalidate(); |
| } |
| }); |
| Label spacingLabel = new Label(major, SWT.CENTER); |
| spacingLabel.setText("Spacing"); |
| |
| } |
| } |
| |
| private void resetShapes() { |
| rect.setSize(30,70); |
| rect2.setSize(50,80); |
| roundRect.setSize(90,30); |
| ellipse.setSize(60,40); |
| ellipse2.setSize(50,50); |
| } |
| |
| } |