1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.theplugin.idea;
18
19 import com.intellij.ide.DataManager;
20 import com.intellij.openapi.options.Configurable;
21 import com.intellij.openapi.options.ShowSettingsUtil;
22 import com.intellij.openapi.project.Project;
23 import com.intellij.openapi.util.IconLoader;
24 import com.intellij.ui.HyperlinkLabel;
25
26 import javax.swing.*;
27 import javax.swing.event.HyperlinkEvent;
28 import javax.swing.event.HyperlinkListener;
29 import java.awt.*;
30
31 public class ToolWindowConfigPanel extends JPanel {
32 private static final int ROW_COUNT = 3;
33
34 public ToolWindowConfigPanel(final Project project) {
35 super(new GridBagLayout());
36
37 JPanel panel = new JPanel(new GridLayout(ROW_COUNT, 1));
38 GridBagConstraints c = new GridBagConstraints();
39 c.anchor = GridBagConstraints.CENTER;
40 this.add(panel, c);
41
42 HyperlinkLabel projectSettingsLink = new HyperlinkLabel("Configure Plugin Project Settings");
43 projectSettingsLink.addHyperlinkListener(new HyperlinkListener() {
44 public void hyperlinkUpdate(HyperlinkEvent e) {
45
46 Configurable component = project.getComponent(ProjectConfigurationComponent.class);
47 ShowSettingsUtil.getInstance().editConfigurable(
48 IdeaHelper.getCurrentProject(DataManager.getInstance().getDataContext(ToolWindowConfigPanel.this)),
49 component
50 );
51 }
52 });
53
54 projectSettingsLink.setIcon(IconLoader.getIcon("/general/ideOptions.png"));
55
56 panel.add(projectSettingsLink);
57
58 HyperlinkLabel globalSettingsLink = new HyperlinkLabel("Configure Plugin Global Settings");
59 globalSettingsLink.addHyperlinkListener(new HyperlinkListener() {
60 public void hyperlinkUpdate(final HyperlinkEvent e) {
61
62 Configurable component = project.getComponent(ThePluginApplicationComponent.class);
63 ShowSettingsUtil.getInstance().editConfigurable(
64 IdeaHelper.getCurrentProject(DataManager.getInstance().getDataContext(ToolWindowConfigPanel.this)),
65 IdeaHelper.getAppComponent());
66 }
67 });
68
69 globalSettingsLink.setIcon(IconLoader.getIcon("/general/ideOptions.png"));
70
71 panel.add(new JLabel(" "));
72 panel.add(globalSettingsLink);
73
74
75 }
76 }