jComboBoxStatus.setModel(loginwindow.getComboBoxItems());
jComboBoxStatus.setRenderer(renderer);
jComboBoxStatus.setSelectedIndex(loginwindow.getComboBoxSelectedItem());
jComboBoxStatus.setForeground(((ComboItem)jComboBoxStatus.getSelectedItem()).getColor());
final AndFilter andFilter = new AndFilter(new PacketTypeFilter(Message.class));
//Listener für eingehende Messages, dass dann ein Fenster geöffnet wird
final PacketListener pktListener = new PacketListener() {
public void processPacket(Packet pktPacket) {
boolean bWindow = false;
if (pktPacket instanceof Message) {
Message msg = (Message) pktPacket;
//String strFrom = msg.getFrom().substring(0, msg.getFrom().indexOf("/"));
String strFrom = msg.getFrom();
//System.out.println("Message: " + msg.getFrom() + " " + msg.getBody());
//System.out.println("geoeffnete Fenster:");
for(Frame frame : JFrame.getFrames()){
//if(frame.isVisible()){
//System.out.println(frame.getTitle());
//}
if (frame.getTitle().equals(strFrom))
{
//es ist schon ein ChatWindow für diesen Kontakt da
//wie sende ich die machricht am geschicktesten da hin???
//(ChatWindow) frame.setMessage(msg);
bWindow = true;
System.out.println("FENSTER offen!");
// xmppConnection.getChatManager().getThreadChat(msg.getThread()).
break;
}
}
if (bWindow == false)
{
ChatWindow wndChat1 = new ChatWindow(xmppconnection, msg, contacts.getContact(msg.getFrom(), false));
wndChat1.setVisible(true);
andFilter.addFilter(new NotFilter(new FromContainsFilter(msg.getFrom())));
xmppconnection.addPacketListener(this, andFilter);
}
}
}
};
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
String strTitle = null;
boolean bChatWindow = false;
//int index = lstContacts.locationToIndex(e.getPoint());
if (lstView.getSelectedValue() instanceof ListItem )
{
strTitle = ((ListItem) lstView.getSelectedValue()).getText();
//System.out.println("DRIN!");
for(Frame frame : JFrame.getFrames()){
if (frame.getTitle().equals(strTitle))
{
bChatWindow = true;
frame.setVisible(bChatWindow);
break;
}
}
if (bChatWindow == false)
{
if(contacts.getContact(strTitle,false) != null){
contact = contacts.getContact(strTitle,false);}
else{
contact = contacts.getContact(strTitle,true);}
ChatWindow wndChat = new ChatWindow(xmppconnection, contact);
Observer observer = wndChat;
contact.addObserver(observer);
andFilter.addFilter(new NotFilter(new FromContainsFilter(contact.getFullJID())));
xmppconnection.addPacketListener(pktListener, andFilter);
wndChat.setVisible(true);
}
}
}