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 [] contents = new String [] { 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 name, ScriptInstance script, Stack locals) 54 { 55 if (locals.size() < 3) 56 return SleepUtils.getEmptyScalar(); 57 58 String title = locals.pop().toString(); 59 String hook = locals.pop().toString(); 60 Object 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 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 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 |