// Copyright (c) 2003-2005 by Leif Frenzel - see http://leiffrenzel.de
package net.sf.eclipsefp.haskell.ui.util;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.DialogPage;
import org.eclipse.jface.dialogs.IMessageProvider;
/** contains utility functionality related to status analysis and displaying.
*
* @author Leif Frenzel
*/
public class StatusUtil {
public static IStatus getMostSevere( final IStatus[] status ) {
IStatus result = new DefaultStatus();
boolean found = false;
for( int i = 0; !found && i < status.length; i++ ) {
IStatus curr = status[ i ];
if( result == null || curr.getSeverity() > result.getSeverity() ) {
result = curr;
}
if( curr.matches( IStatus.ERROR ) ) {
result = curr;
found = true;
}
}
return result;
}
/**
* Applies the status to the status line of a dialog page.
*/
public static void applyToStatusLine( final DialogPage page,
final IStatus status ) {
String message = status.getMessage();
if( message.equals( "" ) ) { //$NON-NLS-1$
message = null;
}
switch( status.getSeverity() ) {
case IStatus.OK:
page.setMessage( message, IMessageProvider.NONE );
page.setErrorMessage( null );
break;
case IStatus.WARNING:
page.setMessage( message, IMessageProvider.WARNING );
page.setErrorMessage( null );
break;
case IStatus.INFO:
page.setMessage( message, IMessageProvider.INFORMATION );
page.setErrorMessage( null );
break;
default:
if( message != null && message.length() == 0 ) {
message = null;
}
page.setMessage( null );
page.setErrorMessage( message );
break;
}
}
}