package krasa.frameswitcher;
import com.intellij.ide.impl.ProjectUtil;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogBuilder;
import com.intellij.openapi.ui.DialogWrapper;
import java.util.List;
/**
* @author Vojtech Krasa
*/
public class CloseProjectsAction extends DumbAwareAction {
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
final CloseProjectsForm form = new CloseProjectsForm(getEventProject(anActionEvent));
DialogBuilder builder = new DialogBuilder(getEventProject(anActionEvent));
builder.setCenterPanel(form.getRoot());
builder.setDimensionServiceKey("FrameSwitcherCloseProjects");
builder.setTitle("Close Projects");
builder.removeAllActions();
builder.addOkAction();
builder.addCancelAction();
boolean isOk = builder.show() == DialogWrapper.OK_EXIT_CODE;
if (isOk) {
List<Project> checkProjects = form.getCheckProjects();
for (Project checkProject : checkProjects) {
if (!checkProject.isDisposed()) {
ProjectUtil.closeAndDispose(checkProject);
}
}
FrameSwitcherUtils.getRecentProjectsManagerBase().updateLastProjectPath();
}
}
}