package com.mobilesorcery.sdk.html5.ui;
import java.text.MessageFormat;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IconAndMessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import com.mobilesorcery.sdk.html5.Html5Plugin;
import com.mobilesorcery.sdk.html5.debug.ReloadVirtualMachine;
public class JSODDTimeoutDialog extends IconAndMessageDialog {
private final static String DONT_SHOW = "dont.show.timeout.dialog";
private Button rememberMyChoice;
private ReloadVirtualMachine vm;
public JSODDTimeoutDialog(Shell shell) {
super(shell);
}
public static void openIfNecessary(Shell shell, ReloadVirtualMachine vm) {
boolean show = !Html5Plugin.getDefault().getPreferenceStore().getBoolean(DONT_SHOW);
if (show) {
JSODDTimeoutDialog dialog = new JSODDTimeoutDialog(shell);
dialog.setVM(vm);
dialog.open();
}
}
public void setVM(ReloadVirtualMachine vm) {
this.vm = vm;
}
public Control createDialogArea(Composite parent) {
Composite contents = (Composite) super.createDialogArea(parent);
contents.setLayout(new GridLayout(2, false));
getShell().setText("Timeout");
message = MessageFormat.format("A timeout occurred.\n\nThe device being debugged (at {0}) seems to have been disconnected.\nThe debugging session has been terminated.\n\n", vm.getRemoteAddr());
createMessageArea(contents);
// Remember my choice?
Label spacer = new Label(contents, SWT.NONE);
rememberMyChoice = new Button(contents, SWT.CHECK);
rememberMyChoice.setText("Do not show this message again");
rememberMyChoice.setSelection(false);
return contents;
}
public void createButtonsForButtonBar(Composite parent) {
createButton(parent, Dialog.OK, IDialogConstants.OK_LABEL, true);
}
public void buttonPressed(int buttonId) {
if (buttonId != -1) {
Html5Plugin.getDefault().getPreferenceStore().setValue(DONT_SHOW, rememberMyChoice.getSelection());
}
setReturnCode(buttonId);
close();
}
@Override
protected Image getImage() {
return getWarningImage();
}
}