1 package org.gforge.soapclient;
3 import javax.swing.JComponent;
4 import javax.swing.JFrame;
5 import javax.swing.JMenu;
6 import javax.swing.JMenuBar;
7 import javax.swing.JMenuItem;
8 import javax.swing.JOptionPane;
9 import javax.swing.JTabbedPane;
10 import javax.swing.event.ChangeEvent;
11 import javax.swing.event.ChangeListener;
12 import java.awt.Toolkit;
13 import java.awt.event.ActionEvent;
14 import java.awt.event.ActionListener;
18 private class SwitchedTabsListener implements ChangeListener {
19 public void stateChanged(ChangeEvent e) {
20 if (saveConfigurationOnNextTabSwitch) {
21 configurationPanel.save();
22 saveConfigurationOnNextTabSwitch = false;
24 JTabbedPane pane = (JTabbedPane)e.getSource();
25 if (pane.getSelectedComponent() instanceof ConfigurationPanel) {
26 saveConfigurationOnNextTabSwitch = true;
31 private boolean saveConfigurationOnNextTabSwitch;
33 private static class AboutListener implements ActionListener {
34 public void actionPerformed(ActionEvent e) {
35 JOptionPane.showMessageDialog(null, "Comments? Suggestions? http://gforge.org/projects/gforge/. Thanks!");
39 private static class ExitListener implements ActionListener {
40 public void actionPerformed(ActionEvent e) {
48 frame = new JFrame("GForge");
50 frame.getContentPane().add(getTabbedPanel());
51 frame.setJMenuBar(getMenuBar());
53 frame.setSize(600, 400);
54 int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;
55 int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
56 frame.setLocation((screenWidth/2) - frame.getWidth()/2, (screenHeight/2) - frame.getHeight()/2);
57 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
61 private JMenuBar getMenuBar() {
62 JMenuBar menuBar = new JMenuBar();
64 JMenu fileMenu = new JMenu("File");
65 fileMenu.setMnemonic('f');
66 JMenuItem exitItem = new JMenuItem("Exit");
67 exitItem.setMnemonic('x');
68 exitItem.addActionListener(new ExitListener());
69 fileMenu.add(exitItem);
70 menuBar.add(fileMenu);
72 JMenu helpMenu = new JMenu("Help");
73 JMenuItem aboutItem = new JMenuItem("About");
74 aboutItem.addActionListener(new AboutListener());
75 helpMenu.add(aboutItem);
76 menuBar.add(helpMenu);
81 private ConfigurationPanel configurationPanel = new ConfigurationPanel();
82 private GeneralPanel generalPanel = new GeneralPanel();
84 private JComponent getTabbedPanel() {
85 JTabbedPane tabbedPane = new JTabbedPane();
86 tabbedPane.add("General", generalPanel);
87 tabbedPane.add("Configuration", configurationPanel);
88 tabbedPane.addChangeListener(new SwitchedTabsListener());
92 public static void main(String [] args) {