1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.theplugin.idea.config;
18
19 import com.atlassian.theplugin.commons.configuration.PluginConfiguration;
20 import com.atlassian.theplugin.idea.GeneralConfigForm;
21 import com.atlassian.theplugin.idea.autoupdate.NewVersionChecker;
22
23 import javax.swing.*;
24 import java.awt.*;
25
26
27
28
29 public final class GeneralConfigPanel extends JPanel implements ContentPanel {
30 private GeneralConfigForm dialog;
31
32 private PluginConfiguration localPluginConfigurationCopy;
33
34 private final PluginConfiguration globalPluginConfiguration;
35 private static GeneralConfigPanel instance;
36
37 private GeneralConfigPanel(PluginConfiguration globalPluginConfiguration) {
38 super();
39 this.globalPluginConfiguration = globalPluginConfiguration;
40 localPluginConfigurationCopy = this.globalPluginConfiguration;
41 setLayout(new CardLayout());
42 dialog = new GeneralConfigForm(NewVersionChecker.getInstance(globalPluginConfiguration));
43 add(dialog.getRootPane(), "GeneralConfig");
44 }
45
46 public static GeneralConfigPanel getInstance(PluginConfiguration globalPluginConfiguration) {
47 if (instance == null) {
48 instance = new GeneralConfigPanel(globalPluginConfiguration);
49 }
50
51 return instance;
52 }
53
54 public boolean isModified() {
55 return !localPluginConfigurationCopy.equals(globalPluginConfiguration)
56 || dialog.getIsAutoUpdateEnabled()
57 != globalPluginConfiguration.getGeneralConfigurationData().isAutoUpdateEnabled()
58 || dialog.getIsCheckUnstableVersionsEnabled()
59 != globalPluginConfiguration.getGeneralConfigurationData().isCheckUnstableVersionsEnabled()
60 || dialog.getIsAnonymousFeedbackEnabled()
61 != globalPluginConfiguration.getGeneralConfigurationData().getAnonymousFeedbackEnabled()
62 || dialog.getUseIdeaProxySettings()
63 != globalPluginConfiguration.getGeneralConfigurationData().getUseIdeaProxySettings();
64
65 }
66
67 public void setIsAnonymousFeedbackEnabled(Boolean isAnonymousFeedbackEnabled) {
68 dialog.setIsAnonymousFeedbackEnabled(isAnonymousFeedbackEnabled);
69 }
70
71 public String getTitle() {
72 return "General";
73 }
74
75 public void saveData() {
76 localPluginConfigurationCopy.getGeneralConfigurationData()
77 .setAutoUpdateEnabled(dialog.getIsAutoUpdateEnabled());
78 localPluginConfigurationCopy.getGeneralConfigurationData()
79 .setCheckUnstableVersionsEnabled(dialog.getIsCheckUnstableVersionsEnabled());
80 localPluginConfigurationCopy.getGeneralConfigurationData()
81 .setAnonymousFeedbackEnabled(dialog.getIsAnonymousFeedbackEnabled());
82 localPluginConfigurationCopy.getGeneralConfigurationData()
83 .setUseIdeaProxySettings(dialog.getUseIdeaProxySettings());
84
85 globalPluginConfiguration.getGeneralConfigurationData()
86 .setAutoUpdateEnabled(dialog.getIsAutoUpdateEnabled());
87 globalPluginConfiguration.getGeneralConfigurationData()
88 .setCheckUnstableVersionsEnabled(dialog.getIsCheckUnstableVersionsEnabled());
89 globalPluginConfiguration.getGeneralConfigurationData()
90 .setAnonymousFeedbackEnabled(dialog.getIsAnonymousFeedbackEnabled());
91 globalPluginConfiguration.getGeneralConfigurationData()
92 .setUseIdeaProxySettings(dialog.getUseIdeaProxySettings());
93 }
94
95 public void setData(PluginConfiguration config) {
96 localPluginConfigurationCopy = config;
97 dialog.setAutoUpdateEnabled(localPluginConfigurationCopy.getGeneralConfigurationData()
98 .isAutoUpdateEnabled());
99 dialog.setIsCheckUnstableVersionsEnabled(localPluginConfigurationCopy.getGeneralConfigurationData()
100 .isCheckUnstableVersionsEnabled());
101 dialog.setIsAnonymousFeedbackEnabled(localPluginConfigurationCopy.getGeneralConfigurationData()
102 .getAnonymousFeedbackEnabled());
103 dialog.setUseIdeaProxySettings(localPluginConfigurationCopy.getGeneralConfigurationData()
104 .getUseIdeaProxySettings());
105 }
106 }