Changeset 1097 for trunk/jabberit_messenger/java_source/src
- Timestamp:
- 07/08/09 15:34:43 (15 years ago)
- Location:
- trunk/jabberit_messenger/java_source/src/nu/fw/jeti
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/jabberit_messenger/java_source/src/nu/fw/jeti/applet/Jeti.java
r1091 r1097 84 84 public static String COUNTRY; 85 85 public static String LANGUAGE; 86 public static String JAVAPLUGINS; 86 87 87 88 /** … … 114 115 String country = new String(applet.getParameter("COUNTRY")); 115 116 String language = new String(applet.getParameter("LANGUAGE")); 117 String javaPlugins = new String(applet.getParameter("JAVAPLUGINS")); 116 118 117 119 /** … … 122 124 * - Nome da Empresa para Constant NAMECOMPANY 123 125 * - Informa qual o tipo de protocolo a ser usado http ou https. 124 * - Passa ao java o cn do ldap do servidor expresso. 126 * - Passa ao java o cn do ldap do servidor expresso. 127 * - Carrega plugins para o Java. 125 128 */ 126 129 … … 132 135 LANGUAGE = language; 133 136 COUNTRY = country; 137 JAVAPLUGINS = javaPlugins; 134 138 135 139 // Reinit languages incase they changed … … 142 146 { 143 147 exitURL = new URL(getDocumentBase(),getParameter("EXITPAGE")); 144 javax.swing.JOptionPane.showMessageDialog(null, "exitUrl : " + exitURL);145 148 } 146 149 catch (MalformedURLException e){} … … 159 162 Start.applet = true; 160 163 final JPanel panel = new JPanel(new BorderLayout()); 161 start = new Start( getCodeBase().toString(), panel );164 start = new Start( getCodeBase().toString(), panel ); 162 165 163 166 backend = start.getBackend(); -
trunk/jabberit_messenger/java_source/src/nu/fw/jeti/backend/Start.java
r1091 r1097 120 120 Jeti jeti = new Jeti(backend,container); 121 121 new Popups( backend.getMainWindow() ); 122 pluginsInfo = new PluginsInfo(backend, parser,this);122 pluginsInfo = new PluginsInfo(backend, this); 123 123 jeti.init(); 124 124 if( container != null) -
trunk/jabberit_messenger/java_source/src/nu/fw/jeti/languages/languages.java
r1070 r1097 143 143 { "main.manageservices.Register" , "&Registrar"}, 144 144 { "main.manageservices.Server" , "&Servidor"}, 145 { "main.pluginsInfo.has_no_remove" , "não foi removido"}, 146 { "main.pluginsInfo.Plugin_removing", "Plugin removido"}, 147 { "main.pluginsInfo.plugins_unloaded", "plugins unloaded"}, 145 148 { "main.popup.{0}_is_in_the_last_group,_remove_completely?" , "{0} é o último grupo, remover completamente?"}, 146 149 { "main.popup.{0}_is_in_timezone_{1}" , "{0} fuso-horário {1}"}, -
trunk/jabberit_messenger/java_source/src/nu/fw/jeti/languages/languagesPlugins.java
r1070 r1097 59 59 { "xhtml.Size" , "Tamanho" }, 60 60 { "xhtml.Style" , "Estilo" }, 61 { "xhtml.Transfer_File" , " transferência de Arquivo" },61 { "xhtml.Transfer_File" , "Transferência de arquivo" }, 62 62 { "xhtml.The_font_used_when_sending_messages" , "A fonte usada para mandar mensagem" }, 63 63 { "xhtml.The_quick_brown_fox_jumped_over_the_lazy_dogs" , "A ligeira raposa ultrapassou os lobos preguiçosos" }, -
trunk/jabberit_messenger/java_source/src/nu/fw/jeti/plugins/PluginsInfo.java
r1091 r1097 25 25 package nu.fw.jeti.plugins; 26 26 27 import java.io.IOException;28 27 import java.lang.ref.WeakReference; 29 28 import java.lang.reflect.Method; 30 import java.net.MalformedURLException;31 import java.net.URL;32 29 import java.text.MessageFormat; 33 30 import java.util.*; 34 35 import javax.swing.UIManager;36 31 import javax.xml.parsers.SAXParser; 37 38 32 import nu.fw.jeti.backend.Start; 39 import nu.fw.jeti.backend.URLClassloader;40 33 import nu.fw.jeti.jabber.Backend; 41 34 import nu.fw.jeti.util.I18N; … … 48 41 public class PluginsInfo 49 42 { 50 private static URLClassloader classLoader;//change back to private43 private static Backend backend; 51 44 private static Map loadedPlugins = new HashMap(); 52 45 public static Map loadedPreferencePanels = new HashMap(); 53 private static Backend backend;54 46 private static Map pluginInstances = new HashMap(); 47 private static String pluginsJava; 55 48 56 public PluginsInfo(Backend backend,SAXParser parser,Start start) 57 { 58 PluginsInfo.backend = backend; 59 60 if( !Start.applet ) 61 { 62 classLoader = new URLClassloader(new URL[]{Start.programURL}, getClass().getClassLoader()); 63 UIManager.put("ClassLoader", classLoader); 64 } 65 new PluginData(parser); 66 67 68 // nu.fw.jeti.plugins.xmppuri.Plugin.init(backend); 69 // loadedPlugins.put("xmpp",nu.fw.jeti.plugins.xmpp.Plugin.class); 70 // nu.fw.jeti.plugins.xmpp.Plugin.init(backend); 71 72 // loadedPlugins.put("compression",nu.fw.jeti.plugins.compression.Plugin.class); 73 // nu.fw.jeti.plugins.compression.Plugin.init(backend); 74 // loadedPreferencePanels.put("groupchatalerter",nu.fw.jeti.plugins.groupchatalerter.PrefPanel.class); 75 76 // loadedPlugins.put("groupchatalerter",nu.fw.jeti.plugins.groupchatalerter.Plugin.class); 77 // nu.fw.jeti.plugins.groupchatalerter.Plugin.init(backend); 78 // nu.fw.jeti.plugins.groupchat.Plugin.init(backend); 79 80 //new test.QueryServers(backend); 81 // 82 // nu.fw.jeti.plugins.pubsub.Plugin.init(backend); 83 // nu.fw.jeti.plugins.useractivity.Plugin.init(backend); 84 // 85 // nu.fw.jeti.plugins.jingle.Plugin.init(backend); 86 87 88 // try 89 // { 90 // nu.fw.jeti.plugins.tts.Plugin.init(backend); 91 // }catch (Exception e){ 92 // e.printStackTrace(); 93 // } 94 95 // nu.fw.jeti.plugins.vcard.Plugin.init(backend); 96 97 // nu.fw.jeti.plugins.ichatavatars.Plugin.init(backend); 98 // loadedPlugins.put("ichatavatars", nu.fw.jeti.plugins.ichatavatars.Plugin.class); 99 100 // nu.fw.jeti.plugins.spell.Plugin.init(backend); 101 // loadedPlugins.put("spell", nu.fw.jeti.plugins.spell.Plugin.class); 102 // loadedPreferencePanels.put("spell",nu.fw.jeti.plugins.spell.PrefPanel.class); 103 104 // nu.fw.jeti.plugins.metaltheme.Plugin.init(backend); 105 // loadedPreferencePanels.put("metaltheme",nu.fw.jeti.plugins.metaltheme.PrefPanel.class); 106 107 // nu.fw.jeti.plugins.filetransfer.Plugin.init(backend); 108 // loadedPreferencePanels.put("filetransfer",nu.fw.jeti.plugins.filetransfer.PrefPanel.class); 109 // 110 // nu.fw.jeti.plugins.sound.Plugin.init(backend); 111 // loadedPreferencePanels.put("sound",nu.fw.jeti.plugins.sound.PrefPanel.class); 112 // 113 // nu.fw.jeti.plugins.xhtml.Plugin.init(backend); 114 // loadedPlugins.put("xhtml", nu.fw.jeti.plugins.xhtml.Plugin.class); 115 116 // } 117 // catch (Exception e) 118 // { 119 // // TOD Auto-generated catch block 120 // e.printStackTrace(); 121 // } 122 123 // nu.fw.jeti.plugins.search.Plugin.init(backend); 124 125 // nu.fw.jeti.plugins.buddyspacemaps.Plugin.init(backend); 126 127 128 // 129 // nu.fw.jeti.plugins.openpgp.Plugin.init(backend); 130 // loadedPlugins.put("openpgp", nu.fw.jeti.plugins.openpgp.Plugin.class); 131 132 //nu.fw.jeti.plugins.translators.breezah.Plugin.init(backend); 133 134 //new nu.fw.jeti.plugins.logtoserver.Plugin(backend); 135 //new nu.fw.jeti.plugins.servertolog.Plugin(backend); 136 // 137 // try 138 // { 139 // nu.fw.jeti.plugins.emoticons.Plugin.init(backend); 140 // } catch (IOException e) 141 // { 142 // e.printStackTrace(); 143 // } 144 // loadedPlugins.put("emoticons", nu.fw.jeti.plugins.emoticons.Plugin.class); 145 // loadedPreferencePanels.put("emoticons",nu.fw.jeti.plugins.emoticons.PrefPanel.class); 146 147 // nu.fw.jeti.plugins.alertwindow.Plugin.init(backend); 148 // loadedPreferencePanels.put("alertwindow",nu.fw.jeti.plugins.alertwindow.PrefPanel.class); 149 150 //start.LoadPlugins(urlString); 151 for (Iterator i = Preferences.getPlugins().iterator(); i.hasNext();) 152 { 153 Object[] temp = (Object[]) i.next(); 154 if (temp[2] == null)continue; //missing plugin 155 if (((Boolean) temp[1]).booleanValue()) 156 { 157 start.setSplashText((String) temp[0]); 158 loadPlugin((String) temp[0]); 159 } 160 } 161 } 162 163 //translator hackje vervang door translator interfaces as in io 164 private static Translator translator; 165 166 public static void setTranslator(Translator translator) 167 { 168 PluginsInfo.translator = translator; 169 } 170 171 public static Translator getTranslator() 172 { 173 return translator; 174 } 175 49 public PluginsInfo( Backend backend, Start start ) 50 { 51 PluginsInfo.backend = backend; 52 PluginsInfo.pluginsJava = nu.fw.jeti.applet.Jeti.JAVAPLUGINS; 53 54 /** 55 * Carregando plugins: 56 * 57 * nu.fw.jeti.plugins.<NOME_do_Plugin>.Plugin.init( backend ); 58 * loadedPlugins.put("<NOME_do_Plugin>", nu.fw.jeti.plugins.<NOME_do_Plugin>.Plugin.class); 59 * 60 * Exemplo : Plugin xhtml 61 * nu.fw.jeti.plugins.xhtml.Plugin.init( backend ); 62 * loadedPlugins.put("xhtml", nu.fw.jeti.plugins.xhtml.Plugin.class); 63 */ 64 65 String[] plugins = pluginsJava.split(","); 66 67 for(int i = 0 ; i < plugins.length; i++) 68 PluginsInfo.loadPlugin(plugins[i].toString()); 69 } 70 176 71 public static boolean isPluginLoaded(String name) 177 72 { … … 179 74 } 180 75 181 public static void loadPlugin(String name) 182 { 183 Class loadedClass =null; 184 if (!Start.applet) 185 {//non applet version 186 URL url =null;// new URL[1]; 187 try 188 { 189 //if (Start.programURL != null) 190 url = new URL(Start.programURL, "plugins/" + name + ".jar"); 191 //else url = new URL(Start.localURL, "plugins/" + name + ".jar"); 192 } 193 catch (MalformedURLException e) 194 {} 195 //System.out.println(url); 196 //URLClassLoader loader = new URLClassLoader(url, parentClassLoader); 197 classLoader.addURL(url); 198 try 199 { 200 loadedClass = classLoader.loadClass("nu.fw.jeti.plugins." + name + ".Plugin"); 201 } 202 catch (ClassNotFoundException e) 203 { 204 System.err.println(MessageFormat.format(I18N.gettext("main.error.{0}_plugin_not_found"), new Object[]{name})); 205 return; 206 } 207 } 208 else loadedClass = nu.fw.jeti.applet.Jeti.getPlugin(name); 209 210 211 try 212 {//init plugin 76 private static void loadPlugin(String name) 77 { 78 Class loadedClass = nu.fw.jeti.applet.Jeti.getPlugin(name); 79 80 try 81 { 82 //Init plugin 213 83 Method m = loadedClass.getMethod("init",new Class[]{Backend.class}); 214 84 m.invoke(null,new Object[]{backend}); 215 }catch(Exception e) 85 } 86 catch(Exception e) 216 87 { 217 88 e.printStackTrace(); 218 //System.err.println(MessageFormat.format(I18N.gettext("main.error.{0}_plugin_failed_to_load"), new Object[]{name}));219 89 return; 220 90 } 221 91 222 223 // if (!loadOnFirstUse)224 // {225 //226 // try227 // {228 // Constructor c = loadedClass.getConstructor(new Class[] { Class.forName("nu.fw.jeti.jabber.Backend")});229 // addInstance(name, new WeakReference(c.newInstance(new Object[] { backend })));230 // }231 // catch (InvocationTargetException ie)232 // {233 // ie.printStackTrace();234 // //System.out.println("Error while initializing " + name + " : " + ie.getCause().getMessage());235 // return;236 // }237 // catch (Exception e2)238 // {239 // e2.printStackTrace();240 // return;241 // }242 // }243 244 92 loadedPlugins.put(name, loadedClass); 245 if(!Start.applet)246 {247 try248 {249 loadedPreferencePanels.put(name, classLoader.loadClass("nu.fw.jeti.plugins." + name + ".PrefPanel"));250 }251 catch (ClassNotFoundException e)252 {253 // Do nothing254 }255 }256 else nu.fw.jeti.applet.Jeti.getPrefPanel(name,loadedPreferencePanels);257 //System.out.println(name + "loaded");258 }259 260 public static void loadLibrary(String name)261 {262 URL url =null;263 try264 {265 url = new URL(Start.programURL, "lib/" + name + ".jar");266 }267 catch (MalformedURLException e)268 {}269 classLoader.addURL(url);270 93 } 271 94 … … 273 96 { 274 97 Class loadedClass = (Class)loadedPlugins.remove(name); 275 if (loadedClass == null) { 276 return; 277 } 278 System.out.println("removing "+ name); 279 loadedPreferencePanels.remove(name); 98 99 if (loadedClass == null) 100 return; 101 102 System.out.println(I18N.gettext("main.pluginsInfo.Plugin_removing") + " : " + name); 103 104 loadedPreferencePanels.remove(name); 105 280 106 List list = (List) pluginInstances.remove(name); 281 try 282 {//unload cleaning 107 108 try 109 { 110 //unload cleaning 283 111 Method m = loadedClass.getMethod("unload",new Class[]{Backend.class}); 284 112 m.invoke(null,new Object[]{backend}); 285 }catch(NoSuchMethodException e){System.out.println(name + " has no remove");} 113 } 114 catch(NoSuchMethodException e) 115 { 116 System.out.println("ERRO : " + name + " " + I18N.gettext("main.pluginsInfo.has_no_remove")); 117 } 286 118 catch(Exception e) 287 119 { … … 289 121 } 290 122 291 if (list == null) return; 123 if ( list == null) 124 return; 125 292 126 for (Iterator i = list.iterator(); i.hasNext();) 293 {//unload loaded plugins 127 { 128 //unload loaded plugins 294 129 Plugins plugin = (Plugins)((WeakReference)i.next()).get(); 295 if (plugin !=null)plugin.unload(); 296 } 297 System.out.println(name +" removed"); 298 } 299 130 131 if ( plugin != null ) 132 plugin.unload(); 133 } 134 135 System.out.println( "Removed plugin : " + name ); 136 } 300 137 301 138 /** … … 314 151 Method m = loadedClass.getMethod("getInstance",null); 315 152 o = m.invoke(null,null); 316 }catch(NoSuchMethodException e){System.out.println(name + " has no instance method");} 153 } 154 catch(NoSuchMethodException e) 155 { 156 System.out.println(name + " has no instance method"); 157 } 317 158 catch(Exception e) 318 159 { … … 323 164 { 324 165 ie.printStackTrace(); 325 //System.out.println("Error while initializing " + name + " : " + ie.getCause().getMessage());326 166 return null; 327 167 } 168 328 169 return o; 329 170 } … … 332 173 { 333 174 Object o = null; 175 334 176 try 335 177 { … … 340 182 { 341 183 ie.printStackTrace(); 342 //System.out.println("Error while initializing " + name + " : " + ie.getCause().getMessage());343 184 return null; 344 185 } 186 345 187 return (Plugins) o; 346 188 } … … 349 191 { 350 192 List list = (List) pluginInstances.get(name); 193 351 194 if (list == null) 352 195 { … … 354 197 pluginInstances.put(name, list); 355 198 } 199 356 200 list.add(new WeakReference(object)); 357 201 } … … 360 204 { 361 205 StringBuffer buffer = new StringBuffer(); 206 362 207 for(Iterator i = loadedPlugins.entrySet().iterator();i.hasNext();) 363 208 { … … 368 213 text = (String) ((Class)entry.getValue()).getField("ABOUT").get(null); 369 214 } 370 catch (Exception e1) 371 {} 372 if(text!=null) buffer.append("\n - " + (String)entry.getKey() + '\n' + text); 373 } 374 return buffer.toString(); 215 catch (Exception e1){} 216 217 if( text != null) 218 buffer.append("\n - " + (String)entry.getKey() + '\n' + text); 219 } 220 221 return buffer.toString(); 375 222 } 376 223 377 // remove plugins224 // Remove plugins 378 225 public void exit() 379 226 { 380 String[] temp =new String[loadedPlugins.size()];227 String[] temp = new String[loadedPlugins.size()]; 381 228 loadedPlugins.keySet().toArray(temp); 229 382 230 for(int i=0;i<temp.length;i++) 383 231 { 384 232 unloadPlugin(temp[i]); 385 233 } 386 System.out.println("plugins unloaded"); 234 235 System.out.println(I18N.gettext("main.pluginsInfo.plugins_unloaded")); 387 236 } 388 237 } 238 389 239 /* 390 240 * Overrides for emacs -
trunk/jabberit_messenger/java_source/src/nu/fw/jeti/ui/ChatSplitPane.java
r1014 r1097 137 137 private Notifiers titleFlash; 138 138 private SimpleAttributeSet colorAttributeSet = new SimpleAttributeSet(); 139 private boolean toFrontOnNewMessage =false;139 private boolean toFrontOnNewMessage = false; 140 140 private static DateFormat dateFormat = DateFormat.getTimeInstance(); 141 141 DateFormat shortDate= DateFormat.getDateInstance(DateFormat.SHORT); … … 145 145 private Date date = new Date(); 146 146 private ImageIcon avatar; 147 //private boolean sendEnabled=true; 147 148 148 149 149 class ToolTipTextpane extends JTextPane 150 {//Tooltip on textpane, show time of message 150 { 151 //Tooltip on textpane, show time of message 151 152 public String getToolTipText(MouseEvent e) 152 153 { … … 234 235 } 235 236 }); 237 236 238 menu.add(chkItem); 239 237 240 if (PluginsInfo.isPluginLoaded("emoticons")) 238 241 { … … 260 263 }); 261 264 } 265 262 266 if (PluginsInfo.isPluginLoaded("spell")) 263 267 { … … 265 269 spell.addChangeDictoryMenuEntry(menu); 266 270 } 271 267 272 if (PluginsInfo.isPluginLoaded("links")) 268 273 { … … 293 298 } 294 299 295 translator = PluginsInfo.getTranslator();300 //translator = PluginsInfo.getTranslator(); 296 301 if(emoticons != null || spell != null || translate!=null) 297 302 { -
trunk/jabberit_messenger/java_source/src/nu/fw/jeti/util/Preferences.java
r1070 r1097 297 297 { 298 298 Object[] tempArray = new Object[6]; 299 //System.arraycopy(i.next(), 0, tempArray, 0, 6);300 299 Object[] plugins = (Object[])i.next(); 301 300 tempArray[0]= plugins[0];
Note: See TracChangeset
for help on using the changeset viewer.