1 package com
.intellij
.openapi
.vcs
.configurable
;
3 import com
.intellij
.openapi
.options
.Configurable
;
4 import com
.intellij
.openapi
.options
.ConfigurationException
;
5 import com
.intellij
.openapi
.project
.Project
;
6 import com
.intellij
.openapi
.vcs
.VcsConfiguration
;
7 import com
.intellij
.openapi
.vcs
.VcsShowOptionsSettingImpl
;
8 import com
.intellij
.openapi
.vcs
.changes
.RemoteRevisionsCache
;
9 import org
.jetbrains
.annotations
.Nls
;
12 import java
.util
.LinkedHashMap
;
15 public class VcsBackgroundOperationsConfigurationPanel
implements Configurable
{
17 private JPanel myPanel
;
19 private final Project myProject
;
20 Map
<VcsShowOptionsSettingImpl
, JCheckBox
> myPromptOptions
= new LinkedHashMap
<VcsShowOptionsSettingImpl
, JCheckBox
>();
21 private JCheckBox myCbUpdateInBackground
;
22 private JCheckBox myCbCommitInBackground
;
23 private JCheckBox myCbEditInBackground
;
24 private JCheckBox myCbAddRemoveInBackground
;
25 private JCheckBox myCbCheckoutInBackground
;
26 private JCheckBox myPerformRevertInBackgroundCheckBox
;
27 private JCheckBox myTrackChangedOnServer
;
29 public VcsBackgroundOperationsConfigurationPanel(final Project project
) {
35 public void apply() throws ConfigurationException
{
37 VcsConfiguration settings
= VcsConfiguration
.getInstance(myProject
);
39 settings
.PERFORM_COMMIT_IN_BACKGROUND
= myCbCommitInBackground
.isSelected();
40 settings
.PERFORM_UPDATE_IN_BACKGROUND
= myCbUpdateInBackground
.isSelected();
41 settings
.PERFORM_CHECKOUT_IN_BACKGROUND
= myCbCheckoutInBackground
.isSelected();
42 settings
.PERFORM_EDIT_IN_BACKGROUND
= myCbEditInBackground
.isSelected();
43 settings
.PERFORM_ADD_REMOVE_IN_BACKGROUND
= myCbAddRemoveInBackground
.isSelected();
44 settings
.PERFORM_ROLLBACK_IN_BACKGROUND
= myPerformRevertInBackgroundCheckBox
.isSelected();
45 if ((! settings
.CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND
) && myTrackChangedOnServer
.isSelected()) {
46 RemoteRevisionsCache
.getInstance(myProject
).startRefreshInBackground();
48 settings
.CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND
= myTrackChangedOnServer
.isSelected();
50 for (VcsShowOptionsSettingImpl setting
: myPromptOptions
.keySet()) {
51 setting
.setValue(myPromptOptions
.get(setting
).isSelected());
56 public boolean isModified() {
58 VcsConfiguration settings
= VcsConfiguration
.getInstance(myProject
);
59 if (settings
.PERFORM_COMMIT_IN_BACKGROUND
!= myCbCommitInBackground
.isSelected()) {
63 if (settings
.PERFORM_UPDATE_IN_BACKGROUND
!= myCbUpdateInBackground
.isSelected()) {
67 if (settings
.PERFORM_CHECKOUT_IN_BACKGROUND
!= myCbCheckoutInBackground
.isSelected()) {
71 if (settings
.PERFORM_EDIT_IN_BACKGROUND
!= myCbEditInBackground
.isSelected()) {
74 if (settings
.PERFORM_ADD_REMOVE_IN_BACKGROUND
!= myCbAddRemoveInBackground
.isSelected()) {
77 if (settings
.PERFORM_ROLLBACK_IN_BACKGROUND
!= myPerformRevertInBackgroundCheckBox
.isSelected()) {
80 if (settings
.CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND
!= myTrackChangedOnServer
.isSelected()) {
88 VcsConfiguration settings
= VcsConfiguration
.getInstance(myProject
);
89 myCbCommitInBackground
.setSelected(settings
.PERFORM_COMMIT_IN_BACKGROUND
);
90 myCbUpdateInBackground
.setSelected(settings
.PERFORM_UPDATE_IN_BACKGROUND
);
91 myCbCheckoutInBackground
.setSelected(settings
.PERFORM_CHECKOUT_IN_BACKGROUND
);
92 myCbEditInBackground
.setSelected(settings
.PERFORM_EDIT_IN_BACKGROUND
);
93 myCbAddRemoveInBackground
.setSelected(settings
.PERFORM_ADD_REMOVE_IN_BACKGROUND
);
94 myPerformRevertInBackgroundCheckBox
.setSelected(settings
.PERFORM_ROLLBACK_IN_BACKGROUND
);
95 myTrackChangedOnServer
.setSelected(settings
.CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND
);
96 for (VcsShowOptionsSettingImpl setting
: myPromptOptions
.keySet()) {
97 myPromptOptions
.get(setting
).setSelected(setting
.getValue());
101 public JComponent
getPanel() {
106 public String
getDisplayName() {
110 public Icon
getIcon() {
114 public String
getHelpTopic() {
115 return "project.propVCSSupport.Background";
118 public JComponent
createComponent() {
122 public void disposeUIResources() {