package org.jetbrains.plugins.ipnb.editor.actions; import com.intellij.icons.AllIcons; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.ipnb.editor.IpnbFileEditor; import org.jetbrains.plugins.ipnb.editor.panels.IpnbFilePanel; import org.jetbrains.plugins.ipnb.format.IpnbParser; public class IpnbSaveAction extends AnAction { public IpnbSaveAction() { super(AllIcons.Actions.Menu_saveall); } @Override public void actionPerformed(@NotNull AnActionEvent event) { final DataContext context = event.getDataContext(); final FileEditor editor = PlatformDataKeys.FILE_EDITOR.getData(context); if (editor instanceof IpnbFileEditor) { saveAndCheckpoint((IpnbFileEditor)editor); } } public static void saveAndCheckpoint(@NotNull final IpnbFileEditor editor) { final IpnbFilePanel filePanel = editor.getIpnbFilePanel(); IpnbParser.saveIpnbFile(filePanel); final VirtualFile file = editor.getVirtualFile(); file.refresh(false, false); } }