1 19 package org.lucane.applications.rssreader; 20 21 import java.awt.Dimension ; 22 import java.awt.event.WindowEvent ; 23 import java.io.IOException ; 24 import java.net.URL ; 25 import java.util.ArrayList ; 26 27 import org.lucane.applications.rssreader.gui.*; 28 import org.lucane.applications.rssreader.rss.ChannelInfo; 29 import org.lucane.client.*; 30 import org.lucane.client.widgets.DialogBox; 31 import org.lucane.common.ConnectInfo; 32 import org.lucane.common.net.ObjectConnection; 33 34 public class RssReader extends StandalonePlugin 35 { 36 private MainFrame frame; 37 private ConnectInfo service; 38 39 public RssReader() 40 { 41 } 42 43 public Plugin newInstance(ConnectInfo[] friends) 44 { 45 return new RssReader(); 46 } 47 48 public void start() 49 { 50 this.service = Communicator.getInstance().getConnectInfo(getName()); 51 52 setProxyFromLocalConfig(); 53 54 frame = new MainFrame(this); 55 frame.refreshChannelList(); 56 frame.setPreferredSize(new Dimension (600, 600)); 57 frame.restoreState(); 58 frame.show(); 59 } 60 61 public void setProxyFromLocalConfig() 62 { 63 System.setProperty("proxySet", getLocalConfig().get("proxySet", "false")); 64 System.setProperty("proxyHost", getLocalConfig().get("proxyHost", "")); 65 System.setProperty("proxyPort", getLocalConfig().get("proxyPort", "")); 66 } 67 68 public void openUrl(URL url) 69 { 70 try { 71 BrowserLauncher.openURL(url.toString()); 72 } catch (IOException e) { 73 e.printStackTrace(); 74 } 75 } 76 77 public void addChannel(ChannelInfo channel) 78 { 79 RssAction action = new RssAction(RssAction.ADD_CHANNEL, channel); 80 ObjectConnection oc = Communicator.getInstance().sendMessageTo( 81 service, service.getName(), action); 82 83 String ack = tr("err.connection"); 84 try { 85 ack = oc.readString(); 86 } catch(Exception e) {} 87 88 if(! ack.equals("OK")) 89 DialogBox.error(tr("err.addChannel") + ack); 90 else 91 frame.refreshChannelList(); 92 93 oc.close(); 94 } 95 96 public void removeChannel(ChannelInfo channel) 97 { 98 RssAction action = new RssAction(RssAction.REMOVE_CHANNEL, channel); 99 ObjectConnection oc = Communicator.getInstance().sendMessageTo( 100 service, service.getName(), action); 101 102 String ack = tr("err.connection"); 103 try { 104 ack = oc.readString(); 105 } catch(Exception e) {} 106 107 if(! ack.equals("OK")) 108 DialogBox.error(tr("err.removeChannel") + ack); 109 else 110 frame.refreshChannelList(); 111 112 oc.close(); 113 } 114 115 public ArrayList getChannels() 116 { 117 ArrayList channels; 118 119 RssAction action = new RssAction(RssAction.GET_CHANNELS); 120 ObjectConnection oc = Communicator.getInstance().sendMessageTo( 121 service, service.getName(), action); 122 123 String ack = tr("err.connection"); 124 try { 125 ack = oc.readString(); 126 channels = (ArrayList )oc.read(); 127 } catch(Exception e) { 128 channels = new ArrayList (); 129 e.printStackTrace(); 130 } 131 132 if(! ack.equals("OK")) 133 DialogBox.error(tr("err.listChannels") + ack); 134 135 oc.close(); 136 137 return channels; 138 } 139 140 public void windowClosing(WindowEvent e) 141 { 142 frame.saveState(); 143 this.exit(); 144 } 145 } 146 | Popular Tags |