Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: plugins/CsBeagle/ServerList.java


1   /*
2    * ServerList.java
3    *
4    * Created on October 28, 2002, 8:13 PM
5    */
6   
7   package plugins.CsBeagle;
8   
9   /**
10   *
11   * @author  Tobias Riemer
12   */
13  import java.util.Vector;
14  import java.util.StringTokenizer;
15  import java.io.*;
16  
17  public class ServerList {
18      
19      static final String ADDRESS  = "address";
20      static final String PORT     = "port";
21      static final String NAME     = "name";
22      static final String FAVORITE = "favorite";
23      
24      String fname;
25      Vector servers = new Vector();
26      protected Vector dcls    = new Vector();
27      /** Creates a new instance of ServerList */
28      public ServerList() {
29      }
30      
31      public void setFileName(String fname) {
32          this.fname = fname;
33      }
34      
35      public void addDataChangeListener(ServerChangeListener dcl) {
36          if (!dcls.contains(dcl))
37              dcls.add(dcl);
38      }
39      
40      public void removeDataChangeListener(ServerChangeListener dcl) {
41          dcls.remove(dcl);
42      }
43      
44      public void fireDataInserted(int index) {
45          for(int i=0;i<dcls.size();i++)
46              ((ServerChangeListener) dcls.get(i)).serverInserted(this,index);
47      }
48      
49      
50      
51      public void fireDataChanged() {
52          for(int i=0;i<dcls.size();i++)
53              ((ServerChangeListener) dcls.get(i)).serverChanged(this);
54      }
55      
56      public void add(Server server) {
57          servers.add(server);
58          this.fireDataInserted(servers.size()-1);
59      }
60      
61      public void remove(Server server) {
62          servers.remove(server);
63          this.fireDataChanged();
64      }
65      
66      public void remove(int i) {
67          servers.remove(i);
68          this.fireDataChanged();
69      }
70      
71      public void removeAllEnlments() {
72          servers.removeAllElements();
73      }
74      
75      public int size() {
76          return servers.size();
77      }
78      
79      public Server get(int i) {
80          return (Server) servers.get(i);
81      }
82      
83      public void loadList() throws FileNotFoundException, IOException {
84          
85          BufferedReader rf = new BufferedReader(new FileReader(fname));
86          
87          String ip = new String();
88          String port = new String();
89          String name = new String();
90          String line = "";
91          
92          while ((line = rf.readLine()) != null) {
93              FavoriteLine fline = new FavoriteLine(line);            
94              if (fline.getKey().equals(ADDRESS))
95                  ip = fline.getValue();
96              if (fline.getKey().equals(PORT))
97                  port = fline.getValue();
98              if (fline.getKey().equals(NAME))
99                  name = fline.getValue();
100             if (fline.getKey().equals(FAVORITE)) {
101                 String f = fline.getValue();
102                 
103                 boolean favorite;
104                 if (f.compareTo("1") == 0) { favorite = true; }
105                 else favorite = false;
106                 
107                 int p = new Integer(port).intValue();
108                 if ((p>0) && (p<99999)) {
109                     if (favorite)
110                         add(new Server(ip,p,favorite,name));
111                 }
112             }
113             
114         }
115     }
116     
117     class FavoriteLine {
118         
119         private String key   = "";
120         private String value = "";
121         FavoriteLine(String line) {
122             line = line.trim();
123             int begKey = line.indexOf('\"');
124             if (begKey == -1) return ;
125             int endKey = line.indexOf('\"',begKey+1);
126             if (endKey == -1) return ;
127             key = line.substring(begKey+1,endKey);
128             
129             int begValue = line.indexOf('\"',endKey+1);
130             if (begValue == -1) return ;
131             int endValue = line.indexOf('\"',begValue+1);
132             if (endValue == -1) return ;
133             
134             value = line.substring(begValue+1,endValue);
135         }
136         
137         public String getKey() {
138             return key;
139         }
140         
141         public String getValue() {
142             return value;
143         }
144         
145         public String toString() {
146             return "(" + key + "," + value + ")";
147         }
148     }
149     
150     public void saveList() throws IOException {        
151         BufferedWriter wf = new BufferedWriter(new FileWriter(fname));
152         wf.write("{");
153         wf.newLine();
154         for(int i=0;i<size();i++) {
155             //System.out.println("writing: " + ((Server) get(i)));
156             ((Server) get(i)).writeServerToFile(wf);
157         }
158         wf.write("}");
159         wf.newLine();
160         
161         wf.flush();
162         wf.close();
163     }
164     
165 }