Intellij idea 如何使用插件在Intellij中启用/禁用VCS提交按钮?

Intellij idea 如何使用插件在Intellij中启用/禁用VCS提交按钮?,intellij-idea,plugins,intellij-plugin,Intellij Idea,Plugins,Intellij Plugin,我已经有了一个工作的自定义Intellij插件。我可以获取并检查现有的提交消息,但如果消息不包含某些信息,我希望能够禁用提交按钮 @Override public void update(AnActionEvent e) { CheckinProjectPanel checkinPanel = (CheckinProjectPanel) CheckinProjectPanel.PANEL_KEY.getData(e.getDataContext()); if (checkinP

我已经有了一个工作的自定义Intellij插件。我可以获取并检查现有的提交消息,但如果消息不包含某些信息,我希望能够禁用提交按钮

@Override
public void update(AnActionEvent e) {

    CheckinProjectPanel checkinPanel = (CheckinProjectPanel) CheckinProjectPanel.PANEL_KEY.getData(e.getDataContext());
    if (checkinPanel != null) {
        String commitMessage = checkinPanel.getCommitMessage();
        boolean isValidMessage = commitMessageIsValid(commitMessage);

        // get Commit Button...somehow
        JBOptionButton commitButton = checkinPanel.???; 

        commitButton.setEnabled(isValidMessage);
    }
}
我想禁用以下按钮:

问题是我不知道如何访问该按钮。 我可以在debug Variables面板中看到它,但是这些访问器是受保护的,不能在编译代码中使用

这是我的调试手表(上图可能不够清晰):

所以,按钮就在那里,我只是不知道如何得到它


谢谢你的帮助。非常感谢。

执行此类操作的标准方法是实现CheckinHandler并返回
CheckinHandler.ReturnResult。如果不满足要求,则取消。这样的checkinHandler在用户按下提交按钮后运行。例如,请参见
GitCheckinHandlerFactory

执行此类操作的标准方法是实现CheckinHandler并返回
CheckinHandler.ReturnResult。如果不满足要求,则取消。这样的checkinHandler在用户按下提交按钮后运行。例如,请参见
GitCheckinHandlerFactory

((CommitChangeListDialog) checkinPanel).getButton(((CommitChangeListDialog) checkinPanel).getOKAction())