package com.jetbrains.crucible.actions; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.wm.ToolWindow; import com.intellij.openapi.wm.ToolWindowManager; import com.intellij.ui.AnActionButton; import com.intellij.ui.content.Content; import com.intellij.ui.content.ContentManager; import com.jetbrains.crucible.connection.CrucibleManager; import com.jetbrains.crucible.model.CrucibleFilter; import com.jetbrains.crucible.model.Review; import com.jetbrains.crucible.ui.toolWindow.CruciblePanel; import com.jetbrains.crucible.utils.CrucibleBundle; import org.jetbrains.annotations.NotNull; /** * User: ktisha * <p/> * Complete current review */ @SuppressWarnings("ComponentNotRegistered") public class CompleteReviewAction extends AnActionButton implements DumbAware { private final Review myReview; public CompleteReviewAction(@NotNull final Review review, @NotNull final String description) { super(description, description, IconLoader.getIcon("/images/complete.png")); myReview = review; } public void actionPerformed(AnActionEvent e) { final Project project = e.getData(PlatformDataKeys.PROJECT); if (project == null) return; CrucibleManager.getInstance(project).completeReview(myReview.getPermaId()); final ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow(CrucibleBundle.message("crucible.toolwindow.id")); final ContentManager contentManager = toolWindow.getContentManager(); final Content foundContent = contentManager.findContent("Details for " + myReview.getPermaId()); contentManager.removeContent(foundContent, true); final Content dash = contentManager.findContent("Dashboard"); if (dash.getComponent() instanceof CruciblePanel) { ((CruciblePanel)dash.getComponent()).getReviewModel().updateModel(CrucibleFilter.ToReview); } } }