Java tutorial
/******************************************************************************* * Caleydo - Visualization for Molecular Biology - http://caleydo.org * Copyright (c) The Caleydo Team. All rights reserved. * Licensed under the new BSD license, available at http://caleydo.org/license ******************************************************************************/ /** * */ package org.caleydo.core.gui.util; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; /** * Creates a nice looking help button in push style. Do not set setHelpAvailable * to true in {@link IWizard}, otherwise an additional help button will be * displayed. * * @author Christian Partl * */ public class HelpButtonWizardDialog extends WizardDialog { /** * The help button. */ protected ToolItem helpButton; /** * @param parentShell * @param newWizard */ public HelpButtonWizardDialog(Shell parentShell, IWizard newWizard) { super(parentShell, newWizard); } @Override public boolean isHelpAvailable() { return true; } @Override protected Control createHelpControl(Composite parent) { Image helpImage = JFaceResources.getImage(DLG_IMG_HELP); if (helpImage != null) { return createHelpImageButton(parent, helpImage); } return super.createHelpControl(parent); } private ToolBar createHelpImageButton(Composite parent, Image image) { ToolBar toolBar = new ToolBar(parent, SWT.FLAT | SWT.NO_FOCUS); ((GridLayout) parent.getLayout()).numColumns++; toolBar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); final Cursor cursor = new Cursor(parent.getDisplay(), SWT.CURSOR_HAND); toolBar.setCursor(cursor); toolBar.addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { cursor.dispose(); } }); helpButton = new ToolItem(toolBar, SWT.PUSH); helpButton.setImage(image); helpButton.setToolTipText(JFaceResources.getString("helpToolTip")); helpButton.setData(new Integer(IDialogConstants.HELP_ID)); helpButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { buttonPressed(((Integer) event.widget.getData()).intValue()); } }); return toolBar; } }