/* Spatial Operations & Editing Tools for uDig
*
* Axios Engineering under a funding contract with:
* Diputación Foral de Gipuzkoa, Ordenación Territorial
*
* http://b5m.gipuzkoa.net
* http://www.axios.es
*
* (C) 2006, Diputación Foral de Gipuzkoa, Ordenación Territorial (DFG-OT).
* DFG-OT agrees to licence under Lesser General Public License (LGPL).
*
* You can redistribute it and/or modify it under the terms of the
* GNU Lesser General Public License as published by the Free Software
* Foundation; version 2.1 of the License.
*
* This library 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
* Lesser General Public License for more details.
*/
package es.axios.udig.ui.commons.message;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.graphics.Image;
/**
* Human Message
* <p>
* This class maintain the user text attributes, used by widgets to show
* information to user
* </p>
*
* @author Aritz Davila (www.axios.es)
* @author Mauricio Pazos (www.axios.es)
* @since 1.1.0
*/
public final class InfoMessage {
/**
* Type of Message
* <p>
* The following sentences define a criteria to use this type:
* <ul>
* <li>INFORMATION, IMPORTANT_INFO : Message to give an indications to user</li>
* <li>WARNING: The value of parameter could produce a no desired result,
* but the operation can be executed</li>
* <li>ERROR: The introduced value is not valid for this operation.</li>
* <li>FAIL The operation can not be executed correctly (typically an
* exceptions occurred).</li>
* <li>NULL: internal use</li>
* </ul>
* </p>
*/
public enum Type {
/** Message to give an indications to user */
INFORMATION,
/** Message to give an indications to user */
IMPORTANT_INFO,
/**
* The value of parameter could produce a no desired result, but the
* operation can be executed
*/
WARNING,
/** The introduced value is not valid for this operation */
ERROR,
/**
* The operation can not be executed correctly (typically an exceptions
* occurred).
*/
FAIL,
/** internal use */
NULL
};
public static final InfoMessage NULL = new InfoMessage("", Type.NULL); //$NON-NLS-1$
private String text;
private Type type;
public InfoMessage() {
}
public InfoMessage(final String text, final Type type) {
assert text != null;
assert type != null;
this.text = text;
this.type = type;
}
public InfoMessage(final String text, final int type) {
assert text != null;
this.text = text;
switch (type) {
case IMessageProvider.INFORMATION:
this.type = Type.INFORMATION;
break;
case IMessageProvider.ERROR:
this.type = Type.ERROR;
break;
case IMessageProvider.NONE:
this.type = Type.NULL;
break;
case IMessageProvider.WARNING:
this.type = Type.WARNING;
break;
}
}
public void setText(final String text) {
assert text != null;
this.text = text;
}
public void setType(final Type type) {
assert type != null;
this.type = type;
}
@Override
public String toString() {
return this.text;
}
@Override
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = PRIME * result + ((this.text == null) ? 0 : this.text.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final InfoMessage other = (InfoMessage) obj;
if (this.text == null) {
if (other.text != null)
return false;
} else if (!this.text.equals(other.text))
return false;
if (this.type == null) {
if (other.type != null)
return false;
} else if (this.type != type)
return false;
return true;
}
/**
* @return Returns the text.
*/
public final String getText() {
return this.text;
}
/**
* @return Returns the type.
*/
public final Type getType() {
return this.type;
}
/**
* @return Returns the image
*/
public final Image getImage() {
Image image = null;
switch (type) {
case FAIL:
image = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR);
break;
case INFORMATION:
case IMPORTANT_INFO:
image = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_INFO);
break;
case WARNING:
image = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING);
break;
case ERROR:
image = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR);
break;
case NULL:
image = null;
break;
default:
assert false; // impossible!
break;
}
return image;
}
}