Ignore:
Timestamp:
2016-07-03T21:26:31+02:00 (8 years ago)
Author:
donvip
Message:

checkstyle

File:
1 edited

Legend:

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

    r30737 r32544  
    1 // License: WTFPL
     1// License: WTFPL. For details, see LICENSE file.
    22package geochat;
    33
    4 import java.awt.*;
    5 import java.awt.event.*;
     4import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.I18n.trn;
     6
     7import java.awt.AlphaComposite;
     8import java.awt.BorderLayout;
     9import java.awt.Color;
     10import java.awt.Composite;
     11import java.awt.Dimension;
     12import java.awt.Font;
     13import java.awt.FontMetrics;
     14import java.awt.Graphics2D;
     15import java.awt.GridBagConstraints;
     16import java.awt.GridBagLayout;
     17import java.awt.Point;
     18import java.awt.RenderingHints;
     19import java.awt.event.ActionEvent;
     20import java.awt.event.ActionListener;
    621import java.io.IOException;
    722import java.text.SimpleDateFormat;
    8 import java.util.*;
    923import java.util.List;
    10 import javax.swing.*;
     24import java.util.Map;
     25import java.util.TreeMap;
     26
     27import javax.swing.JButton;
     28import javax.swing.JCheckBox;
     29import javax.swing.JComponent;
     30import javax.swing.JLabel;
     31import javax.swing.JPanel;
     32import javax.swing.JTabbedPane;
     33import javax.swing.JTextField;
     34import javax.swing.SwingConstants;
     35
    1136import org.openstreetmap.josm.Main;
    1237import org.openstreetmap.josm.data.Bounds;
    1338import org.openstreetmap.josm.data.coor.LatLon;
    14 import org.openstreetmap.josm.gui.*;
     39import org.openstreetmap.josm.gui.JosmUserIdentityManager;
     40import org.openstreetmap.josm.gui.MapView;
     41import org.openstreetmap.josm.gui.Notification;
    1542import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
    1643import org.openstreetmap.josm.gui.layer.MapViewPaintable;
    1744import org.openstreetmap.josm.gui.util.GuiHelper;
    1845import org.openstreetmap.josm.tools.GBC;
    19 import static org.openstreetmap.josm.tools.I18n.tr;
    20 import static org.openstreetmap.josm.tools.I18n.trn;
    2146
    2247/**
     
    3661    ChatPaneManager chatPanes;
    3762    boolean userLayerActive;
    38    
     63
    3964    public GeoChatPanel() {
    4065        super(tr("GeoChat"), "geochat", tr("Open GeoChat panel"), null, 200, true);
     
    4873        input = new JPanelTextField() {
    4974            @Override
    50             protected void processEnter( String text ) {
     75            protected void processEnter(String text) {
    5176                connection.postMessage(text, chatPanes.getRecipient());
    5277            }
    5378
    5479            @Override
    55             protected String autoComplete( String word, boolean atStart ) {
     80            protected String autoComplete(String word, boolean atStart) {
    5681                return autoCompleteUser(word, atStart);
    5782            }
    5883        };
    59        
     84
    6085        String defaultUserName = constructUserName();
    6186        loginPanel = createLoginPanel(defaultUserName);
     
    76101    private String constructUserName() {
    77102        String userName = Main.pref.get("geochat.username", null); // so the default is null
    78         if( userName == null )
     103        if (userName == null)
    79104            userName = JosmUserIdentityManager.getInstance().getUserName();
    80         if( userName == null )
     105        if (userName == null)
    81106            userName = "";
    82         if( userName.contains("@") )
     107        if (userName.contains("@"))
    83108            userName = userName.substring(0, userName.indexOf('@'));
    84109        userName = userName.replace(' ', '_');
     
    86111    }
    87112
    88     private JPanel createLoginPanel( String defaultUserName ) {
     113    private JPanel createLoginPanel(String defaultUserName) {
    89114        final JTextField nameField = new JPanelTextField() {
    90115            @Override
    91             protected void processEnter( String text ) {
     116            protected void processEnter(String text) {
    92117                connection.login(text);
    93118            }
     
    98123        loginButton.addActionListener(new ActionListener() {
    99124            @Override
    100             public void actionPerformed( ActionEvent e ) {
     125            public void actionPerformed(ActionEvent e) {
    101126                connection.login(nameField.getText());
    102127            }
     
    107132        autoLoginBox.addActionListener(new ActionListener() {
    108133            @Override
    109             public void actionPerformed( ActionEvent e ) {
     134            public void actionPerformed(ActionEvent e) {
    110135                Main.pref.put("geochat.autologin", autoLoginBox.isSelected());
    111136            }
     
    126151    public void destroy() {
    127152        try {
    128             if( Main.pref.getBoolean("geochat.logout.on.close", true) ) {
     153            if (Main.pref.getBoolean("geochat.logout.on.close", true)) {
    129154                connection.removeListener(this);
    130155                connection.bruteLogout();
    131156            }
    132         } catch( IOException e ) {
     157        } catch (IOException e) {
    133158            Main.warn("Failed to logout from geochat server: " + e.getMessage());
    134159        }
     
    136161    }
    137162
    138     private String autoCompleteUser( String word, boolean atStart ) {
     163    private String autoCompleteUser(String word, boolean atStart) {
    139164        String result = null;
    140165        boolean singleUser = true;
    141         for( String user : users.keySet() ) {
    142             if( user.startsWith(word) ) {
    143                 if( result == null )
     166        for (String user : users.keySet()) {
     167            if (user.startsWith(word)) {
     168                if (result == null)
    144169                    result = user;
    145170                else {
    146171                    singleUser = false;
    147172                    int i = word.length();
    148                     while( i < result.length() && i < user.length() && result.charAt(i) == user.charAt(i) )
     173                    while (i < result.length() && i < user.length() && result.charAt(i) == user.charAt(i)) {
    149174                        i++;
    150                     if( i < result.length() )
     175                    }
     176                    if (i < result.length())
    151177                        result = result.substring(0, i);
    152178                }
     
    161187     */
    162188    @Override
    163     public void paint( Graphics2D g, MapView mv, Bounds bbox ) {
    164         Graphics2D g2d = (Graphics2D)g.create();
     189    public void paint(Graphics2D g, MapView mv, Bounds bbox) {
     190        Graphics2D g2d = (Graphics2D) g.create();
    165191        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    166192        Composite ac04 = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f);
     
    171197        FontMetrics fm = g2d.getFontMetrics();
    172198
    173         for( String user : users.keySet() ) {
     199        for (String user : users.keySet()) {
    174200            int stringWidth = fm.stringWidth(user);
    175201            int radius = stringWidth / 2 + 10;
     
    193219    protected void updateTitleAlarm() {
    194220        int alarmLevel = connection.isLoggedIn() ? chatPanes.getNotifyLevel() : 0;
    195         if( !isDialogInCollapsedView() && alarmLevel > 1 )
     221        if (!isDialogInCollapsedView() && alarmLevel > 1)
    196222            alarmLevel = 1;
    197223
    198224        String comment;
    199         if( connection.isLoggedIn() ) {
     225        if (connection.isLoggedIn()) {
    200226            comment = trn("{0} user", "{0} users", users.size() + 1, users.size() + 1);
    201227        } else {
     
    204230
    205231        String title = tr("GeoChat");
    206         if( comment != null )
     232        if (comment != null)
    207233            title = title + " (" + comment + ")";
    208234        final String alarm = (alarmLevel <= 0 ? "" : alarmLevel == 1 ? "* " : "!!! ") + title;
     
    219245     */
    220246    @Override
    221     protected void setIsCollapsed( boolean val ) {
     247    protected void setIsCollapsed(boolean val) {
    222248        super.setIsCollapsed(val);
    223249        chatPanes.setCollapsed(val);
     
    228254
    229255    @Override
    230     public void loggedIn( String userName ) {
     256    public void loggedIn(String userName) {
    231257        Main.pref.put("geochat.username", userName);
    232         if( gcPanel.getComponentCount() == 1 ) {
     258        if (gcPanel.getComponentCount() == 1) {
    233259            GuiHelper.runInEDTAndWait(new Runnable() {
    234260                @Override
     
    244270
    245271    @Override
    246     public void notLoggedIn( final String reason ) {
    247         if( reason != null ) {
     272    public void notLoggedIn(final String reason) {
     273        if (reason != null) {
    248274            GuiHelper.runInEDT(new Runnable() {
    249275                @Override
     
    254280        } else {
    255281            // regular logout
    256             if( gcPanel.getComponentCount() > 1 ) {
     282            if (gcPanel.getComponentCount() > 1) {
    257283                gcPanel.removeAll();
    258284                gcPanel.add(loginPanel, BorderLayout.CENTER);
     
    263289
    264290    @Override
    265     public void messageSendFailed( final String reason ) {
     291    public void messageSendFailed(final String reason) {
    266292        GuiHelper.runInEDT(new Runnable() {
    267293            @Override
     
    273299
    274300    @Override
    275     public void statusChanged( boolean active ) {
     301    public void statusChanged(boolean active) {
    276302        // only the public tab, because private chats don't rely on coordinates
    277303        tabs.setComponentAt(0, active ? chatPanes.getPublicChatComponent() : noData);
     
    280306
    281307    @Override
    282     public void updateUsers( Map<String, LatLon> newUsers ) {
    283         for( String uname : this.users.keySet() ) {
    284             if( !newUsers.containsKey(uname) )
     308    public void updateUsers(Map<String, LatLon> newUsers) {
     309        for (String uname : this.users.keySet()) {
     310            if (!newUsers.containsKey(uname))
    285311                chatPanes.addLineToPublic(tr("User {0} has left", uname), ChatPaneManager.MESSAGE_TYPE_INFORMATION);
    286312        }
    287         for( String uname : newUsers.keySet() ) {
    288             if( !this.users.containsKey(uname) )
     313        for (String uname : newUsers.keySet()) {
     314            if (!this.users.containsKey(uname))
    289315                chatPanes.addLineToPublic(tr("User {0} is mapping nearby", uname), ChatPaneManager.MESSAGE_TYPE_INFORMATION);
    290316        }
    291317        this.users = newUsers;
    292318        updateTitleAlarm();
    293         if( userLayerActive && Main.map.mapView != null )
     319        if (userLayerActive && Main.map.mapView != null)
    294320            Main.map.mapView.repaint();
    295321    }
     
    297323    private final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
    298324
    299     private void formatMessage( StringBuilder sb, ChatMessage msg ) {
     325    private void formatMessage(StringBuilder sb, ChatMessage msg) {
    300326        sb.append("\n");
    301327        sb.append('[').append(TIME_FORMAT.format(msg.getTime())).append("] ");
     
    304330
    305331    @Override
    306     public void receivedMessages( boolean replace, List<ChatMessage> messages ) {
    307         if( replace )
     332    public void receivedMessages(boolean replace, List<ChatMessage> messages) {
     333        if (replace)
    308334            chatPanes.clearPublicChatPane();
    309         if( !messages.isEmpty() ) {
     335        if (!messages.isEmpty()) {
    310336            int alarm = 0;
    311337            StringBuilder sb = new StringBuilder();
    312             for( ChatMessage msg : messages ) {
     338            for (ChatMessage msg : messages) {
    313339                boolean important = msg.isIncoming() && containsName(msg.getMessage());
    314                 if( msg.isIncoming() && alarm < 2 ) {
     340                if (msg.isIncoming() && alarm < 2) {
    315341                    alarm = important ? 2 : 1;
    316342                }
    317                 if( important ) {
     343                if (important) {
    318344                    // add buffer, then add current line with italic, then clear buffer
    319345                    chatPanes.addLineToPublic(sb.toString());
     
    326352            }
    327353            chatPanes.addLineToPublic(sb.toString());
    328             if( alarm > 0 )
     354            if (alarm > 0)
    329355                chatPanes.notify(null, alarm);
    330356        }
    331         if( replace )
     357        if (replace)
    332358            showNearbyUsers();
    333359    }
    334360
    335361    private void showNearbyUsers() {
    336         if( !users.isEmpty() ) {
     362        if (!users.isEmpty()) {
    337363            StringBuilder sb = new StringBuilder(tr("Users mapping nearby:"));
    338364            boolean first = true;
    339             for( String user : users.keySet() ) {
     365            for (String user : users.keySet()) {
    340366                sb.append(first ? " " : ", ");
    341367                sb.append(user);
     
    345371    }
    346372
    347     private boolean containsName( String message ) {
     373    private boolean containsName(String message) {
    348374        String userName = connection.getUserName();
    349375        int length = userName.length();
    350376        int i = message.indexOf(userName);
    351         while( i >= 0 ) {
    352             if( (i == 0 || !Character.isJavaIdentifierPart(message.charAt(i - 1)))
    353                     && (i + length >= message.length() || !Character.isJavaIdentifierPart(message.charAt(i + length))) )
     377        while (i >= 0) {
     378            if ((i == 0 || !Character.isJavaIdentifierPart(message.charAt(i - 1)))
     379                    && (i + length >= message.length() || !Character.isJavaIdentifierPart(message.charAt(i + length))))
    354380                return true;
    355381            i = message.indexOf(userName, i + 1);
     
    359385
    360386    @Override
    361     public void receivedPrivateMessages( boolean replace, List<ChatMessage> messages ) {
    362         if( replace )
     387    public void receivedPrivateMessages(boolean replace, List<ChatMessage> messages) {
     388        if (replace)
    363389            chatPanes.closePrivateChatPanes();
    364         for( ChatMessage msg : messages ) {
     390        for (ChatMessage msg : messages) {
    365391            StringBuilder sb = new StringBuilder();
    366392            formatMessage(sb, msg);
    367393            chatPanes.addLineToChatPane(msg.isIncoming() ? msg.getAuthor() : msg.getRecipient(), sb.toString());
    368             if( msg.isIncoming() )
     394            if (msg.isIncoming())
    369395                chatPanes.notify(msg.getAuthor(), 2);
    370396        }
Note: See TracChangeset for help on using the changeset viewer.