package ie.dcu.apps.ist.actions; import java.util.logging.*; import org.eclipse.jface.dialogs.*; import org.eclipse.swt.graphics.*; import ie.dcu.apps.ist.*; /** * Root class for all application actions. * * @author Kevin McGuinness */ public class AppAction extends ConfiguredAction { // Make easier for subclasses to set status protected static final AppStatus Information = AppStatus.Information; protected static final AppStatus Warning = AppStatus.Warning; protected static final AppStatus Error = AppStatus.Error; // Logger protected final Logger log = Logger.getLogger(getClass().getSimpleName()); // Window protected final AppWindow window; // Action manager protected final ActionManager manager; public AppAction(ActionManager m) { super(m.getProperties()); manager = m; window = m.getWindow(); } public AppAction(ActionManager m, int style) { super(m.getProperties(), style); manager = m; window = m.getWindow(); } @Override public void arm() { super.arm(); status(AppStatus.Information, getDescription()); } @Override public void disarm() { super.disarm(); window.setStatus(null); } public String id() { return getClass().getName(); } protected Image icon(String key) { String prop = string(key); if (prop != null) { return window.getIcon(prop); } return null; } protected void error(String message) { MessageDialog.openError(window.getShell(), "Error", message); } protected void error(String format, Object... args) { error(String.format(format, args)); } protected void warning(String message) { MessageDialog.openWarning(window.getShell(), "Warning", message); } protected void warning(String format, Object... args) { warning(String.format(format, args)); } protected void info(String message) { MessageDialog.openInformation(window.getShell(), "Information", message); } protected void info(String format, Object... args) { info(String.format(format, args)); } protected void log(Level level, String message, Throwable th) { log.log(level, message, th); } protected String property(String key) { return properties.getProperty(key); } protected void status(AppStatus s, String format, Object... args) { window.status(s, format, args); } protected void status(String format, Object... args) { status(Information, format, args); } }