diff --git a/src/net/java/sip/communicator/impl/gui/main/customcontrols/SIPCommSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/customcontrols/SIPCommSelectorBox.java index a9a84e765..ef5b36c44 100644 --- a/src/net/java/sip/communicator/impl/gui/main/customcontrols/SIPCommSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/customcontrols/SIPCommSelectorBox.java @@ -12,6 +12,8 @@ import java.awt.Image; import java.awt.Point; import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; @@ -31,7 +33,8 @@ * * @author Yana Stamcheva */ -public class SIPCommSelectorBox extends JLabel implements MouseListener { +public class SIPCommSelectorBox extends JLabel + implements MouseListener { private JPopupMenu popup; @@ -141,4 +144,8 @@ public void setSelectedObject(Object o) { public Object getSelectedObject() { return this.selectedObject; } + + public JPopupMenu getPopup() { + return popup; + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/message/ChatPanel.java b/src/net/java/sip/communicator/impl/gui/main/message/ChatPanel.java index 87962de11..cfe81203b 100644 --- a/src/net/java/sip/communicator/impl/gui/main/message/ChatPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/message/ChatPanel.java @@ -23,6 +23,7 @@ import javax.swing.JButton; import javax.swing.JEditorPane; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.JViewport; @@ -33,6 +34,7 @@ import javax.swing.text.Element; import javax.swing.text.html.HTMLDocument; +import net.java.sip.communicator.impl.gui.main.customcontrols.SIPCommSelectorBox; import net.java.sip.communicator.service.contactlist.MetaContact; import net.java.sip.communicator.service.protocol.Contact; import net.java.sip.communicator.service.protocol.OperationSetBasicInstantMessaging; @@ -511,4 +513,16 @@ public void setCaretToEnd(){ //Scroll to the last inserted text in the document. this.conversationPanel.setCarretToEnd(); } + + public void openProtocolSelectorBox() { + SIPCommSelectorBox contactSelector + = this.sendPanel.getContactSelectorBox(); + JPopupMenu popup + = contactSelector.getPopup(); + + if (!popup.isVisible()) { + popup.setLocation(contactSelector.calculatePopupLocation()); + popup.setVisible(true); + } + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/message/ChatSendPanel.java b/src/net/java/sip/communicator/impl/gui/main/message/ChatSendPanel.java index 8ecb03510..d1aa54500 100755 --- a/src/net/java/sip/communicator/impl/gui/main/message/ChatSendPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/message/ChatSendPanel.java @@ -218,4 +218,8 @@ public void actionPerformed(ActionEvent e) { } } } + + public SIPCommSelectorBox getContactSelectorBox() { + return contactSelectorBox; + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/message/ChatWindow.java b/src/net/java/sip/communicator/impl/gui/main/message/ChatWindow.java index 47b2295a4..d593e7dcc 100755 --- a/src/net/java/sip/communicator/impl/gui/main/message/ChatWindow.java +++ b/src/net/java/sip/communicator/impl/gui/main/message/ChatWindow.java @@ -13,8 +13,6 @@ import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import java.util.Date; import java.util.Enumeration; import java.util.Hashtable; @@ -36,9 +34,7 @@ import net.java.sip.communicator.impl.gui.utils.ImageLoader; import net.java.sip.communicator.service.contactlist.MetaContact; import net.java.sip.communicator.service.protocol.Contact; -import net.java.sip.communicator.service.protocol.OperationSetBasicInstantMessaging; import net.java.sip.communicator.service.protocol.PresenceStatus; -import net.java.sip.communicator.service.protocol.ProtocolProviderService; /** * The chat window is the place, where users can write and send messages, view @@ -90,6 +86,10 @@ public ChatWindow(MainFrame mainFrame) { .put("changeTabBackword", new BackwordTabAction()); getRootPane().getActionMap() .put("sendMessage", new SendMessageAction()); + getRootPane().getActionMap() + .put("openSmilies", new OpenSmilyAction()); + getRootPane().getActionMap() + .put("changeProtocol", new ChangeProtocolAction()); getRootPane().getActionMap().put("copy", new CopyAction()); getRootPane().getActionMap().put("paste", new PasteAction()); @@ -108,6 +108,10 @@ public ChatWindow(MainFrame mainFrame) { KeyEvent.SHIFT_DOWN_MASK), "paste"); imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, KeyEvent.CTRL_DOWN_MASK), "sendMessage"); + imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_S, + KeyEvent.ALT_DOWN_MASK), "openSmilies"); + imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_P, + KeyEvent.ALT_DOWN_MASK), "changeProtocol"); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { @@ -509,4 +513,16 @@ public void actionPerformed(ActionEvent e) { chatPanel.sendMessage(); } } + + private class OpenSmilyAction extends AbstractAction { + public void actionPerformed(ActionEvent e) { + menusPanel.getMainToolBar().getSmileyButton().doClick(); + } + } + + private class ChangeProtocolAction extends AbstractAction { + public void actionPerformed(ActionEvent e) { + getCurrentChatPanel().openProtocolSelectorBox(); + } + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/message/MenusPanel.java b/src/net/java/sip/communicator/impl/gui/main/message/MenusPanel.java index 61f0a4570..6d5a29ac2 100644 --- a/src/net/java/sip/communicator/impl/gui/main/message/MenusPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/message/MenusPanel.java @@ -56,4 +56,8 @@ public MenusPanel(ChatWindow parentWindow) { public void addToolBar(JToolBar toolBar) { this.add(toolBar); } + + public MainToolBar getMainToolBar() { + return mainToolBar; + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/message/toolBars/MainToolBar.java b/src/net/java/sip/communicator/impl/gui/main/message/toolBars/MainToolBar.java index b12080d41..c04e53757 100644 --- a/src/net/java/sip/communicator/impl/gui/main/message/toolBars/MainToolBar.java +++ b/src/net/java/sip/communicator/impl/gui/main/message/toolBars/MainToolBar.java @@ -68,9 +68,6 @@ public class MainToolBar extends SIPCommToolBar implements ActionListener { private MsgToolbarButton fontButton = new MsgToolbarButton(ImageLoader .getImage(ImageLoader.FONT_ICON)); - private JLabel toolbarDivider = new JLabel(new ImageIcon(ImageLoader - .getImage(ImageLoader.TOOLBAR_DIVIDER))); - private ChatWindow messageWindow; /** @@ -229,4 +226,8 @@ else if (buttonText.equalsIgnoreCase("smiley")) { } } + + public MsgToolbarButton getSmileyButton() { + return smileyButton; + } }