Source code: plugins/Hotlist/Hotlist.java
1 /*
2 * Bookmarks.java
3 *
4 * Created on November 7, 2002, 5:45 PM
5 */
6
7 package plugins.Hotlist;
8
9 import dexter.core.DefaultEntry;
10 import java.util.Vector;
11 import javax.swing.tree.DefaultMutableTreeNode;
12 import dexter.property.Property;
13
14 /**
15 *
16 * @author Tobias Riemer
17 */
18 public class Hotlist extends dexter.core.AbstractService {
19
20 private Property pUrls = new Property("Urls", Property.VECTOR_VALUE, false);
21 private Property pEmail = new Property("E-Mail",Property.VECTOR_VALUE, false);
22 private Property pPhone = new Property("Phone", Property.VECTOR_VALUE, false);
23 private DefaultMutableTreeNode urlNode;
24 private DefaultMutableTreeNode emailNode;
25 private DefaultMutableTreeNode phoneNode;
26 /** Creates a new instance of Bookmarks */
27 public Hotlist() {
28 setServiceName("Hotlist");
29 propertyFile.setFileName(dexter.core.Dexter.getInstance().getHomeDir() + "hotlist");
30 dexter.core.Dexter.getInstance().getEventDispatcher().addActionListener("grabberAction",
31 new dexter.events.ActionListener() {
32 public void actionPerformed(dexter.events.Event event) {
33 addHotlist(event);
34 }
35 });
36
37 pUrls.setVector(new Vector());
38 propertyFile.getHiddenPropertyGroup().addProperty(pUrls);
39 propertyFile.getHiddenPropertyGroup().addProperty(pEmail);
40 propertyFile.getHiddenPropertyGroup().addProperty(pPhone);
41
42 loadIcons();
43 setIcon(dexter.core.Dexter.resourceFactory().getIcon("plugins/Hotlist","HOTLIST"));
44
45 fireNodeChanged(root);
46
47 urlNode = new DefaultMutableTreeNode(new DefaultEntry("Bookmarks", dexter.core.Dexter.resourceFactory().getIcon("plugins/Hotlist","BOOKMARK"),null));
48 fireNodeAdded(root,urlNode);
49 emailNode = new DefaultMutableTreeNode(new DefaultEntry("E-Mail Addresses",dexter.core.Dexter.resourceFactory().getIcon("plugins/Hotlist","EMAIL"),null));
50 fireNodeAdded(root,emailNode);
51 phoneNode = new DefaultMutableTreeNode(new DefaultEntry("Phone Numbers",dexter.core.Dexter.resourceFactory().getIcon("plugins/Hotlist","PHONE"),null));
52 fireNodeAdded(root,phoneNode);
53 }
54
55 private void loadIcons() {
56 dexter.core.Dexter.resourceFactory().registerIcon("plugins/Hotlist", "BOOKMARK", "html.gif");
57 dexter.core.Dexter.resourceFactory().registerIcon("plugins/Hotlist", "EMAIL", "email.gif");
58 dexter.core.Dexter.resourceFactory().registerIcon("plugins/Hotlist", "PHONE", "phone.gif");
59 dexter.core.Dexter.resourceFactory().registerIcon("plugins/Hotlist", "HOTLIST", "bookmark.gif");
60 }
61
62 public void init() {
63 super.init();
64 loadEntries(urlNode, pUrls.getVector());
65 loadEntries(emailNode, pEmail.getVector());
66 loadEntries(phoneNode, pPhone.getVector());
67 }
68
69 private void loadEntries(DefaultMutableTreeNode node, Vector entries) {
70 for (int i=0;i<entries.size();i++) {
71 HotListEntry entry = new HotListEntry(entries.get(i).toString());
72 fireNodeAdded(node,new DefaultMutableTreeNode(new DefaultEntry(entry.entry,null,entry.from)));
73 }
74 }
75
76 public void addHotlist(dexter.events.Event event) {
77 Vector v = (Vector) event.getValue();
78 if (v.size() < 3) return ;
79 if (v.get(0).toString().equals("http")) addBookmark(v.get(1).toString(), "received from:" + v.get(2).toString());
80 if (v.get(0).toString().equals("email")) addEmail(v.get(1).toString(), "received from:" + v.get(2).toString());
81 if (v.get(0).toString().equals("phone")) addPhone(v.get(1).toString(), "received from:" + v.get(2).toString());
82 }
83
84
85 public void addBookmark(String url, String from) {
86 fireNodeAdded(urlNode,new DefaultMutableTreeNode(new DefaultEntry(url,null,from)));
87 pUrls.getVector().add(new HotListEntry(url,from));
88 }
89
90 public void addEmail(String email, String from) {
91 fireNodeAdded(emailNode,new DefaultMutableTreeNode(new DefaultEntry(email,null,from)));
92 pEmail.getVector().add(new HotListEntry(email,from));
93 }
94
95 public void addPhone(String phone, String from) {
96 fireNodeAdded(phoneNode,new DefaultMutableTreeNode(new DefaultEntry(phone,null,from)));
97 pPhone.getVector().add(new HotListEntry(phone,from));
98 }
99
100 public boolean isDestroyed() {
101 return true;
102 }
103
104
105 class HotListEntry {
106
107 String from;
108 String entry;
109
110 public HotListEntry(String line) {
111 int i = line.indexOf('-');
112 if ( i== -1 ) entry = line;
113 else {
114 entry = line.substring(0,i);
115 from = line.substring(i+1);
116 }
117 }
118
119 public HotListEntry(String entry, String from) {
120 this.entry = entry;
121 this.from = from;
122 }
123
124 public String toString() {
125 return entry + "-" + from;
126 }
127 }
128
129 }