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.commons.util.MiscUtil;
21 import com.atlassian.theplugin.idea.GeneralConfigForm;
22 import com.atlassian.theplugin.idea.autoupdate.NewVersionChecker;
23
24 import javax.swing.*;
25 import java.awt.*;
26
27
28
29
30 public final class GeneralConfigPanel extends JPanel implements ContentPanel {
31 private GeneralConfigForm dialog;
32
33 private PluginConfiguration localPluginConfigurationCopy;
34
35 private final PluginConfiguration globalPluginConfiguration;
36
37 public GeneralConfigPanel(PluginConfiguration globalPluginConfiguration, final NewVersionChecker newVersionChecker) {
38 this.globalPluginConfiguration = globalPluginConfiguration;
39 localPluginConfigurationCopy = this.globalPluginConfiguration;
40 setLayout(new CardLayout());
41 dialog = new GeneralConfigForm(newVersionChecker);
42 add(dialog.getRootPane(), "GeneralConfig");
43 }
44
45 public boolean isModified() {
46 return !localPluginConfigurationCopy.equals(globalPluginConfiguration)
47 || dialog.getIsAutoUpdateEnabled()
48 != globalPluginConfiguration.getGeneralConfigurationData().isAutoUpdateEnabled()
49 || dialog.isHttpServerEnabled()
50 != globalPluginConfiguration.getGeneralConfigurationData().isHttpServerEnabled()
51 || dialog.getIsCheckUnstableVersionsEnabled()
52 != globalPluginConfiguration.getGeneralConfigurationData().isCheckUnstableVersionsEnabled()
53 || MiscUtil.isModified(dialog.getIsAnonymousFeedbackEnabled(),
54 globalPluginConfiguration.getGeneralConfigurationData().getAnonymousEnhancedFeedbackEnabled())
55 || dialog.getUseIdeaProxySettings()
56 != globalPluginConfiguration.getGeneralConfigurationData().getUseIdeaProxySettings()
57 || MiscUtil.isModified(dialog.getCheckNotButtonOption(),
58 globalPluginConfiguration.getGeneralConfigurationData().getCheckNowButtonOption());
59
60 }
61
62 public void setIsAnonymousFeedbackEnabled(Boolean isAnonymousFeedbackEnabled) {
63 dialog.setIsAnonymousFeedbackEnabled(isAnonymousFeedbackEnabled);
64 }
65
66 public String getTitle() {
67 return "General";
68 }
69
70 public void saveData() {
71 localPluginConfigurationCopy.getGeneralConfigurationData().setAutoUpdateEnabled(dialog.getIsAutoUpdateEnabled());
72 localPluginConfigurationCopy.getGeneralConfigurationData().setHttpServerEnabled(dialog.isHttpServerEnabled());
73 localPluginConfigurationCopy.getGeneralConfigurationData()
74 .setCheckUnstableVersionsEnabled(dialog.getIsCheckUnstableVersionsEnabled());
75 localPluginConfigurationCopy.getGeneralConfigurationData()
76 .setAnonymousEnhancedFeedbackEnabled(dialog.getIsAnonymousFeedbackEnabled());
77 localPluginConfigurationCopy.getGeneralConfigurationData().setUseIdeaProxySettings(dialog.getUseIdeaProxySettings());
78 localPluginConfigurationCopy.getGeneralConfigurationData().setCheckNowButtonOption(dialog.getCheckNotButtonOption());
79
80 globalPluginConfiguration.getGeneralConfigurationData().setAutoUpdateEnabled(dialog.getIsAutoUpdateEnabled());
81 globalPluginConfiguration.getGeneralConfigurationData().setHttpServerEnabled(dialog.isHttpServerEnabled());
82 globalPluginConfiguration.getGeneralConfigurationData()
83 .setCheckUnstableVersionsEnabled(dialog.getIsCheckUnstableVersionsEnabled());
84 globalPluginConfiguration.getGeneralConfigurationData()
85 .setAnonymousEnhancedFeedbackEnabled(dialog.getIsAnonymousFeedbackEnabled());
86 globalPluginConfiguration.getGeneralConfigurationData().setUseIdeaProxySettings(dialog.getUseIdeaProxySettings());
87 globalPluginConfiguration.getGeneralConfigurationData().setCheckNowButtonOption(dialog.getCheckNotButtonOption());
88 }
89
90 public void setData(PluginConfiguration config) {
91 localPluginConfigurationCopy = config;
92 dialog.setAutoUpdateEnabled(localPluginConfigurationCopy.getGeneralConfigurationData()
93 .isAutoUpdateEnabled());
94 dialog.setHttpServerEnabled(localPluginConfigurationCopy.getGeneralConfigurationData()
95 .isHttpServerEnabled());
96 dialog.setIsCheckUnstableVersionsEnabled(localPluginConfigurationCopy.getGeneralConfigurationData()
97 .isCheckUnstableVersionsEnabled());
98 dialog.setIsAnonymousFeedbackEnabled(localPluginConfigurationCopy.getGeneralConfigurationData()
99 .getAnonymousEnhancedFeedbackEnabled());
100 dialog.setUseIdeaProxySettings(localPluginConfigurationCopy.getGeneralConfigurationData()
101 .getUseIdeaProxySettings());
102 dialog.setCheckNowButtonOption(localPluginConfigurationCopy.getGeneralConfigurationData()
103 .getCheckNowButtonOption());
104 }
105 }