package uk.org.squirm3.ui.toolbar;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import org.springframework.context.MessageSource;
import uk.org.squirm3.engine.ApplicationEngine;
import uk.org.squirm3.springframework.Messages;
/**
* Centralize repetitive misc code.
*/
// TODO use properties for configuration
// see http://download.oracle.com/javase/6/docs/api/javax/swing/Action.html
public abstract class SquirmAction extends AbstractAction {
private static final long serialVersionUID = 1L;
private final MessageSource messageSource;
private final ApplicationEngine applicationEngine;
public SquirmAction(final MessageSource messageSource,
final ApplicationEngine applicationEngine,
final String shortDescription, final ImageIcon smallIcon) {
this.messageSource = messageSource;
this.applicationEngine = applicationEngine;
putValue(Action.SHORT_DESCRIPTION,
Messages.localize(shortDescription, messageSource));
putValue(Action.SMALL_ICON, smallIcon);
}
protected final ApplicationEngine getApplicationEngine() {
return applicationEngine;
}
protected final String localize(final String key) {
return Messages.localize(key, messageSource);
}
}