From c2aef4ba8217bb48c739b204785a647540ab6132 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Wed, 11 Jan 2012 14:57:22 +0000 Subject: Adds some enhancements on chat room list dialog. Fixes some NPE exceptions. --- .../impl/gui/main/call/DTMFHandler.java | 12 +++--- .../impl/gui/main/chat/toolBars/MainToolBar.java | 45 ++++++++++++---------- .../main/chatroomslist/ChatRoomTableDialog.java | 16 ++++++++ 3 files changed, 45 insertions(+), 28 deletions(-) (limited to 'src/net/java') diff --git a/src/net/java/sip/communicator/impl/gui/main/call/DTMFHandler.java b/src/net/java/sip/communicator/impl/gui/main/call/DTMFHandler.java index 704107b..e6f8a32 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/DTMFHandler.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/DTMFHandler.java @@ -192,7 +192,8 @@ public class DTMFHandler { this.callContainer = callContainer; - this.addParent(callContainer.getCallWindow().getFrame()); + if(callContainer != null) + this.addParent(callContainer.getCallWindow().getFrame()); KeyboardFocusManager keyManager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); @@ -201,14 +202,10 @@ public class DTMFHandler /** * Creates DTMF handler for a call. - * @param callContainer the CallContainer, where this handler is - * registered */ public DTMFHandler() { - KeyboardFocusManager keyManager - = KeyboardFocusManager.getCurrentKeyboardFocusManager(); - keyManager.addKeyEventDispatcher(this); + this(null); } /** @@ -307,7 +304,8 @@ public class DTMFHandler audioNotifier.createAudio(info.sound); // some little silence, must have a non-zero or it won't loop - currentlyPlayingAudio.playInLoop(10); + if(currentlyPlayingAudio != null) + currentlyPlayingAudio.playInLoop(10); } if (callContainer != null) diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java b/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java index 54564e0..6947f11 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java @@ -315,32 +315,35 @@ public class MainToolBar boolean hasPhone = false; - Iterator contacts = contact.getContacts(); - while(contacts.hasNext()) + if(contact != null) { - Contact c = contacts.next(); - OperationSetServerStoredContactInfo infoOpSet = - c.getProtocolProvider().getOperationSet( - OperationSetServerStoredContactInfo.class); - Iterator details = null; - - if(infoOpSet != null) + Iterator contacts = contact.getContacts(); + while(contacts.hasNext()) { - details = infoOpSet.getAllDetailsForContact(c); - - while(details.hasNext()) + Contact c = contacts.next(); + OperationSetServerStoredContactInfo infoOpSet = + c.getProtocolProvider().getOperationSet( + OperationSetServerStoredContactInfo.class); + Iterator details = null; + + if(infoOpSet != null) { - GenericDetail d = details.next(); - if(d instanceof PhoneNumberDetail && - !(d instanceof PagerDetail) && - !(d instanceof FaxDetail)) + details = infoOpSet.getAllDetailsForContact(c); + + while(details.hasNext()) { - PhoneNumberDetail pnd = (PhoneNumberDetail)d; - if(pnd.getNumber() != null && - pnd.getNumber().length() > 0) + GenericDetail d = details.next(); + if(d instanceof PhoneNumberDetail && + !(d instanceof PagerDetail) && + !(d instanceof FaxDetail)) { - hasPhone = true; - break; + PhoneNumberDetail pnd = (PhoneNumberDetail)d; + if(pnd.getNumber() != null && + pnd.getNumber().length() > 0) + { + hasPhone = true; + break; + } } } } diff --git a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java index 2692446..d23b2c6 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java +++ b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java @@ -21,6 +21,7 @@ import net.java.sip.communicator.impl.gui.main.chat.*; import net.java.sip.communicator.impl.gui.main.chat.conference.*; import net.java.sip.communicator.impl.gui.utils.*; import net.java.sip.communicator.service.protocol.*; +import net.java.sip.communicator.util.*; import net.java.sip.communicator.util.swing.*; /** @@ -183,6 +184,9 @@ public class ChatRoomTableDialog okButton.addActionListener(this); cancelButton.addActionListener(this); + addButton.setEnabled(false); + removeButton.setEnabled(false); + westButtonPanel.add(addButton); westButtonPanel.add(removeButton); eastButtonPanel.add(cancelButton); @@ -213,9 +217,15 @@ public class ChatRoomTableDialog chatRoomsTableUI.clearSelection(); if(editor.getText().trim().length() > 0) + { okButton.setEnabled(true); + addButton.setEnabled(true); + } else + { okButton.setEnabled(false); + addButton.setEnabled(false); + } } public void keyPressed(KeyEvent e) @@ -239,7 +249,10 @@ public class ChatRoomTableDialog editor.setText(room.getChatRoomName()); providersCombo.setSelectedItem(room.getParentProvider()); okButton.setEnabled(true); + removeButton.setEnabled(true); } + else + removeButton.setEnabled(false); } } }); @@ -297,6 +310,9 @@ public class ChatRoomTableDialog if(sourceButton.equals(addButton)) { String chatRoomName = editor.getText(); + + if(StringUtils.isNullOrEmpty(chatRoomName)) + return; ChatRoomWrapper chatRoomWrapper = GuiActivator -- cgit v1.1