/* * Copyright (c) 2010 The Jackson Laboratory * * This 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 3 of the License, or * (at your option) any later version. * * This software 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 software. If not, see <http://www.gnu.org/licenses/>. */ package org.jax.gwtutil.client; import com.google.gwt.user.client.ui.Image; /** * An enum which allows for different types of messages to the user * @author <A HREF="mailto:keith.sheppard@jax.org">Keith Sheppard</A> */ public enum MessageType { /** * To give the user important information that we want to emphasize */ ALERT { @Override public String getIconUrl() { return "images/alert-16x16.png"; } @Override public String getStyle() { return "jax-PlainMessage"; } }, /** * To give the user normal info... no emphasis needed */ PLAIN { @Override public String getIconUrl() { return null; } @Override public String getStyle() { return "jax-PlainMessage"; } }, /** * tells the user an error ocurred */ ERROR { @Override public String getIconUrl() { return "images/error-16x16.png"; } @Override public String getStyle() { return "jax-ErrorMessage"; } }, /** * tells the user processing is OK */ OK { @Override public String getIconUrl() { return "images/ok-16x16.png"; } @Override public String getStyle() { return "jax-PlainMessage"; } }, /** * to tell the user that we're working on something */ WORKING { @Override public String getIconUrl() { return "images/spinner-16x16.gif"; } @Override public String getStyle() { return "jax-PlainMessage"; } }; /** * Get the icon for this message * @return * the icon or null */ public abstract String getIconUrl(); /** * Get the style for this message * @return * the style (can't be null) */ public abstract String getStyle(); /** * Prefetch the icon for this message type (if there's no icon * then do nothing) */ public void prefetchIcon() { if(this.getIconUrl() != null) { Image.prefetch(this.getIconUrl()); } } /** * A convenience method for prefetching all icons */ public static void prefetchIcons() { for(MessageType messageType: MessageType.values()) { messageType.prefetchIcon(); } } }