View Javadoc

1   /**
2    * Copyright (C) 2008 Atlassian
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *    http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
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   * General plugin config form.
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 }