diff options
author | Vincent Lucas <chenzo@jitsi.org> | 2012-08-02 15:20:03 +0000 |
---|---|---|
committer | Vincent Lucas <chenzo@jitsi.org> | 2012-08-02 15:20:03 +0000 |
commit | 9cdde989fa7b7a7aa3613cabc2a0ebdf86eb99ad (patch) | |
tree | dc06a29dacf32663721ee676e3fc705b59730788 /src | |
parent | a45b6e0940828aa008f07a37c264780585e6362a (diff) | |
download | jitsi-9cdde989fa7b7a7aa3613cabc2a0ebdf86eb99ad.zip jitsi-9cdde989fa7b7a7aa3613cabc2a0ebdf86eb99ad.tar.gz jitsi-9cdde989fa7b7a7aa3613cabc2a0ebdf86eb99ad.tar.bz2 |
Corrects warning dialog height on Linux when closing a chat window with: a un-sent message, an active file transfer or when the last message is received less than 2 seconds ago.
Diffstat (limited to 'src')
-rw-r--r-- | src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java | 142 |
1 files changed, 53 insertions, 89 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java index 5f122c2..fd5610e 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java @@ -6,6 +6,7 @@ */ package net.java.sip.communicator.impl.gui.main.chat; +import java.awt.Component; // disambiguation import java.util.*; import javax.swing.*; @@ -150,24 +151,9 @@ public class ChatWindowManager if (!chatPanel.isWriteAreaEmpty()) { - SIPCommMsgTextArea msgText = new SIPCommMsgTextArea( - GuiActivator.getResources().getI18NString( - "service.gui.NON_EMPTY_CHAT_WINDOW_CLOSE")); - JComponent textComponent = msgText; - if(OSUtils.IS_LINUX) - { - JScrollPane jScrollPane = new JScrollPane(msgText); - jScrollPane.setBorder(null); - textComponent = jScrollPane; - } - - int answer = JOptionPane.showConfirmDialog( - null, - textComponent, - GuiActivator.getResources().getI18NString( - "service.gui.WARNING"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.WARNING_MESSAGE); + int answer = showWarningMessage( + "service.gui.NON_EMPTY_CHAT_WINDOW_CLOSE", + chatPanel); if (answer == JOptionPane.OK_OPTION) closeChatPanel(chatPanel); @@ -175,55 +161,22 @@ public class ChatWindowManager else if (System.currentTimeMillis() - lastMsgTimestamp < 2 * 1000) { - SIPCommMsgTextArea msgText - = new SIPCommMsgTextArea(GuiActivator.getResources() - .getI18NString( - "service.gui.CLOSE_CHAT_AFTER_NEW_MESSAGE")); - JComponent textComponent = msgText; - if(OSUtils.IS_LINUX) - { - JScrollPane jScrollPane = new JScrollPane(msgText); - jScrollPane.setBorder(null); - textComponent = jScrollPane; - } - - int answer = JOptionPane.showConfirmDialog( - null, - textComponent, - GuiActivator.getResources() - .getI18NString("service.gui.WARNING"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.WARNING_MESSAGE); + int answer = showWarningMessage( + "service.gui.CLOSE_CHAT_AFTER_NEW_MESSAGE", + chatPanel); if (answer == JOptionPane.OK_OPTION) closeChatPanel(chatPanel); } else if (chatPanel.containsActiveFileTransfers()) { - SIPCommMsgTextArea msgText - = new SIPCommMsgTextArea(GuiActivator.getResources() - .getI18NString( - "service.gui.CLOSE_CHAT_ACTIVE_FILE_TRANSFER")); - JComponent textComponent = msgText; - if(OSUtils.IS_LINUX) - { - JScrollPane jScrollPane = new JScrollPane(msgText); - jScrollPane.setBorder(null); - textComponent = jScrollPane; - } - - int answer = JOptionPane.showConfirmDialog( - null, - textComponent, - GuiActivator.getResources() - .getI18NString("service.gui.WARNING"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.WARNING_MESSAGE); + int answer = showWarningMessage( + "service.gui.CLOSE_CHAT_ACTIVE_FILE_TRANSFER", + chatPanel); if (answer == JOptionPane.OK_OPTION) { chatPanel.cancelActiveFileTransfers(); - closeChatPanel(chatPanel); } } @@ -351,50 +304,27 @@ public class ChatWindowManager if (!activePanel.isWriteAreaEmpty()) { - SIPCommMsgTextArea msgText = new SIPCommMsgTextArea( - GuiActivator.getResources().getI18NString( - "service.gui.NON_EMPTY_CHAT_WINDOW_CLOSE")); - int answer = JOptionPane.showConfirmDialog( - chatContainer.getFrame(), - msgText, - GuiActivator.getResources() - .getI18NString("service.gui.WARNING"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.WARNING_MESSAGE); + int answer = showWarningMessage( + "service.gui.NON_EMPTY_CHAT_WINDOW_CLOSE", + chatContainer.getFrame()); if (answer == JOptionPane.OK_OPTION) this.closeAllChats(chatContainer); } else if (System.currentTimeMillis() - lastMsgTimestamp < 2 * 1000) { - SIPCommMsgTextArea msgText = new SIPCommMsgTextArea( - GuiActivator.getResources() - .getI18NString("service.gui.CLOSE_CHAT_AFTER_NEW_MESSAGE")); - - int answer = JOptionPane.showConfirmDialog( - chatContainer.getFrame(), - msgText, - GuiActivator.getResources() - .getI18NString("service.gui.WARNING"), - JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); + int answer = showWarningMessage( + "service.gui.CLOSE_CHAT_AFTER_NEW_MESSAGE", + chatContainer.getFrame()); if (answer == JOptionPane.OK_OPTION) this.closeAllChats(chatContainer); } else if (activePanel.containsActiveFileTransfers()) { - SIPCommMsgTextArea msgText - = new SIPCommMsgTextArea(GuiActivator.getResources() - .getI18NString( - "service.gui.CLOSE_CHAT_ACTIVE_FILE_TRANSFER")); - - int answer = JOptionPane.showConfirmDialog( - chatContainer.getFrame(), - msgText, - GuiActivator.getResources() - .getI18NString("service.gui.WARNING"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.WARNING_MESSAGE); + int answer = showWarningMessage( + "service.gui.CLOSE_CHAT_ACTIVE_FILE_TRANSFER", + chatContainer.getFrame()); if (answer == JOptionPane.OK_OPTION) { @@ -1274,4 +1204,38 @@ public class ChatWindowManager chatListeners.remove(listener); } } + + /** + * Displays a custom warning message. + * + * @param resourceString The resource name of the message to display. + * @param parentComponent Determines the Frame in which the dialog is + * displayed; if null, or if the parentComponent has no Frame, a default + * Frame is used + * + * @return The integer corresponding to the option choosen by the user. + */ + private static int showWarningMessage( + String resourceString, + Component parentComponent) + { + SIPCommMsgTextArea msgText + = new SIPCommMsgTextArea( + GuiActivator.getResources().getI18NString(resourceString)); + JComponent textComponent = msgText; + if(OSUtils.IS_LINUX) + { + JScrollPane jScrollPane = new JScrollPane(msgText); + jScrollPane.setBorder(null); + textComponent = jScrollPane; + } + + return JOptionPane.showConfirmDialog( + parentComponent, + textComponent, + GuiActivator.getResources().getI18NString( + "service.gui.WARNING"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.WARNING_MESSAGE); + } } |