KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > rero > gui > script > UIOperators


1 package rero.gui.script;
2
3 import rero.gui.*;
4 import rero.gui.windows.*;
5 import rero.gui.input.*;
6 import rero.ircfw.*;
7
8 import rero.config.*;
9
10 import sleep.engine.*;
11 import sleep.runtime.*;
12 import sleep.interfaces.*;
13 import sleep.bridges.BridgeUtilities;
14
15 import java.awt.*;
16 import java.util.*;
17
18 import text.*;
19 import text.list.*;
20
21 public class UIOperators implements Function, Loadable
22 {
23    protected IRCSession session;
24
25    public UIOperators(IRCSession _session)
26    {
27       session = _session;
28    }
29
30    public boolean scriptLoaded(ScriptInstance script)
31    {
32       String JavaDoc[] contents = new String JavaDoc[] {
33           "&refreshMenubar",
34           "&showOptionDialog",
35           "&showHelpDialog",
36           "&showAboutDialog",
37           "&showSearchDialog"
38       };
39
40       for (int x = 0; x < contents.length; x++)
41       {
42          script.getScriptEnvironment().getEnvironment().put(contents[x], this);
43       }
44
45       script.getScriptEnvironment().getEnvironment().put("&showSortedList", new openSortedWindow());
46       script.getScriptEnvironment().getEnvironment().put("&refreshData", new refreshData());
47
48       return true;
49    }
50
51    private class openSortedWindow implements Function
52    {
53       public Scalar evaluate(String JavaDoc name, ScriptInstance script, Stack locals)
54       {
55           if (locals.size() < 3)
56              return SleepUtils.getEmptyScalar();
57      
58           String JavaDoc title = locals.pop().toString();
59           String JavaDoc hook = locals.pop().toString();
60           Object JavaDoc data = locals.pop();
61
62           return SleepUtils.getScalar(session.createSortedWindow(title, hook, data, extractData(locals)));
63       }
64    }
65
66    private static LinkedList extractData(Stack locals)
67    {
68        LinkedList data = new LinkedList();
69
70        while (!locals.isEmpty())
71           data.add(locals.pop().toString());
72
73        return data;
74    }
75
76    private static class refreshData implements Function
77    {
78       public Scalar evaluate(String JavaDoc name, ScriptInstance script, Stack locals)
79       {
80           ScriptedListDialog dialog = (ScriptedListDialog)BridgeUtilities.getObject(locals);
81
82           dialog.refreshData();
83
84           return SleepUtils.getEmptyScalar();
85       }
86    }
87
88    public boolean scriptUnloaded(ScriptInstance script)
89    {
90       return true;
91    }
92
93    public Scalar evaluate(String JavaDoc function, ScriptInstance script, Stack locals)
94    {
95       if (function.equals("&refreshMenubar"))
96       {
97           ClientState.getClientState().fireChange("loaded.scripts", null);
98       }
99       else if (function.equals("&showOptionDialog"))
100       {
101           session.getCapabilities().getGlobalCapabilities().showOptionDialog(BridgeUtilities.getString(locals, ""));
102       }
103       else if (function.equals("&showHelpDialog"))
104       {
105           session.getCapabilities().getGlobalCapabilities().showHelpDialog(BridgeUtilities.getString(locals, ""));
106       }
107       else if (function.equals("&showAboutDialog"))
108       {
109           session.getCapabilities().getGlobalCapabilities().showAboutDialog();
110       }
111       else if (function.equals("&showSearchDialog"))
112       {
113           session.getCapabilities().getUserInterface().showSearchDialog(BridgeUtilities.getString(locals, "%STATUS%"));
114       }
115   
116       return SleepUtils.getEmptyScalar();
117    }
118 }
119
Popular Tags