/** * Copyright (c) Red Hat, Inc., contributors and others 2013 - 2014. All rights reserved * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.jboss.tools.forge.ui.internal.ext.provider; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.jboss.forge.addon.ui.input.UIPrompt; /** * * @author <a href="ggastald@redhat.com">George Gastaldi</a> */ public class ForgeUIPrompt implements UIPrompt { private final Shell shell; private boolean booleanResult = false; private String stringResult = null; public ForgeUIPrompt(Shell shell) { this.shell = shell; } @Override public String prompt(final String message) { Display.getDefault().syncExec(new Runnable() { @Override public void run() { InputDialog dlg = new InputDialog(shell, "", message, "", null); stringResult = (dlg.open() == Window.OK) ? dlg.getValue() : null; } }); return stringResult; } @Override public boolean promptBoolean(final String message) { return promptBoolean(message, true); } @Override public String promptSecret(final String message) { Display.getDefault().syncExec(new Runnable() { @Override public void run() { // FIXME: Should mask the input InputDialog dlg = new InputDialog(shell, "", message, "", null); stringResult = (dlg.open() == Window.OK) ? dlg.getValue() : null; } }); return stringResult; } @Override public boolean promptBoolean(final String message, final boolean defaultValue) { Display.getDefault().syncExec(new Runnable() { @Override public void run() { booleanResult = MessageDialog.openQuestion(shell, "Question", message); } }); return booleanResult; } }