blob: 9bd2f8982f8743acf01960eb70b9886b92642a2c [file] [log] [blame]
package org.eclipse.wst.sse.ui.internal;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialogWithToggle;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceDialog;
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;
/**
* Message dialog informing user that an editor was open on unsupported
* content type
*/
public class UnknownContentTypeDialog extends MessageDialogWithToggle {
public UnknownContentTypeDialog(Shell parent, IPreferenceStore store, String key) {
// set message to null in super so that message does not appear twice
super(parent, SSEUIMessages.UnknownContentTypeDialog_0, null, null, INFORMATION, new String[]{IDialogConstants.OK_LABEL}, 0, SSEUIMessages.UnknownContentTypeDialog_1, false);
setPrefStore(store);
setPrefKey(key);
}
protected void buttonPressed(int buttonId) {
super.buttonPressed(buttonId);
// overwritten so that value stored is boolean, not string
if (buttonId != IDialogConstants.CANCEL_ID && getToggleState() && getPrefStore() != null && getPrefKey() != null) {
switch (buttonId) {
case IDialogConstants.YES_ID :
case IDialogConstants.YES_TO_ALL_ID :
case IDialogConstants.PROCEED_ID :
case IDialogConstants.OK_ID :
getPrefStore().setValue(getPrefKey(), false);
break;
case IDialogConstants.NO_ID :
case IDialogConstants.NO_TO_ALL_ID :
getPrefStore().setValue(getPrefKey(), true);
break;
}
}
}
protected Control createMessageArea(Composite composite) {
super.createMessageArea(composite);
Link messageLink = new Link(composite, SWT.NONE);
messageLink.setText(SSEUIMessages.UnknownContentTypeDialog_2);
messageLink.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
linkClicked();
}
});
return composite;
}
private void linkClicked() {
String pageId = "org.eclipse.ui.preferencePages.ContentTypes"; //$NON-NLS-1$
PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(getShell(), pageId, new String[]{pageId}, null);
dialog.open();
}
}