diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java index 264d40305..04d5832fb 100755 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java @@ -442,7 +442,7 @@ public void appendMessageToEnd(String chatString) this.ensureDocumentSize(); // Scroll to the last inserted text in the document. - this.setCarretToEnd(); + this.scrollToBottom(); } /** @@ -472,7 +472,7 @@ public void insertMessageAfterStart(String chatString) this.ensureDocumentSize(); // Scroll to the last inserted text in the document. - this.setCarretToEnd(); + this.scrollToBottom(); } /** @@ -550,11 +550,13 @@ private void ensureDocumentSize() * Highlights keywords searched in the history. * * @param message the source message + * @param contentType the content type * @param keyword the searched keyword * @return the formatted message */ - private String processKeyword(String message, String contentType, - String keyword) + private String processKeyword( String message, + String contentType, + String keyword) { String startPlainTextTag; String endPlainTextTag; @@ -710,8 +712,9 @@ private String processNewLines(String message) /** * Formats message smileys. * - * @param message The source message string. - * @return The message string with properly formated smileys. + * @param message the source message string + * @param contentType the content type + * @return the message string with properly formated smileys */ private String processSmileys(String message, String contentType) { @@ -866,12 +869,16 @@ public long getLastIncomingMsgTimestamp() /** * Moves the caret to the end of the editor pane. */ - public void setCarretToEnd() + public void scrollToBottom() { - int documentLength = document.getLength(); - - if (chatTextPane.getDocument().getLength() == documentLength) - chatTextPane.setCaretPosition(documentLength); + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + getVerticalScrollBar() + .setValue(getVerticalScrollBar().getMaximum()); + } + }); } /** @@ -931,25 +938,15 @@ private void openContextMenu(Point p) rightButtonMenu.setVisible(true); } - public void mousePressed(MouseEvent e) - { - } + public void mousePressed(MouseEvent e) {} - public void mouseReleased(MouseEvent e) - { - } + public void mouseReleased(MouseEvent e) {} - public void mouseEntered(MouseEvent e) - { - } + public void mouseEntered(MouseEvent e) {} - public void mouseExited(MouseEvent e) - { - } + public void mouseExited(MouseEvent e) {} - public void lostOwnership(Clipboard clipboard, Transferable contents) - { - } + public void lostOwnership(Clipboard clipboard, Transferable contents) {} /** * Returns the chat container. @@ -1169,7 +1166,7 @@ private String processImgTags(String message) } /** - * Extend Editor pane to add url tooltips. + * Extend Editor pane to add URL tooltips. */ private class MyTextPane extends JTextPane @@ -1177,6 +1174,7 @@ private class MyTextPane /** * Returns the string to be used as the tooltip for event. * + * @param event the MouseEvent * @return the string to be used as the tooltip for event. */ public String getToolTipText(MouseEvent event) @@ -1231,7 +1229,7 @@ public void addComponent(ChatConversationComponent component) logger.error("Insert in the HTMLDocument failed.", e); } - this.setCarretToEnd(); + this.scrollToBottom(); } /** diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java index 8495748ad..cdbaddf69 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatPanel.java @@ -89,6 +89,9 @@ public class ChatPanel */ public static final int TYPING_NOTIFICATION_SEND_FAILED = 0; + /** + * The number of messages shown per page. + */ protected static final int MESSAGES_PER_PAGE = 20; private boolean isShown = false; @@ -155,6 +158,10 @@ public ChatPanel(ChatWindow chatWindow) this.addComponentListener(new TabSelectionComponentListener()); } + /** + * Sets the chat session to associate to this chat panel. + * @param chatSession the chat session to associate to this chat panel + */ public void setChatSession(ChatSession chatSession) { this.chatSession = chatSession; @@ -282,15 +289,20 @@ else if (chatSession instanceof ConferenceChatSession) sendSmsCheckBox.setEnabled(false); } + /** + * Returns the chat session associated with this chat panel. + * @return the chat session associated with this chat panel + */ public ChatSession getChatSession() { return chatSession; } - + /** * Shows or hides the Stylebar depending on the value of parameter b. * - * @param b if true, makes the Stylebar visible, otherwise hides the Stylebar + * @param b if true, makes the Stylebar visible, otherwise hides the + * Stylebar */ public void setStylebarVisible(boolean b) { @@ -399,7 +411,7 @@ public void componentShown(ComponentEvent evt) } /** - * Moves the caret to the end of the conversation panel, contained in the + * Scrolls to the bottom of the conversation panel, contained in the * given chat panel. * * Workaround for the following problem: @@ -410,10 +422,10 @@ public void componentShown(ComponentEvent evt) * conversation area is slightly resized and is made smaller, * which moves the scrollbar up. */ - public void setCaretToEnd() + public void scrollConversationToBottom() { //Scroll to the last inserted text in the document. - getChatConversationPanel().setCarretToEnd(); + getChatConversationPanel().scrollToBottom(); } /** @@ -650,7 +662,8 @@ public void addErrorMessage(String contactName, /** * Adds the given error message to the chat window conversation area. * - * @param contactName the name of the contact, for which the error occured + * @param contactName the name of the contact, for which the error occurred + * @param title the title of the error * @param message the error message */ public void addErrorMessage(String contactName, @@ -725,6 +738,7 @@ public void addTextInWriteArea(String text){ /** * Returns the text contained in the write area editor. + * @param mimeType the mime type * @return The text contained in the write area editor. */ public String getTextFromWriteArea(String mimeType) @@ -1529,6 +1543,7 @@ public void setSelectedChatTransport(ChatTransport chatTransport) /** * Updates the status of the given chat transport in the send via selector * box and notifies the user for the status change. + * @param chatTransport the chatTransport to update */ public void updateChatTransportStatus(ChatTransport chatTransport) { @@ -1679,8 +1694,13 @@ public void removeChatContact(ChatContact chatContact) chatContactListPanel.removeContact(chatContact); } + /** + * Updates the contact status. + * @param chatContact the chat contact to update + * @param statusMessage the status message to show + */ public void updateChatContactStatus(ChatContact chatContact, - String statusMessage) + String statusMessage) { this.addMessage( chatContact.getName(), @@ -1690,6 +1710,10 @@ public void updateChatContactStatus(ChatContact chatContact, ChatConversationPanel.TEXT_CONTENT_TYPE); } + /** + * Sets the given subject to this chat. + * @param subject the subject to set + */ public void setChatSubject(String subject) { if (subjectPanel != null) @@ -1712,6 +1736,7 @@ public void setChatSubject(String subject) * Adds the given IncomingFileTransferRequest to the conversation * panel in order to notify the user of the incoming file. * + * @param fileTransferOpSet the file transfer operation set * @param request the request to display in the conversation panel * @param date the date on which the request has been received */ @@ -1849,6 +1874,12 @@ public ChatTransport findInviteChatTransport() return null; } + /** + * Invites the given chatContacts to this chat. + * @param inviteChatTransport the chat transport to use to send the invite + * @param chatContacts the contacts to invite + * @param reason the reason of the invite + */ public void inviteContacts( ChatTransport inviteChatTransport, Collection chatContacts, String reason) @@ -1940,6 +1971,8 @@ public void fireChatFocusEvent(int eventID) /** * Handles file transfer status changed in order to remove completed file * transfers from the list of active transfers. + * @param event the file transfer status change event the notified us for + * the change */ public void statusChanged(FileTransferStatusChangeEvent event) { @@ -2043,6 +2076,7 @@ else if (incomingEvent instanceof ChatConversationComponent) * transfers. * * @param id the identifier of the file transfer to add + * @param descriptor the descriptor of the file transfer */ public void addActiveFileTransfer(String id, Object descriptor) { diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java index b67c38570..1726170a3 100755 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java @@ -233,11 +233,8 @@ public void setStylebarVisible(boolean b) } } - /* - * (non-Javadoc) - * - * @see - * net.java.sip.communicator.impl.gui.customcontrols.SIPCommFrame#dispose() + /** + * @see SIPCommFrame#dispose() */ public void dispose() { @@ -333,7 +330,7 @@ else if (getChatTabCount() == 0) // is added to the tabbed pane. Then the scrollpane in the // conversation area is slightly resized and is made smaller, // which moves the scrollbar up. - currentChatPanel.setCaretToEnd(); + currentChatPanel.scrollConversationToBottom(); //add the chatTabbedPane to the window this.mainPanel.add(chatTabbedPane, BorderLayout.CENTER); @@ -659,6 +656,7 @@ public void actionPerformed(ActionEvent e) /** * Returns the time of the last received message. * + * @param chatPanel the chat panel for which w're getting the timestamp * @return The time of the last received message. */ public long getLastIncomingMsgTimestamp(ChatPanel chatPanel) @@ -687,6 +685,8 @@ public void windowDeiconified(WindowEvent e) /** * Implements the SIPCommFrame close method. We check for an open * menu and if there's one we close it, otherwise we close the current chat. + * @param isEscaped indicates if this window was closed by pressing the esc + * button */ protected void close(boolean isEscaped) { @@ -728,7 +728,8 @@ else if ((menuBar.getSelectedMenu() != null) /** * Implements the ExportedWindow.getIdentifier() method. - * Returns the identifier of this window, which will + * @return the identifier of this window, used as plugin container + * identifier. */ public WindowID getIdentifier() { @@ -825,6 +826,11 @@ private void initPluginComponents() GuiActivator.getUIService().addPluginComponentListener(this); } + /** + * Adds a plugin component to this container. + * @param event the PluginComponentEvent that notified us of the + * add + */ public void pluginComponentAdded(PluginComponentEvent event) { PluginComponent c = event.getPluginComponent(); @@ -841,6 +847,11 @@ public void pluginComponentAdded(PluginComponentEvent event) } } + /** + * Removes a plugin component from this container. + * @param event the PluginComponentEvent that notified us of the + * remove + */ public void pluginComponentRemoved(PluginComponentEvent event) { PluginComponent c = event.getPluginComponent(); @@ -878,6 +889,10 @@ public int getChatCount() return chatCount; } + /** + * Adds the given ChatChangeListener. + * @param listener the listener to add + */ public void addChatChangeListener(ChatChangeListener listener) { synchronized (chatChangeListeners) @@ -887,6 +902,10 @@ public void addChatChangeListener(ChatChangeListener listener) } } + /** + * Removes the given ChatChangeListener. + * @param listener the listener to remove + */ public void removeChatChangeListener(ChatChangeListener listener) { synchronized (chatChangeListeners) @@ -900,6 +919,7 @@ public void removeChatChangeListener(ChatChangeListener listener) * given constraints. * * @param c the component to add + * @param container the plugin container * @param constraints the constraints determining the container */ private void addPluginComponent(Component c, @@ -942,6 +962,7 @@ else if (container.equals(Container.CONTAINER_CHAT_STATUS_BAR)) * constraints. * * @param c the component to remove + * @param container the plugin container * @param constraints the constraints determining the container */ private void removePluginComponent( Component c, @@ -1094,7 +1115,8 @@ public void setChatSession(ChatSession chatSession) } /** - * Create tooltip. + * Creates a tooltip. + * @return the created tool tip */ public JToolTip createToolTip() { @@ -1137,6 +1159,7 @@ public JToolTip createToolTip() * each time in order to make the TooltipManager change the tooltip over * the different cells in the JList. * + * @param event the MouseEvent * @return the string to be used as the tooltip for event. */ public String getToolTipText(MouseEvent event) @@ -1152,14 +1175,14 @@ public void setParams(Object[] windowParams) {} /** * Handles WindowEvents triggered when the window has gained focus. + * @param evt the WindowEvent */ public void windowGainedFocus(WindowEvent evt) { this.removeNonReadChatState(); } - public void windowLostFocus(WindowEvent arg0) - {} + public void windowLostFocus(WindowEvent arg0) {} /** * Removes the non read state of the currently selected chat session. This @@ -1232,15 +1255,20 @@ public void paintComponent(Graphics g) } /** - * + * Sends all files from the given directory when it's dropped in the chat + * window. + * @param dir the directory to send + * @param point the point, where the directory was dropped */ - public void directoryDropped(File file, Point point) + public void directoryDropped(File dir, Point point) { - + //TODO: Implement send directory } /** - * + * Sends the given file when dropped to the chat window. + * @param file the file to send + * @param point the point, where the file was dropped */ public void fileDropped(File file, Point point) { 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 82c593ed5..9cd2b4922 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 @@ -94,7 +94,7 @@ else if(!chatWindow.getCurrentChatPanel().equals(chatPanel) { chatWindow.highlightTab(chatPanel); - chatPanel.setCaretToEnd(); + chatPanel.scrollConversationToBottom(); } } else @@ -102,7 +102,7 @@ else if(!chatWindow.getCurrentChatPanel().equals(chatPanel) chatWindow.setVisible(true); chatWindow.setCurrentChatPanel(chatPanel); - chatPanel.setCaretToEnd(); + chatPanel.scrollConversationToBottom(); } } }