/* * Created on 12 Apr 2008 * Created by Allan Crooks * Copyright (C) 2007 Aelitis, All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * AELITIS, SAS au capital de 46,603.30 euros * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France. */ package org.gudy.azureus2.ui.swt.pluginsimpl; import org.eclipse.swt.SWT; import org.gudy.azureus2.pluginsimpl.local.ui.AbstractUIMessage; import org.gudy.azureus2.ui.swt.Utils; import org.gudy.azureus2.ui.swt.shells.MessageBoxShell; /** * @author Allan Crooks * */ public class UIMessageImpl extends AbstractUIMessage { public UIMessageImpl() { } public int ask() { final int[] result = new int[1]; Utils.execSWTThread(new Runnable() { public void run() { result[0] = ask0(); } }, false); return result[0]; } private int ask0() { int style = 0; switch (this.input_type) { case INPUT_OK_CANCEL: style |= SWT.CANCEL; case INPUT_OK: style |= SWT.OK; break; case INPUT_RETRY_CANCEL_IGNORE: style |= SWT.IGNORE; case INPUT_RETRY_CANCEL: style |= SWT.RETRY; style |= SWT.CANCEL; break; case INPUT_YES_NO_CANCEL: style |= SWT.CANCEL; case INPUT_YES_NO: style |= SWT.YES; style |= SWT.NO; break; } switch (this.message_type) { case MSG_ERROR: style |= SWT.ICON_ERROR; break; case MSG_INFO: style |= SWT.ICON_INFORMATION; break; case MSG_QUESTION: style |= SWT.ICON_QUESTION; break; case MSG_WARN: style |= SWT.ICON_WARNING; break; case MSG_WORKING: style |= SWT.ICON_WORKING; break; } MessageBoxShell mb = new MessageBoxShell(style, this.title, this.messagesAsString()); mb.open(null); int result = mb.waitUntilClosed(); switch (result) { case SWT.OK: return ANSWER_OK; case SWT.YES: return ANSWER_YES; case SWT.NO: return ANSWER_NO; case SWT.ABORT: return ANSWER_ABORT; case SWT.RETRY: return ANSWER_RETRY; case SWT.IGNORE: return ANSWER_IGNORE; default: // Cancel if anything else is returned. return ANSWER_CANCEL; } } }