package org.erlide.wrangler.refactoring.ui; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.window.IShellProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Link; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; public class AboutHandler extends AbstractHandler { protected static class MyMessageDialog extends Dialog { String title, message; protected MyMessageDialog(final IShellProvider parentShell) { super(parentShell); } public MyMessageDialog(final Shell shell, final String title, final String message) { super(shell); this.title = title; this.message = message; } @Override protected void createButtonsForButtonBar(final Composite parent) { // create OK and Cancel buttons by default createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); } @Override protected void configureShell(final Shell shell) { super.configureShell(shell); shell.setText(title); } @Override protected Control createDialogArea(final Composite parent) { final Composite composite = (Composite) super.createDialogArea(parent); final Link url1 = new Link(composite, SWT.BORDER); url1.setLayoutData(new GridData( GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); url1.setText(message); return composite; } } @Override public Object execute(final ExecutionEvent event) throws org.eclipse.core.commands.ExecutionException { final MyMessageDialog m = new MyMessageDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Missing Graphviz library", "For using Wrangler code inspection functionalities you must first install the Eclipse GraphViz plugin (and also the original graphviz binaries).\n" + "Update site: <a src=\"http://download.erlide.org/update/graphviz/\">http://download.erlide.org/update/graphviz/</a>"); m.open(); return null; } }