Ignore:
Timestamp:
2013-04-28T22:52:00+02:00 (12 years ago)
Author:
zverik
Message:

updates

Location:
applications/editors/josm/plugins/geochat/src/geochat
Files:
3 edited

Legend:

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

    r29540 r29541  
    3232        requestThread = new LogRequest();
    3333        new Thread(requestThread).start();
    34         checkLogin();
    3534    }
    3635   
     
    6564     */
    6665    public void checkLogin() {
    67         final int uid = Main.pref.getInteger("geochar.lastuid", 0);
     66        final int uid = Main.pref.getInteger("geochat.lastuid", 0);
    6867        if( uid <= 0 ) return;
    6968        String query = "whoami&uid=" + uid;
    7069        JsonQueryUtil.queryAsync(query, new JsonQueryCallback() {
    7170            public void processJson( JSONObject json ) {
    72                 if( json != null && json.has("name") ) {
     71                if( json != null && json.has("name") )
    7372                    login(uid, json.getString("name"));
    74                 }
    7573            }
    7674        });
     
    243241
    244242        public void run() {
    245             int interval = Main.pref.getInteger("geochat.interval", 3);
     243            int interval = Main.pref.getInteger("geochat.interval", 2);
    246244            while( !stopping ) {
    247245                process();
     
    329327                    String author = msg.getString("author");
    330328                    String message = msg.getString("message");
    331                     ChatMessage cm = new ChatMessage(id, new LatLon(lat, lon), author, message, new Date(timeStamp));
     329                    ChatMessage cm = new ChatMessage(id, new LatLon(lat, lon), author, message, new Date(timeStamp * 1000));
    332330                    cm.setPrivate(priv);
    333331                    result.add(cm);
  • applications/editors/josm/plugins/geochat/src/geochat/GeoChatPanel.java

    r29540 r29541  
    22
    33import java.awt.BorderLayout;
     4import java.awt.Font;
    45import java.awt.event.ActionEvent;
    56import java.awt.event.ActionListener;
     7import java.awt.event.KeyEvent;
    68import java.text.SimpleDateFormat;
    79import java.util.*;
     
    2527    private JTextField input;
    2628    private JTabbedPane tabs;
    27     private JPanel chatPanel;
    2829    private JComponent noData;
    2930    private JPanel loginPanel;
     
    3637        chatPane = new JTextPane();
    3738        chatPane.setEditable(false);
     39        Font font = chatPane.getFont();
     40        chatPane.setFont(font.deriveFont(font.getSize2D() - 2));
    3841
    3942        noData = new JLabel(tr("Zoom in to see messages"), SwingConstants.CENTER);
    4043
    4144        tabs = new JTabbedPane();
    42         tabs.addTab(tr("Public"), noData);
     45        tabs.addTab(tr("Public"), chatPane);
    4346
    44         input = new JTextField();
     47        input = new JTextField() {
     48            @Override
     49            protected void processKeyEvent( KeyEvent e ) {
     50                if( e.getID() == KeyEvent.KEY_PRESSED ) {
     51                    int code = e.getKeyCode();
     52                    if( code == KeyEvent.VK_ENTER ) {
     53                        String text = input.getText();
     54                        if( text.length() > 0 ) {
     55                            connection.postMessage(text);
     56                            input.setText("");
     57                        }
     58                    } else if( code == KeyEvent.VK_TAB ) {
     59                        // todo: autocomplete name
     60                    } else if( code == KeyEvent.VK_ESCAPE ) {
     61                        if( Main.map != null && Main.map.mapView != null )
     62                            Main.map.mapView.requestFocus();
     63                    }
     64                    // Do not pass other events to JOSM
     65                    if( code != KeyEvent.VK_LEFT && code != KeyEvent.VK_HOME && code != KeyEvent.VK_RIGHT
     66                            && code != KeyEvent.VK_END && code != KeyEvent.VK_BACK_SPACE && code != KeyEvent.VK_DELETE )
     67                        e.consume();
     68                }
     69                super.processKeyEvent(e);
     70            }
    4571
    46         gcPanel = new JPanel(new BorderLayout());
    47         gcPanel.add(tabs, BorderLayout.CENTER);
    48         gcPanel.add(input, BorderLayout.SOUTH);
     72        };
    4973
    50         loginPanel = new JPanel(new BorderLayout());
    5174        final JTextField nameField = new JTextField();
    5275        String userName = JosmUserIdentityManager.getInstance().getUserName();
     
    5578        if( userName.contains("@") )
    5679            userName = userName.substring(0, userName.indexOf('@'));
    57         nameField.setText(name);
     80        nameField.setText(userName);
    5881
    5982        JButton loginButton = new JButton(tr("Login"));
     
    6487        });
    6588
     89        loginPanel = new JPanel(new BorderLayout());
    6690        loginPanel.add(nameField, BorderLayout.CENTER);
    6791        loginPanel.add(loginButton, BorderLayout.EAST);
     92        loginPanel.add(Box.createVerticalGlue(), BorderLayout.NORTH);
     93        loginPanel.add(Box.createVerticalGlue(), BorderLayout.SOUTH);
    6894
    6995        gcPanel = new JPanel(new BorderLayout());
     
    7399        // Start threads
    74100        connection = ChatServerConnection.getInstance();
     101        connection.addListener(this);
     102        connection.checkLogin();
    75103    }
    76104
    77105    public void loggedIn( String userName ) {
    78         gcPanel.remove(0);
    79         gcPanel.add(tabs, 0);
     106        if( gcPanel.getComponentCount() == 1 ) {
     107            gcPanel.remove(0);
     108            gcPanel.add(tabs, BorderLayout.CENTER);
     109            gcPanel.add(input, BorderLayout.SOUTH);
     110        }
    80111    }
    81112
     
    89120    public void statusChanged( boolean active ) {
    90121        tabs.setComponentAt(0, active ? chatPane : noData);
     122        repaint();
    91123    }
    92124
     
    99131            chatPane.setText("");
    100132        }
    101         StringBuffer sb = new StringBuffer();
     133        StringBuilder sb = new StringBuilder();
    102134        for( ChatMessage msg : messages ) {
    103135            sb.append('\n');
  • applications/editors/josm/plugins/geochat/src/geochat/JsonQueryUtil.java

    r29540 r29541  
    2929            String serverURL = Main.pref.get("geochat.server", "http://zverik.dev.openstreetmap.org/osmochat.php?action=");
    3030            URL url = new URL(serverURL + query);
     31//            System.out.println("GeoChat URL = " + url.toString());
    3132            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
    3233            connection.connect();
Note: See TracChangeset for help on using the changeset viewer.