KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > gui > plugin > ConfigurationDialog


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16

17 package org.columba.core.gui.plugin;
18
19 import java.awt.BorderLayout JavaDoc;
20 import java.awt.GridLayout JavaDoc;
21 import java.awt.event.ActionEvent JavaDoc;
22 import java.awt.event.ActionListener JavaDoc;
23 import java.awt.event.KeyEvent JavaDoc;
24
25 import javax.swing.BorderFactory JavaDoc;
26 import javax.swing.JButton JavaDoc;
27 import javax.swing.JComponent JavaDoc;
28 import javax.swing.JDialog JavaDoc;
29 import javax.swing.JFrame JavaDoc;
30 import javax.swing.JPanel JavaDoc;
31 import javax.swing.KeyStroke JavaDoc;
32 import javax.swing.SwingConstants JavaDoc;
33
34 import org.columba.api.plugin.IExtension;
35 import org.columba.api.plugin.IExtensionHandler;
36 import org.columba.api.plugin.IExtensionHandlerKeys;
37 import org.columba.api.plugin.PluginException;
38 import org.columba.api.plugin.PluginHandlerNotFoundException;
39 import org.columba.api.plugin.PluginLoadingFailedException;
40 import org.columba.core.gui.base.ButtonWithMnemonic;
41 import org.columba.core.gui.base.SingleSideEtchedBorder;
42 import org.columba.core.help.HelpManager;
43 import org.columba.core.plugin.PluginManager;
44 import org.columba.core.resourceloader.GlobalResourceLoader;
45
46 /**
47  * @author frd
48  */

49
50 public class ConfigurationDialog extends JDialog JavaDoc implements ActionListener JavaDoc {
51     protected JButton JavaDoc okButton;
52
53     protected JButton JavaDoc cancelButton;
54
55     protected JButton JavaDoc helpButton;
56
57     protected String JavaDoc pluginId;
58
59     protected AbstractConfigPlugin plugin;
60
61     protected JPanel JavaDoc pluginPanel;
62
63     public ConfigurationDialog(String JavaDoc pluginId)
64             throws PluginHandlerNotFoundException, PluginLoadingFailedException {
65         // modal dialog
66
super((JFrame JavaDoc) null, true);
67
68         IExtensionHandler h = PluginManager
69                 .getInstance().getExtensionHandler(IExtensionHandlerKeys.ORG_COLUMBA_CORE_CONFIG);
70
71         IExtension extension = h.getExtension(pluginId);
72         try {
73             plugin = (AbstractConfigPlugin) extension.instanciateExtension(null);
74         } catch (PluginException e) {
75             // TODO Auto-generated catch block
76
e.printStackTrace();
77         }
78
79         pluginPanel = plugin.createPanel();
80
81         initComponents();
82
83         // model->view
84
plugin.updateComponents(true);
85
86         pack();
87         setLocationRelativeTo(null);
88     }
89
90     protected void initComponents() {
91         JPanel JavaDoc mainPanel = new JPanel JavaDoc();
92         mainPanel.setLayout(new BorderLayout JavaDoc());
93         mainPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
94         getContentPane().add(mainPanel);
95
96         // centerpanel
97
JPanel JavaDoc centerPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
98
99         // centerPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
100
centerPanel.add(pluginPanel);
101         mainPanel.add(centerPanel, BorderLayout.CENTER);
102
103         JPanel JavaDoc bottomPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
104         bottomPanel.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP));
105
106         JPanel JavaDoc buttonPanel = new JPanel JavaDoc(new GridLayout JavaDoc(1, 3, 6, 0));
107         buttonPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
108         okButton = new ButtonWithMnemonic(GlobalResourceLoader.getString(
109                 "global", "global", "ok"));
110         okButton.setActionCommand("OK");
111         okButton.addActionListener(this);
112         buttonPanel.add(okButton);
113
114         ButtonWithMnemonic cancelButton = new ButtonWithMnemonic(
115                 GlobalResourceLoader.getString("global", "global", "cancel"));
116         cancelButton.setActionCommand("CANCEL");
117         cancelButton.addActionListener(this);
118         buttonPanel.add(cancelButton);
119         helpButton = new ButtonWithMnemonic(GlobalResourceLoader.getString(
120                 "global", "global", "help"));
121         buttonPanel.add(helpButton);
122
123         bottomPanel.add(buttonPanel, BorderLayout.EAST);
124         getContentPane().add(bottomPanel, BorderLayout.SOUTH);
125
126         // setContentPane(mainPanel);
127
getRootPane().setDefaultButton(okButton);
128         getRootPane().registerKeyboardAction(this, "CANCEL",
129                 KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
130                 JComponent.WHEN_IN_FOCUSED_WINDOW);
131
132         // associate with JavaHelp
133
HelpManager.getInstance().enableHelpOnButton(helpButton,
134                 "extending_columba_1");
135         HelpManager.getInstance().enableHelpKey(getRootPane(),
136                 "extending_columba_1");
137     }
138
139     public void actionPerformed(ActionEvent JavaDoc e) {
140         String JavaDoc action = e.getActionCommand();
141
142         if (action.equals("OK")) {
143             // view -> model
144
plugin.updateComponents(false);
145
146             setVisible(false);
147         } else if (action.equals("CANCEL")) {
148             setVisible(false);
149         }
150     }
151 }
152
Popular Tags