Ignore:
Timestamp:
2013-05-06T22:28:01+02:00 (11 years ago)
Author:
zverik
Message:

private chat works

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/geochat/src/geochat/GeoChatPanel.java

    r29558 r29563  
    4848        createChatPane(null);
    4949
    50         tabs.addMouseListener(new MouseAdapter() {
    51             @Override public void mousePressed( MouseEvent e ) { check(e); }
    52             @Override public void mouseReleased( MouseEvent e ) { check(e); }
    53 
    54             private void check( MouseEvent e ) {
    55                 if( e.isPopupTrigger() ) {
    56                     createPopupMenu().show(tabs, e.getX(), e.getY());
    57                 }
    58             }
    59         });
     50        tabs.addMouseListener(new PopupAdapter());
    6051
    6152        input = new JPanelTextField() {
     
    9283        nameField.setPreferredSize(new Dimension(nameField.getPreferredSize().width, loginButton.getPreferredSize().height));
    9384
    94 //        loginPanel = new JPanel(new BorderLayout());
    95 //        loginPanel.add(nameField, BorderLayout.CENTER);
    96 //        loginPanel.add(loginButton, BorderLayout.EAST);
    9785        loginPanel = new JPanel(new GridBagLayout());
    9886        loginPanel.add(nameField, GBC.std().fill(GridBagConstraints.HORIZONTAL).insets(15, 0, 5, 0));
     
    10896        connection.addListener(this);
    10997        connection.checkLogin();
    110     }
    111    
    112     private JPopupMenu createPopupMenu() {
    113         JMenu userMenu = new JMenu(tr("Private chat"));
    114         for( String user : users.keySet() ) {
    115             if( !chatPanes.containsKey(user) )
    116                 userMenu.add(new PrivateChatAction(user));
    117         }
    118 
    119         JPopupMenu menu = new JPopupMenu();
    120         menu.add(new JCheckBoxMenuItem(new ToggleUserLayerAction()));
    121         if( userMenu.getComponentCount() > 0 )
    122             menu.add(userMenu);
    123         if( getRecipient() != null )
    124             menu.add(new CloseTabAction());
    125         menu.add(new ClearPaneAction());
    126         menu.add(new LogoutAction());
    127         return menu;
    12898    }
    12999
     
    165135        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
    166136        JScrollPane scrollPane = new JScrollPane(chatPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
     137        chatPane.addMouseListener(new PopupAdapter());
    167138
    168139        ChatLogEntry entry = new ChatLogEntry();
     
    243214            radius /= 2;
    244215
    245         Font font = g2d.getFont().deriveFont(Math.min(zoom * 2, 8));
     216        Font font = g2d.getFont().deriveFont(Font.BOLD, Math.max(zoom * 2, 8));
    246217        g2d.setFont(font);
    247218        FontMetrics fm = g2d.getFontMetrics();
     
    257228        }
    258229    }
     230
     231    /* ============ ChatServerConnectionListener methods ============= */
    259232
    260233    public void loggedIn( String userName ) {
     
    350323        }
    351324    }
     325
     326    /* =================== Service classes ==================== */
    352327
    353328    private class JPanelTextField extends JTextField {
     
    389364    }
    390365
     366    /* ================= Actions for popup menu ==================== */
     367
     368
     369    private JPopupMenu createPopupMenu() {
     370        JMenu userMenu = new JMenu(tr("Private chat"));
     371        for( String user : users.keySet() ) {
     372            if( !chatPanes.containsKey(user) )
     373                userMenu.add(new PrivateChatAction(user));
     374        }
     375
     376        JPopupMenu menu = new JPopupMenu();
     377        menu.add(new JCheckBoxMenuItem(new ToggleUserLayerAction()));
     378        if( userMenu.getItemCount() > 0 )
     379            menu.add(userMenu);
     380        if( getRecipient() != null )
     381            menu.add(new CloseTabAction());
     382//        menu.add(new ClearPaneAction());
     383//        menu.add(new LogoutAction());
     384        return menu;
     385    }
     386
     387    private class PopupAdapter extends MouseAdapter {
     388        @Override public void mousePressed( MouseEvent e ) { check(e); }
     389        @Override public void mouseReleased( MouseEvent e ) { check(e); }
     390
     391        private void check( MouseEvent e ) {
     392            if( e.isPopupTrigger() ) {
     393                createPopupMenu().show(tabs, e.getX(), e.getY());
     394            }
     395        }
     396    }
     397
    391398    private class PrivateChatAction extends AbstractAction {
    392399        private String userName;
     
    407414        public CloseTabAction() {
    408415            super(tr("Close tab"));
    409             putValue(SMALL_ICON, ImageProvider.get("help"));
     416//            putValue(SMALL_ICON, ImageProvider.get("help"));
    410417        }
    411418
     
    420427        public LogoutAction() {
    421428            super(tr("Logout"));
    422             putValue(SMALL_ICON, ImageProvider.get("help"));
     429//            putValue(SMALL_ICON, ImageProvider.get("help"));
    423430        }
    424431
     
    431438        public ClearPaneAction() {
    432439            super(tr("Clear log"));
    433             putValue(SMALL_ICON, ImageProvider.get("help"));
     440//            putValue(SMALL_ICON, ImageProvider.get("help"));
    434441        }
    435442
     
    442449        public ToggleUserLayerAction() {
    443450            super(tr("Show users on map"));
    444             putValue(SMALL_ICON, ImageProvider.get("help"));
     451//            putValue(SMALL_ICON, ImageProvider.get("help"));
    445452        }
    446453
Note: See TracChangeset for help on using the changeset viewer.