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.cfg.CfgManager;
20 import com.atlassian.theplugin.commons.configuration.PluginConfiguration;
21 import com.atlassian.theplugin.commons.configuration.PluginConfigurationBean;
22 import com.atlassian.theplugin.idea.Constants;
23 import com.atlassian.theplugin.idea.config.serverconfig.BambooGeneralForm;
24 import com.atlassian.theplugin.idea.config.serverconfig.CrucibleGeneralForm;
25 import com.atlassian.theplugin.idea.config.serverconfig.JiraGeneralForm;
26
27 import javax.swing.*;
28 import java.awt.*;
29
30 public final class ConfigPanel extends JPanel {
31
32 private transient PluginConfigurationBean localPluginConfigurationCopy = null;
33
34 private final FooterPanel footerPanel = new FooterPanel();
35 private final JTabbedPane contentPanel = new JTabbedPane();
36
37 private final BambooGeneralForm bambooConfigPanel;
38 private final CrucibleGeneralForm crucibleConfigPanel;
39 private final JiraGeneralForm jiraConfigPanel;
40 private final GeneralConfigPanel generalConfigPanel;
41
42 private final transient PluginConfiguration globalConfigurationBean;
43
44 private final CfgManager cfgManager;
45
46
47
48
49
50
51
52 public ConfigPanel(PluginConfiguration globalConfigurationBean,
53
54 this.cfgManager = cfgManager;
55
56
57
58
59 this.bambooConfigPanel = BambooGeneralForm.getInstance(globalConfigurationBean);
60 this.crucibleConfigPanel = CrucibleGeneralForm.getInstance(globalConfigurationBean);
61 this.jiraConfigPanel = JiraGeneralForm.getInstance(globalConfigurationBean);
62 this.generalConfigPanel = GeneralConfigPanel.getInstance(globalConfigurationBean);
63 this.globalConfigurationBean = globalConfigurationBean;
64 initLayout();
65 }
66
67
68 private void initLayout() {
69 setLayout(new BorderLayout());
70
71 contentPanel.setOpaque(true);
72 contentPanel.setBackground(new Color(Constants.BG_COLOR_R, Constants.BG_COLOR_G, Constants.BG_COLOR_B));
73
74
75
76
77
78 contentPanel.add(bambooConfigPanel.getTitle(), bambooConfigPanel);
79
80
81 contentPanel.add(crucibleConfigPanel.getTitle(), crucibleConfigPanel);
82
83
84 contentPanel.add(jiraConfigPanel.getTitle(), jiraConfigPanel);
85
86
87 contentPanel.add(generalConfigPanel.getTitle(), generalConfigPanel);
88
89 add(contentPanel, BorderLayout.CENTER);
90 add(footerPanel, BorderLayout.SOUTH);
91 }
92
93
94
95 public boolean isModified() {
96 return !this.localPluginConfigurationCopy.equals(globalConfigurationBean)
97
98
99 || bambooConfigPanel.isModified()
100 || crucibleConfigPanel.isModified()
101 || jiraConfigPanel.isModified()
102 || generalConfigPanel.isModified();
103 }
104
105 public void saveData() {
106
107 if (isModified()) {
108
109 generalConfigPanel.saveData();
110 bambooConfigPanel.saveData();
111 jiraConfigPanel.saveData();
112 crucibleConfigPanel.saveData();
113 }
114 }
115
116 public void setData() {
117 this.localPluginConfigurationCopy = new PluginConfigurationBean(globalConfigurationBean);
118
119
120 generalConfigPanel.setData(localPluginConfigurationCopy);
121
122 bambooConfigPanel.setData(localPluginConfigurationCopy);
123 jiraConfigPanel.setData(localPluginConfigurationCopy);
124 crucibleConfigPanel.setData(localPluginConfigurationCopy);
125 }
126 }