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.idea.GeneralConfigForm;
21  import com.atlassian.theplugin.idea.autoupdate.NewVersionChecker;
22  
23  import javax.swing.*;
24  import java.awt.*;
25  
26  /**
27   * General plugin config form.
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 }