package other;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Shell;

/**
 * MsgBox Klasse
 * Beinhaltet statische Methoden mit denen Meldungen
 * angezeigt werden können
 */
public class MsgBox {
	
	/* ##########################################################################
	 * 						ÖFFENTLICHE STATISCHE METHODEN
	 * ##########################################################################*/	
	
	/**
	 * Zeigt eine Fehlermeldung an
	 * @param sText Fehlermeldung, die angezeigt werden soll
	 */
	public static void showError(String sText){
		MessageBox msg;
		msg = new MessageBox(new Shell(), SWT.ICON_ERROR | SWT.OK);
		msg.setMessage(sText);
		msg.setText("Fehler");
		msg.open();
	}
	
	/**
	 * Zeigt eine informative Meldung an
	 * @param sText Meldung, die angezeigt werden soll
	 */
	public static void showInfo(String sText){
		MessageBox msg;
		msg = new MessageBox(new Shell(), SWT.ICON_INFORMATION | SWT.OK);
		msg.setMessage(sText);
		msg.setText("Information");
		msg.open();
	}
	
	/**
	 * Zeigt eine Frage an
	 * @param sText Fehlermeldug, die angezeigt werden soll
	 * @return true wenn Ja. sonst false
	 */
	public static boolean showYesNoQuestion(String sText){
		MessageBox msg;
        msg = new MessageBox(new Shell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
		msg.setMessage(sText);
		msg.setText("Achtung");
		
        int iValue = msg.open();

	    //Auswahl abfragen
	  	switch(iValue){
	  	  case SWT.YES : //Ja 
	  	   return true;
	  	  case SWT.NO: //Nein
	  	  	return false;
		 }
		return false;	
	}

	/**
	 * Zeigt eine Frage an
	 * @param sText Fehlermeldug, die angezeigt werden soll
	 * @return true wenn OK, sonst false
	 */
	public static boolean showOKCancelQuestion(String sText){
		MessageBox msg;
        msg = new MessageBox(new Shell(), SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
		msg.setMessage(sText);
		msg.setText("Achtung");
		
        int iValue = msg.open();

	    //Auswahl abfragen
	  	switch(iValue){
	  	  case SWT.OK : //Ja 
	  	   return true;
	  	  case SWT.CANCEL: //Nein
	  	  	return false;
		 }
		return false;	
	}
	
	/**
	 * Zeigt eine Frage mit der Möglichkeit zum Abbruch an
	 * @param sText Fehlermeldug, die angezeigt werden soll
	 * @return SWT.YES, SWT.NO oder SWT.CANCEL
	 */
	public static int showYesNoCancelQuestion(String sText){
		MessageBox msg;
        msg = new MessageBox(new Shell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO | SWT.CANCEL);
		msg.setMessage(sText);
		msg.setText("Achtung");
        return msg.open();
	}
	
	/**
	 * Zeigt einen Ordnerwahl-Dialog an
	 * @param sText angezeigter Text
	 * @return absoluter Pfad oder Null
	 */
	public static String askDirectory(String sText){
		DirectoryDialog dd = new DirectoryDialog(new Shell());
		dd.setMessage(sText);
		dd.setText("Verzeichnis wählen");
		return dd.open();
	}

}
