xref: /aosp_15_r20/external/javassist/sample/rmi/CountApplet.java (revision f1fbf3c2ab775ce834e0af96b7a85bdc7a0eac65)
1*f1fbf3c2SXin Li package sample.rmi;
2*f1fbf3c2SXin Li 
3*f1fbf3c2SXin Li import java.applet.*;
4*f1fbf3c2SXin Li import java.awt.*;
5*f1fbf3c2SXin Li import java.awt.event.*;
6*f1fbf3c2SXin Li import javassist.tools.rmi.ObjectImporter;
7*f1fbf3c2SXin Li import javassist.tools.rmi.ObjectNotFoundException;
8*f1fbf3c2SXin Li import javassist.tools.web.Viewer;
9*f1fbf3c2SXin Li 
10*f1fbf3c2SXin Li public class CountApplet extends Applet implements ActionListener {
11*f1fbf3c2SXin Li     private Font font;
12*f1fbf3c2SXin Li     private ObjectImporter importer;
13*f1fbf3c2SXin Li     private Counter counter;
14*f1fbf3c2SXin Li     private AlertDialog dialog;
15*f1fbf3c2SXin Li     private String message;
16*f1fbf3c2SXin Li 
17*f1fbf3c2SXin Li     private String paramButton;
18*f1fbf3c2SXin Li     private String paramName;
19*f1fbf3c2SXin Li 
init()20*f1fbf3c2SXin Li     public void init() {
21*f1fbf3c2SXin Li 	paramButton = getParameter("button");
22*f1fbf3c2SXin Li 	paramName = getParameter("name");
23*f1fbf3c2SXin Li 	importer = new ObjectImporter(this);
24*f1fbf3c2SXin Li 	commonInit();
25*f1fbf3c2SXin Li     }
26*f1fbf3c2SXin Li 
27*f1fbf3c2SXin Li     /* call this method instead of init() if this program is not run
28*f1fbf3c2SXin Li      * as an applet.
29*f1fbf3c2SXin Li      */
applicationInit()30*f1fbf3c2SXin Li     public void applicationInit() {
31*f1fbf3c2SXin Li 	paramButton = "OK";
32*f1fbf3c2SXin Li 	paramName = "counter";
33*f1fbf3c2SXin Li 	Viewer cl = (Viewer)getClass().getClassLoader();
34*f1fbf3c2SXin Li 	importer = new ObjectImporter(cl.getServer(), cl.getPort());
35*f1fbf3c2SXin Li 	commonInit();
36*f1fbf3c2SXin Li     }
37*f1fbf3c2SXin Li 
commonInit()38*f1fbf3c2SXin Li     private void commonInit() {
39*f1fbf3c2SXin Li 	font = new Font("SansSerif", Font.ITALIC, 40);
40*f1fbf3c2SXin Li 	Button b = new Button(paramButton);
41*f1fbf3c2SXin Li 	b.addActionListener(this);
42*f1fbf3c2SXin Li 	add(b);
43*f1fbf3c2SXin Li 	dialog = new AlertDialog();
44*f1fbf3c2SXin Li 	message = "???";
45*f1fbf3c2SXin Li     }
46*f1fbf3c2SXin Li 
destroy()47*f1fbf3c2SXin Li     public void destroy() {
48*f1fbf3c2SXin Li 	dialog.dispose();
49*f1fbf3c2SXin Li     }
50*f1fbf3c2SXin Li 
start()51*f1fbf3c2SXin Li     public void start() {
52*f1fbf3c2SXin Li 	try {
53*f1fbf3c2SXin Li 	    counter = (Counter)importer.lookupObject(paramName);
54*f1fbf3c2SXin Li 	    message = Integer.toString(counter.get());
55*f1fbf3c2SXin Li 	}
56*f1fbf3c2SXin Li 	catch (ObjectNotFoundException e) {
57*f1fbf3c2SXin Li 	    dialog.show(e.toString());
58*f1fbf3c2SXin Li 	}
59*f1fbf3c2SXin Li     }
60*f1fbf3c2SXin Li 
actionPerformed(ActionEvent e)61*f1fbf3c2SXin Li     public void actionPerformed(ActionEvent e) {
62*f1fbf3c2SXin Li 	counter.increase();
63*f1fbf3c2SXin Li 	message = Integer.toString(counter.get());
64*f1fbf3c2SXin Li 	repaint();
65*f1fbf3c2SXin Li     }
66*f1fbf3c2SXin Li 
paint(Graphics g)67*f1fbf3c2SXin Li     public void paint(Graphics g) {
68*f1fbf3c2SXin Li 	g.setFont(font);
69*f1fbf3c2SXin Li 	g.drawRect(50, 50, 100, 100);
70*f1fbf3c2SXin Li 	g.setColor(Color.blue);
71*f1fbf3c2SXin Li 	g.drawString(message, 60, 120);
72*f1fbf3c2SXin Li     }
73*f1fbf3c2SXin Li 
main(String[] args)74*f1fbf3c2SXin Li     public static void main(String[] args) {
75*f1fbf3c2SXin Li 	Frame f = new Frame("CountApplet");
76*f1fbf3c2SXin Li 	CountApplet ca = new CountApplet();
77*f1fbf3c2SXin Li 	f.add(ca);
78*f1fbf3c2SXin Li 	f.setSize(300, 300);
79*f1fbf3c2SXin Li 	ca.applicationInit();
80*f1fbf3c2SXin Li 	ca.start();
81*f1fbf3c2SXin Li 	f.setVisible(true);
82*f1fbf3c2SXin Li     }
83*f1fbf3c2SXin Li }
84