package magic.ui.screen.widget;
import java.awt.Point;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import magic.ui.helpers.ImageHelper;
import magic.ui.utility.MagicStyle;
@SuppressWarnings("serial")
public class ActionBarButton extends MenuButton {
private void setToolTip(String title, String tooltip) {
title = title == null ? "" : title.trim();
tooltip = tooltip == null ? "" : tooltip.trim();
if (title.isEmpty() && tooltip.isEmpty()) {
setToolTipText(null);
} else {
final String s1 = !title.isEmpty() ? "<b>" + title + "</b>" : "";
final String s2 = s1 + (!title.isEmpty() && !tooltip.isEmpty() ? "<br>" : "") + tooltip;
setToolTipText("<html>" + s2 + "</html>");
}
}
// CTR
public ActionBarButton(ImageIcon icon, String actionName, String tooltip, AbstractAction action, boolean showSeparator) {
super("", action, tooltip, showSeparator);
setIcon(icon);
setToolTip(actionName, tooltip);
}
public ActionBarButton(ImageIcon icon, String actionName, String tooltip, AbstractAction action) {
this(icon, actionName, tooltip, action, true);
}
public ActionBarButton(ImageIcon icon, String actionName, AbstractAction action) {
this(icon, actionName, "", action);
}
public ActionBarButton(ImageIcon icon, AbstractAction action) {
this(icon, null, action);
}
// CTR - text only action.
public ActionBarButton(final String caption, final String tooltip, final AbstractAction action, final boolean showSeparator) {
super(caption, action, tooltip, showSeparator);
if (tooltip != null) {
setToolTipText("<html><b>" + caption + "</b><br>" + tooltip + "</html>");
}
}
public ActionBarButton(AbstractAction action) {
this("", null, action);
}
public ActionBarButton(final String caption, final String tooltip, final AbstractAction action) {
this(caption, tooltip, action, true);
}
public ActionBarButton(final String caption, final AbstractAction action) {
this(caption, null, action);
}
protected ActionBarButton() {}
@Override
public Point getToolTipLocation(MouseEvent event) {
return new Point(0, -45);
}
@Override
public void setIcon(Icon defaultIcon) {
super.setIcon(defaultIcon);
setRolloverIcon(ImageHelper.getRecoloredIcon(
(ImageIcon) defaultIcon,
MagicStyle.getRolloverColor())
);
setPressedIcon(ImageHelper.getRecoloredIcon(
(ImageIcon) defaultIcon,
MagicStyle.getPressedColor())
);
}
}