1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.theplugin.idea.crucible;
18
19 import com.atlassian.theplugin.commons.crucible.CrucibleServerFacade;
20 import com.atlassian.theplugin.idea.config.ProjectCfgManagerImpl;
21 import com.intellij.openapi.project.Project;
22 import com.intellij.openapi.vcs.changes.CommitExecutor;
23 import com.intellij.openapi.vcs.changes.CommitSession;
24 import org.jetbrains.annotations.Nls;
25 import org.jetbrains.annotations.NotNull;
26
27 import javax.swing.*;
28
29 public class CruciblePatchSubmitExecutor implements CommitExecutor {
30 private final Project project;
31 private final CrucibleServerFacade crucibleServerFacade;
32 private final ProjectCfgManagerImpl projectCfgManager;
33
34 public CruciblePatchSubmitExecutor(Project project, CrucibleServerFacade crucibleServerFacade,
35 final ProjectCfgManagerImpl projectCfgManager) {
36 this.project = project;
37 this.crucibleServerFacade = crucibleServerFacade;
38 this.projectCfgManager = projectCfgManager;
39 }
40
41 @NotNull
42 public Icon getActionIcon() {
43
44 throw new UnsupportedOperationException("method getActionIcon not implemented");
45 }
46
47 @Nls
48 public String getActionText() {
49 return "Crucible Pre-commit Review...";
50 }
51
52 @Nls
53 public String getActionDescription() {
54 return "Creates a patch from the files that would be commited and sends it for review to the Crucible server.";
55 }
56
57 @NotNull
58 public CommitSession createCommitSession() {
59 return new CruciblePatchSubmitCommitSession(project, crucibleServerFacade, projectCfgManager);
60 }
61 }