KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > lucane > applications > reunion > ui > MainWindow


1 package org.lucane.applications.reunion.ui;
2
3 import java.awt.BorderLayout JavaDoc;
4 import java.awt.Dimension JavaDoc;
5 import java.awt.event.ActionEvent JavaDoc;
6 import java.awt.event.ActionListener JavaDoc;
7 import java.awt.event.KeyEvent JavaDoc;
8 import java.awt.event.KeyListener JavaDoc;
9 import java.awt.event.WindowEvent JavaDoc;
10 import java.awt.event.WindowListener JavaDoc;
11 import java.util.Iterator JavaDoc;
12 import java.util.Enumeration JavaDoc;
13 import java.util.Vector JavaDoc;
14
15 import javax.swing.DefaultListModel JavaDoc;
16 import javax.swing.JButton JavaDoc;
17 import javax.swing.JList JavaDoc;
18 import javax.swing.JPanel JavaDoc;
19 import javax.swing.JScrollPane JavaDoc;
20 import javax.swing.JSplitPane JavaDoc;
21
22 import org.lucane.applications.reunion.Reunion;
23 import org.lucane.applications.reunion.ReunionMessage;
24 import org.lucane.applications.reunion.ReunionUserProperties;
25 import org.lucane.applications.reunion.ReunionUsersProperties;
26 import org.lucane.client.Client;
27 import org.lucane.client.Communicator;
28 import org.lucane.client.widgets.HTMLEditor;
29 import org.lucane.client.widgets.ListBox;
30 import org.lucane.client.widgets.ManagedWindow;
31 import org.lucane.common.ConnectInfo;
32
33 public class MainWindow extends ManagedWindow
34 implements WindowListener JavaDoc, ActionListener JavaDoc, KeyListener JavaDoc
35 {
36     private Reunion plugin;
37     
38     private HTMLEditor messages;
39     private HTMLEditor write;
40     private JList JavaDoc users;
41     private JButton JavaDoc btnInvite;
42     
43     public MainWindow(Reunion plugin, boolean starter)
44     {
45         super(plugin, plugin.getSubject());
46         this.plugin = plugin;
47
48         setName("frame");
49         addWindowListener(this);
50         setPreferredSize(new Dimension JavaDoc(640, 480));
51         getContentPane().setLayout(new BorderLayout JavaDoc());
52         
53         this.messages = new HTMLEditor();
54         messages.setEditable(false);
55         messages.setToolbarVisible(false);
56
57         this.users = new JList JavaDoc(new DefaultListModel JavaDoc());
58         this.users.setCellRenderer(new UserRenderer(plugin));
59         
60         JPanel JavaDoc listContainer = new JPanel JavaDoc(new BorderLayout JavaDoc());
61         if(starter)
62         {
63             btnInvite = new JButton JavaDoc(plugin.tr("btn.invite"), plugin.getImageIcon("invite.png"));
64             btnInvite.addActionListener(this);
65             listContainer.add(btnInvite, BorderLayout.NORTH);
66         }
67         listContainer.add(new JScrollPane JavaDoc(users), BorderLayout.CENTER);
68         
69         JSplitPane JavaDoc split = new JSplitPane JavaDoc(JSplitPane.HORIZONTAL_SPLIT,
70                     new JScrollPane JavaDoc(messages), listContainer);
71         split.setResizeWeight(1);
72         split.setDividerLocation(520);
73         this.manageWidget(split);
74         getContentPane().add(split, BorderLayout.CENTER);
75                 
76         messages.addHTML(ReunionMessage.createHTMLInfoMessage(plugin,
77                 plugin.tr("subjectMsg") + plugin.getSubject()));
78         
79         
80         this.write = new HTMLEditor();
81         write.getEditorPane().addKeyListener(this);
82         getContentPane().add(write, BorderLayout.SOUTH);
83     }
84     
85     public void addUser(ReunionUserProperties props)
86     {
87         //String html = "<html><font color=\""+props.getFgColor()+"\">"+props.getUser()+"</font></html>";
88
((DefaultListModel JavaDoc)users.getModel()).addElement(props);
89     }
90     
91     public void removeUser(ReunionUserProperties props)
92     {
93         ((DefaultListModel JavaDoc)users.getModel()).removeElement(props);
94     }
95     
96     public void setUsers(ReunionUsersProperties props)
97     {
98         ((DefaultListModel JavaDoc)users.getModel()).clear();
99         Iterator JavaDoc users = props.getUsers();
100         while(users.hasNext())
101         {
102             addUser(props.getUserProperties((String JavaDoc)users.next()));
103         }
104     }
105     
106     public void pushMessage(String JavaDoc html)
107     {
108         messages.addHTML(html);
109     }
110     
111     public void removeListeners()
112     {
113         this.write.removeKeyListener(this);
114     }
115     
116     //-- window listener
117
public void windowActivated(WindowEvent JavaDoc e) {}
118     public void windowClosed(WindowEvent JavaDoc e) {}
119     public void windowDeactivated(WindowEvent JavaDoc e) {}
120     public void windowDeiconified(WindowEvent JavaDoc e) {}
121     public void windowIconified(WindowEvent JavaDoc e) {}
122     public void windowOpened(WindowEvent JavaDoc e) {}
123     public void windowClosing(WindowEvent JavaDoc we)
124     {
125         plugin.closeMeeting();
126     }
127     
128     //-- action listener
129
public void actionPerformed(ActionEvent JavaDoc ae)
130     {
131         Vector JavaDoc userList = new Vector JavaDoc(Client.getInstance().getUserList());
132         System.out.println("1. " + userList);
133         Enumeration JavaDoc props = ((DefaultListModel JavaDoc)users.getModel()).elements();
134         while(props.hasMoreElements())
135         {
136             ReunionUserProperties user = (ReunionUserProperties)props.nextElement();
137             userList.remove(user.getUser());
138         }
139
140         ListBox listBox = new ListBox(null, getTitle(), plugin.tr("msg.selectUsers"), userList);
141         Object JavaDoc[] users = listBox.selectItems();
142
143         if(users != null)
144         {
145             for(int i=0;i<users.length;i++)
146             {
147                 ConnectInfo ci = Communicator.getInstance().getConnectInfo((String JavaDoc)users[i]);
148                 plugin.inviteUser(ci);
149             }
150         }
151     }
152     
153     //-- key listener
154
public void keyReleased(KeyEvent JavaDoc e) {}
155     public void keyTyped(KeyEvent JavaDoc e) {}
156     public void keyPressed(KeyEvent JavaDoc ke)
157     {
158         if(ke.getKeyCode() == KeyEvent.VK_ENTER)
159         {
160             ke.consume();
161             if(write.getText().equals(""))
162                 return;
163
164             plugin.sendTextMessage(write.getText());
165             write.clear();
166         }
167     }
168 }
Popular Tags