package net.sourceforge.pmd.eclipse.ui.views.actions; import net.sourceforge.pmd.eclipse.plugin.PMDPlugin; import net.sourceforge.pmd.eclipse.runtime.preferences.IPreferences; import net.sourceforge.pmd.eclipse.ui.nls.StringTable; import org.eclipse.jface.action.Action; /** * * @author Brian Remedios */ public abstract class AbstractPMDAction extends Action { private static StringTable stringTable; static { PMDPlugin plugin = PMDPlugin.getDefault(); if (plugin != null) { stringTable = plugin.getStringTable(); } } protected AbstractPMDAction() { setupWidget(); } protected abstract String imageId(); protected abstract String tooltipMsgId(); public static String getString(String messageId) { return stringTable == null ? messageId : stringTable.getString(messageId); } protected void setupWidget() { String imageId = imageId(); if (imageId != null) setImageDescriptor(PMDPlugin.getImageDescriptor(imageId)); String toolTipMsgId = tooltipMsgId(); if (toolTipMsgId != null) setToolTipText(getString(toolTipMsgId)); } protected static IPreferences loadPreferences() { return PMDPlugin.getDefault().loadPreferences(); } protected static void logErrorByKey(String errorId, Throwable error) { PMDPlugin.getDefault().logError(getString(errorId), error); } }