KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > client > FortuneManager


1 // You can redistribute this software and/or modify it under the terms of
2
// the Ozone Library License version 1 published by ozone-db.org.
3
//
4
// Copyright (C) 1997-@year@ by Per Nyfelt. All rights reserved.
5
//
6
// $Id: FortuneManager.java,v 1.2 2003/11/29 16:19:28 per_nyfelt Exp $
7
package client;
8
9 import java.awt.*;
10 import java.awt.event.*;
11 import java.util.Properties JavaDoc;
12 import java.rmi.RemoteException JavaDoc;
13 import javax.naming.Context JavaDoc;
14 import javax.naming.InitialContext JavaDoc;
15 import javax.rmi.PortableRemoteObject JavaDoc;
16 import javax.swing.*;
17
18 import ejb.Greeter;
19 import ejb.GreeterHome;
20
21 /**
22  *
23  * <br> Date: Sep 12, 2002
24  * @author Per Nyfelt
25  */

26 public class FortuneManager extends JFrame {
27
28     private JTextArea outPutArea;
29     private JButton addFortuneButton;
30     private JTextField addFortuneTF;
31     private JButton showFortuneButton;
32     private JButton showAllFortunesButton;
33     private JButton resetFortunesButton;
34     private Greeter greeter;
35
36     public FortuneManager() {
37         initGUI();
38         initServerObjects();
39     }
40
41     private void initServerObjects() {
42         try {
43             Properties JavaDoc props = new Properties JavaDoc();
44             props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
45             props.setProperty(Context.PROVIDER_URL, "localhost:1099");
46             Context JavaDoc ctx = new InitialContext JavaDoc(props);
47             Object JavaDoc ref = ctx.lookup("Greeter");
48             GreeterHome home = (GreeterHome) PortableRemoteObject.narrow(ref, GreeterHome.class);
49             greeter = home.create();
50         } catch (Exception JavaDoc e) {
51             e.printStackTrace();
52             outPutArea.setText(e.toString());
53         }
54     }
55
56     private void initGUI() {
57         this.setTitle("Fortune Manager");
58         Container container = this.getContentPane();
59         container.setLayout(new BorderLayout());
60
61         container.add(inputPanel(), BorderLayout.NORTH);
62         container.add(outputPanel(), BorderLayout.CENTER);
63         container.add(actionPanel(), BorderLayout.SOUTH);
64
65         this.addWindowListener(new WindowCloser());
66     }
67
68     private JPanel inputPanel() {
69         JPanel panel = new JPanel();
70         panel.setLayout(new GridBagLayout());
71         GridBagConstraints gbc = new GridBagConstraints();
72         gbc.anchor = GridBagConstraints.WEST;
73         gbc.insets = new Insets(25, 15, 5, 5);
74
75         gbc.gridy = 0;
76         panel.add(addFortuneTF = new JTextField(30), gbc);
77         panel.add(addFortuneButton = new JButton("Add fortune"), gbc);
78         addFortuneButton.addActionListener(new AddFortuneAction());
79
80         return panel;
81     }
82
83     private JPanel actionPanel() {
84         JPanel panel = new JPanel();
85         panel.setLayout(new GridBagLayout());
86         GridBagConstraints gbc = new GridBagConstraints();
87         gbc.insets = new Insets(5, 5, 5, 5);
88
89         panel.add(showFortuneButton = new JButton("Show fortune"), gbc);
90         panel.add(showAllFortunesButton = new JButton("Show all fortunes"), gbc);
91         panel.add(resetFortunesButton = new JButton("Reset fortunes"), gbc);
92         showFortuneButton.addActionListener(new ShowFortuneAction());
93         showAllFortunesButton.addActionListener(new ShowAllFortunesAction());
94         resetFortunesButton.addActionListener(new ResetFortunesAction());
95         return panel;
96     }
97
98     private JPanel outputPanel() {
99         JPanel panel = new JPanel();
100         JScrollPane scrollPane = new JScrollPane(outPutArea = new JTextArea(20, 52));
101         panel.add(scrollPane);
102         return panel;
103     }
104
105     private class AddFortuneAction implements ActionListener {
106
107         public void actionPerformed(ActionEvent e) {
108             outPutArea.append("\nAdding Fortune...\n");
109             try {
110                 greeter.addGreeting(addFortuneTF.getText());
111             } catch (RemoteException JavaDoc e1) {
112                 e1.printStackTrace();
113             }
114         }
115     }
116
117     private class ShowFortuneAction implements ActionListener {
118
119         public void actionPerformed(ActionEvent e) {
120             outPutArea.append("\n");
121             try {
122                 outPutArea.append(greeter.getGreeting());
123             } catch (RemoteException JavaDoc e1) {
124                 e1.printStackTrace();
125             }
126         }
127     }
128
129     private class ShowAllFortunesAction implements ActionListener {
130
131         public void actionPerformed(ActionEvent e) {
132             outPutArea.append("\n");
133             try {
134                 outPutArea.append(greeter.getAllGreetings().toString());
135             } catch (RemoteException JavaDoc e1) {
136                 e1.printStackTrace();
137             }
138         }
139     }
140
141     private class ResetFortunesAction implements ActionListener {
142
143         public void actionPerformed(ActionEvent e) {
144             try {
145                 greeter.removeAllGreetings();
146                 outPutArea.setText("");
147             } catch (RemoteException JavaDoc e1) {
148                 e1.printStackTrace();
149             }
150         }
151     }
152
153     private class WindowCloser extends WindowAdapter {
154
155         public void windowClosing(WindowEvent e) {
156             setVisible(false);
157             dispose();
158             System.exit(0);
159         }
160     }
161
162     public static void main(String JavaDoc[] args) {
163         FortuneManager fortuneManager = new FortuneManager();
164         fortuneManager.setSize(600, 500);
165         fortuneManager.setLocation(100, 100);
166         fortuneManager.setVisible(true);
167     }
168
169 }
170
Popular Tags