/******************************************************************************* * Copyright (c) 2000, 2007 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.swt.examples.controlexample; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Widget; /** * <code>ButtonTab</code> is the class that demonstrates SWT buttons. */ class ButtonTab extends AlignableTab { /* Example widgets and groups that contain them */ Button button1, button2, button3, button4, button5, button6, button7, button8, button9; /* Style widgets added to the "Style" group */ Button pushButton, checkButton, radioButton, toggleButton, arrowButton, flatButton; Group textButtonGroup, imageButtonGroup, imagetextButtonGroup; /* Alignment widgets added to the "Control" group */ Button upButton, downButton; /** * Creates the Tab within a given instance of ControlExample. */ ButtonTab(ControlExample instance) { super(instance); } /** * Creates the "Control" group. */ void createControlGroup() { super.createControlGroup(); /* Create the controls */ upButton = new Button(alignmentGroup, SWT.RADIO); upButton.setText(ControlExample.getResourceString("Up")); downButton = new Button(alignmentGroup, SWT.RADIO); downButton.setText(ControlExample.getResourceString("Down")); /* Add the listeners */ SelectionListener selectionListener = new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { if (!((Button) event.widget).getSelection()) return; setExampleWidgetAlignment(); } }; upButton.addSelectionListener(selectionListener); downButton.addSelectionListener(selectionListener); } /** * Creates the "Example" group. */ void createExampleGroup() { super.createExampleGroup(); /* Create a group for text buttons */ textButtonGroup = new Group(exampleGroup, SWT.NONE); GridLayout gridLayout = new GridLayout(); textButtonGroup.setLayout(gridLayout); gridLayout.numColumns = 3; textButtonGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); textButtonGroup.setText(ControlExample.getResourceString("Text_Buttons")); /* Create a group for the image buttons */ imageButtonGroup = new Group(exampleGroup, SWT.NONE); gridLayout = new GridLayout(); imageButtonGroup.setLayout(gridLayout); gridLayout.numColumns = 3; imageButtonGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); imageButtonGroup.setText(ControlExample.getResourceString("Image_Buttons")); /* Create a group for the image and text buttons */ imagetextButtonGroup = new Group(exampleGroup, SWT.NONE); gridLayout = new GridLayout(); imagetextButtonGroup.setLayout(gridLayout); gridLayout.numColumns = 3; imagetextButtonGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); imagetextButtonGroup.setText(ControlExample.getResourceString("Image_Text_Buttons")); } /** * Creates the "Example" widgets. */ void createExampleWidgets() { /* Compute the widget style */ int style = getDefaultStyle(); if (pushButton.getSelection()) style |= SWT.PUSH; if (checkButton.getSelection()) style |= SWT.CHECK; if (radioButton.getSelection()) style |= SWT.RADIO; if (toggleButton.getSelection()) style |= SWT.TOGGLE; if (flatButton.getSelection()) style |= SWT.FLAT; if (borderButton.getSelection()) style |= SWT.BORDER; if (leftButton.getSelection()) style |= SWT.LEFT; if (rightButton.getSelection()) style |= SWT.RIGHT; if (arrowButton.getSelection()) { style |= SWT.ARROW; if (upButton.getSelection()) style |= SWT.UP; if (downButton.getSelection()) style |= SWT.DOWN; } else if (centerButton.getSelection()) style |= SWT.CENTER; /* Create the example widgets */ button1 = new Button(textButtonGroup, style); button1.setText(ControlExample.getResourceString("One")); button2 = new Button(textButtonGroup, style); button2.setText(ControlExample.getResourceString("Two")); button3 = new Button(textButtonGroup, style); button3.setText(ControlExample.getResourceString("Three")); button4 = new Button(imageButtonGroup, style); button4.setImage(instance.images[ControlExample.ciClosedFolder]); button5 = new Button(imageButtonGroup, style); button5.setImage(instance.images[ControlExample.ciOpenFolder]); button6 = new Button(imageButtonGroup, style); button6.setImage(instance.images[ControlExample.ciTarget]); button7 = new Button(imagetextButtonGroup, style); button7.setText(ControlExample.getResourceString("One")); button7.setImage(instance.images[ControlExample.ciClosedFolder]); button8 = new Button(imagetextButtonGroup, style); button8.setText(ControlExample.getResourceString("Two")); button8.setImage(instance.images[ControlExample.ciOpenFolder]); button9 = new Button(imagetextButtonGroup, style); button9.setText(ControlExample.getResourceString("Three")); button9.setImage(instance.images[ControlExample.ciTarget]); } /** * Creates the "Style" group. */ void createStyleGroup() { super.createStyleGroup(); /* Create the extra widgets */ pushButton = new Button(styleGroup, SWT.RADIO); pushButton.setText("SWT.PUSH"); checkButton = new Button(styleGroup, SWT.RADIO); checkButton.setText("SWT.CHECK"); radioButton = new Button(styleGroup, SWT.RADIO); radioButton.setText("SWT.RADIO"); toggleButton = new Button(styleGroup, SWT.RADIO); toggleButton.setText("SWT.TOGGLE"); arrowButton = new Button(styleGroup, SWT.RADIO); arrowButton.setText("SWT.ARROW"); flatButton = new Button(styleGroup, SWT.CHECK); flatButton.setText("SWT.FLAT"); borderButton = new Button(styleGroup, SWT.CHECK); borderButton.setText("SWT.BORDER"); } /** * Gets the "Example" widget children. */ Widget[] getExampleWidgets() { return new Widget[] { button1, button2, button3, button4, button5, button6, button7, button8, button9 }; } /** * Returns a list of set/get API method names (without the set/get prefix) that can be used to set/get values in the * example control(s). */ String[] getMethodNames() { return new String[] { "Selection", "Text", "ToolTipText" }; } /** * Gets the text for the tab folder item. */ String getTabText() { return "Button"; } /** * Sets the alignment of the "Example" widgets. */ void setExampleWidgetAlignment() { int alignment = 0; if (leftButton.getSelection()) alignment = SWT.LEFT; if (centerButton.getSelection()) alignment = SWT.CENTER; if (rightButton.getSelection()) alignment = SWT.RIGHT; if (upButton.getSelection()) alignment = SWT.UP; if (downButton.getSelection()) alignment = SWT.DOWN; button1.setAlignment(alignment); button2.setAlignment(alignment); button3.setAlignment(alignment); button4.setAlignment(alignment); button5.setAlignment(alignment); button6.setAlignment(alignment); button7.setAlignment(alignment); button8.setAlignment(alignment); button9.setAlignment(alignment); } /** * Sets the state of the "Example" widgets. */ void setExampleWidgetState() { super.setExampleWidgetState(); if (arrowButton.getSelection()) { upButton.setEnabled(true); centerButton.setEnabled(false); downButton.setEnabled(true); } else { upButton.setEnabled(false); centerButton.setEnabled(true); downButton.setEnabled(false); } upButton.setSelection((button1.getStyle() & SWT.UP) != 0); downButton.setSelection((button1.getStyle() & SWT.DOWN) != 0); pushButton.setSelection((button1.getStyle() & SWT.PUSH) != 0); checkButton.setSelection((button1.getStyle() & SWT.CHECK) != 0); radioButton.setSelection((button1.getStyle() & SWT.RADIO) != 0); toggleButton.setSelection((button1.getStyle() & SWT.TOGGLE) != 0); arrowButton.setSelection((button1.getStyle() & SWT.ARROW) != 0); flatButton.setSelection((button1.getStyle() & SWT.FLAT) != 0); borderButton.setSelection((button1.getStyle() & SWT.BORDER) != 0); } }