/*
* Copyright 2015 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.red.jface.dialogs;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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.dialogs.PreferencesUtil;
public class ErrorDialogWithLinkToPreferences extends MessageDialog {
private String preferenceId;
private String preferenceName;
public ErrorDialogWithLinkToPreferences(final Shell parentShell, final String dialogTitle,
final String dialogMessage, final String preferenceId, final String preferenceName) {
super(parentShell, dialogTitle, null, dialogMessage, MessageDialog.ERROR,
new String[] { IDialogConstants.OK_LABEL }, 0);
this.preferenceId = preferenceId;
this.preferenceName = preferenceName;
}
@Override
protected Control createCustomArea(final Composite parent) {
final Link link = new Link(parent, SWT.NONE);
GridDataFactory.fillDefaults().indent(0, 20).applyTo(link);
link.setText("Go to preferences page: <a href=\"" + preferenceId + "\">'" + preferenceName + "'</a>");
link.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
PreferencesUtil.createPreferenceDialogOn(getShell(), e.text, null, null).open();
close();
}
});
return link;
}
}