package org.esa.snap.rcp.actions.help;
import org.esa.snap.tango.TangoIcons;
import org.openide.util.HelpCtx;
import org.openide.util.NbBundle;
import javax.swing.AbstractAction;
import java.awt.event.ActionEvent;
/**
* Basic help action.
*
* @author Norman Fomferra
*/
@NbBundle.Messages({
"CTL_HelpActionText=Help",
"CTL_HelpActionToolTip=Invokes the help system."
})
public class HelpAction extends AbstractAction implements HelpCtx.Provider {
private final HelpCtx helpCtx;
private final HelpCtx.Provider delegateHelpCtx;
public HelpAction() {
this(HelpCtx.DEFAULT_HELP);
}
public HelpAction(HelpCtx.Provider delegateHelpCtx) {
this.delegateHelpCtx = delegateHelpCtx;
this.helpCtx = null;
initProperties();
}
public HelpAction(HelpCtx helpCtx) {
this.helpCtx = helpCtx;
this.delegateHelpCtx = null;
initProperties();
}
private void initProperties() {
putValue(ACTION_COMMAND_KEY, "help");
putValue(NAME, Bundle.CTL_HelpActionText());
putValue(SHORT_DESCRIPTION, Bundle.CTL_HelpActionToolTip());
putValue(SMALL_ICON, TangoIcons.apps_help_browser(TangoIcons.Res.R16));
putValue(LARGE_ICON_KEY, TangoIcons.apps_help_browser(TangoIcons.Res.R22));
}
@Override
public HelpCtx getHelpCtx() {
return delegateHelpCtx != null ? delegateHelpCtx.getHelpCtx() : helpCtx;
}
@Override
public void actionPerformed(ActionEvent e) {
getHelpCtx().display();
}
}