KickJava   Java API By Example, From Geeks To Geeks.

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


1 package rero.gui.script;
2
3 import rero.bridges.event.EventBridge;
4 import rero.gui.IRCSession;
5 import rero.gui.windows.ChannelWindow;
6 import rero.gui.windows.ClientWindowEvent;
7 import rero.gui.windows.EmptyWindow;
8 import rero.gui.windows.StatusWindow;
9
10 public class UIScriptBridge {
11   protected IRCSession session;
12
13   protected WindowStateListener windowState; // dispatches window state related events (on close,open,minimize etc.)
14
protected WindowDataListener windowData; // dispatches the "on window" event for text being echo'd to a window
15
protected WindowClickListener windowClick; // handles the "on click" event for text being clicked on in a window...
16
protected WindowClickListener windowDoubleClick; // handles the "on dclick" event for text being (double) clicked on in a listbox...
17
protected WindowClickListener windowSpecialClick; // handles the "on sclick" event for text being (double) clicked on in a special window
18
protected WindowInputListener windowInput; // handles the "on input" event
19

20   protected WindowAreaClickListener areaClickListener; // handles double clicks for empty channel areas
21

22   protected SessionOperators sessionOps;
23
24   protected WindowOperators windowOps; // functions related to windows specifically
25
protected WindowManagementOperators windowMgmt; // functions related to windows specifically
26

27   protected UIOperators interfaceOps;
28
29   public UIScriptBridge(IRCSession _session) {
30     session = _session;
31
32     EventBridge bridge = (EventBridge) session.getCapabilities().getDataStructure("eventBridge");
33
34     windowState = new WindowStateListener(session);
35     windowState.registerListener(bridge);
36
37     windowData = new WindowDataListener(session.getCapabilities().getUserInterface());
38     bridge.registerEvent("window", windowData);
39
40     windowClick = new WindowClickListener();
41     bridge.registerEvent("click", windowClick);
42
43     windowDoubleClick = new WindowClickListener();
44     bridge.registerEvent("dclick", windowDoubleClick);
45
46     areaClickListener = new WindowAreaClickListener();
47     bridge.registerEvent("cclick", areaClickListener);
48
49     windowSpecialClick = new WindowClickListener();
50     bridge.registerEvent("sclick", windowSpecialClick);
51
52     windowInput = new WindowInputListener();
53     bridge.registerEvent("input", windowInput);
54
55     windowOps = new WindowOperators(session);
56     session.getCapabilities().getScriptCore().addBridge(windowOps);
57
58     windowMgmt = new WindowManagementOperators(session);
59     session.getCapabilities().getScriptCore().addBridge(windowMgmt);
60
61     sessionOps = new SessionOperators(session);
62     session.getCapabilities().getScriptCore().addBridge(sessionOps);
63
64     interfaceOps = new UIOperators(session);
65     session.getCapabilities().getScriptCore().addBridge(interfaceOps);
66   }
67
68   /**
69    * called to notify the scripting bridge that a window has been created, this is for listeners and such to get
70    * registered
71    */

72   public void windowCreated(final StatusWindow window) {
73     window.getWindow().addWindowListener(windowState);
74
75     if (window.isLegalWindow()) {
76       window.getDisplay().addClickListener(windowClick);
77       window.getDisplay().addClickListener(areaClickListener);
78       window.getInput().addInputListener(windowInput);
79
80       if (window instanceof ChannelWindow) {
81         ((ChannelWindow) window).addClickListener(windowDoubleClick);
82       }
83     } else {
84       ((EmptyWindow) window).addClickListener(windowSpecialClick);
85     }
86
87     windowState
88       .onOpen(new ClientWindowEvent(window.getWindow())); // fake out the scripting saying "the window has opened"
89
}
90 }
91
Popular Tags