package com.jetbrains.lang.dart.pubServer; import com.intellij.icons.AllIcons; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.DumbAwareAction; import com.jetbrains.lang.dart.DartBundle; import org.jetbrains.annotations.NotNull; public class StopPubServerAction extends DumbAwareAction { public StopPubServerAction() { super(DartBundle.message("stop.pub.server.action.text"), DartBundle.message("stop.pub.server.action.description"), AllIcons.Actions.Suspend); } @Override public void update(@NotNull final AnActionEvent e) { e.getPresentation().setEnabled(e.getProject() != null && PubServerManager.getInstance(e.getProject()).hasAlivePubServerProcesses()); } @Override public void actionPerformed(@NotNull final AnActionEvent e) { if (e.getProject() == null) return; // todo instead of killing the process just close webSocket connection to the Pub Serve admin port PubServerManager.getInstance(e.getProject()).stopAllPubServerProcesses(); } }