| package com.intellij.openapi.vcs.actions; |
| |
| import com.intellij.openapi.actionSystem.AnActionEvent; |
| import com.intellij.openapi.actionSystem.ToggleAction; |
| import com.intellij.openapi.project.DumbAware; |
| import com.intellij.openapi.vcs.CommitMessageI; |
| import com.intellij.openapi.vcs.VcsDataKeys; |
| import com.intellij.openapi.vcs.ui.Refreshable; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** |
| * Allows to toggle <code>'check commit message spelling errors'</code> processing. |
| * |
| * @author Denis Zhdanov |
| * @since 8/22/11 3:27 PM |
| */ |
| public class CheckCommitMessageSpellingAction extends ToggleAction implements DumbAware { |
| |
| public CheckCommitMessageSpellingAction() { |
| setEnabledInModalContext(true); |
| } |
| |
| @Override |
| public boolean isSelected(AnActionEvent e) { |
| CommitMessageI checkinPanel = getCheckinPanel(e); |
| return checkinPanel != null && checkinPanel.isCheckSpelling(); |
| } |
| |
| @Override |
| public void setSelected(AnActionEvent e, boolean state) { |
| CommitMessageI checkinPanel = getCheckinPanel(e); |
| if (checkinPanel != null) { |
| checkinPanel.setCheckSpelling(state); |
| } |
| } |
| |
| @Nullable |
| private static CommitMessageI getCheckinPanel(@Nullable AnActionEvent e) { |
| if (e == null) { |
| return null; |
| } |
| Refreshable data = Refreshable.PANEL_KEY.getData(e.getDataContext()); |
| if (data instanceof CommitMessageI) { |
| return (CommitMessageI)data; |
| } |
| CommitMessageI commitMessageI = VcsDataKeys.COMMIT_MESSAGE_CONTROL.getData(e.getDataContext()); |
| if (commitMessageI != null) { |
| return commitMessageI; |
| } |
| return null; |
| } |
| } |