Ignore:
Timestamp:
2008-08-16T12:47:21+02:00 (16 years ago)
Author:
stoecker
Message:

reverted Java6 code - RelationEditor sort

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java

    r783 r792  
    11package org.openstreetmap.josm.gui.dialogs;
    22
     3import static org.openstreetmap.josm.tools.I18n.tr;
    34import static org.openstreetmap.josm.tools.I18n.marktr;
    4 import static org.openstreetmap.josm.tools.I18n.tr;
    55
    66import java.awt.BorderLayout;
     
    1414import java.beans.PropertyChangeListener;
    1515import java.io.IOException;
    16 import java.text.Collator;
    1716import java.util.ArrayList;
    18 import java.util.Comparator;
    1917import java.util.Map.Entry;
    2018
    2119import javax.swing.JButton;
     20import javax.swing.JDialog;
    2221import javax.swing.JFrame;
    2322import javax.swing.JLabel;
     
    3130import javax.swing.event.TableModelListener;
    3231import javax.swing.table.DefaultTableModel;
    33 import javax.swing.table.TableRowSorter;
    3432
    3533import org.openstreetmap.josm.Main;
     
    4846import org.xml.sax.SAXException;
    4947
    50 
    5148/**
    5249 * This dialog is for editing relations.
     
    6259public class RelationEditor extends JFrame {
    6360
    64        
    65        
    6661        /**
    6762         * The relation that this editor is working on, and the clone made for
     
    10196        private final JTable propertyTable = new JTable(propertyData);
    10297        private final JTable memberTable = new JTable(memberData);
    103        
    104         /**
    105          * Collator for sorting the roles and entries of the member table.
    106          */
    107         private static final Collator collator;
    108         static {
    109                 collator = Collator.getInstance();
    110                 collator.setStrength(Collator.PRIMARY);
    111         }
    112        
    113         /**
    114          * Comparator for member roles. Tries to sort even roles like "stop_nn" correct.
    115          */
    116         private final Comparator<String> memberRoleComp = new Comparator<String>() {
    117                 public int compare(String s1, String s2) {
    118 
    119                         int last1 = s1.lastIndexOf('_');
    120                         if (last1 > 0) {
    121                                 int last2 = s2.lastIndexOf('_');
    122                                 if (last2 == last1) {
    123                                         String prefix1 = s1.substring(0, last1);
    124                                         String prefix2 = s2.substring(0, last2);
    125 
    126                                         if (prefix1.equalsIgnoreCase(prefix2)) {
    127                                                 // Both roles have the same prefix, now determine the suffix.
    128                                                 String suffix1 = s1.substring(last1+1, s1.length());
    129                                                 String suffix2 = s2.substring(last2+1, s2.length());
    130 
    131                                                 if (suffix1.matches("\\d+") && suffix2.matches("\\d+")) {
    132                                                         // Suffix is an number -> compare it.
    133                                                         int i1 = Integer.parseInt(suffix1);
    134                                                         int i2 = Integer.parseInt(suffix2);
    135 
    136                                                         return i1 - i2;
    137                                                 }
    138                                         }
    139                                 }
    140                         }
    141                        
    142                         // Default handling if the role name is nothing like "stop_xx"
    143                         return collator.compare(s1, s2);
    144 
    145                 }
    146         };
    147        
    148         /**
    149          * Comparator for the member names.
    150          */
    151         private final Comparator<OsmPrimitive> memberValueComp = new Comparator<OsmPrimitive>() {
    152                 public int compare(OsmPrimitive o1, OsmPrimitive o2) {
    153                     return collator.compare(o1.getName(), o2.getName());
    154                 }
    155         };
    156        
    157         private final TableRowSorter<DefaultTableModel> memberSorter = new TableRowSorter<DefaultTableModel>(memberData);
    15898       
    15999        /**
     
    223163                propertyData.setColumnIdentifiers(new String[]{tr("Key"),tr("Value")});
    224164                propertyTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    225 
    226165                propertyData.addTableModelListener(new TableModelListener() {
    227166                        public void tableChanged(TableModelEvent tme) {
     
    247186                memberData.setColumnIdentifiers(new String[]{tr("Role"),tr("Occupied By")});
    248187                memberTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    249                
    250188                memberTable.getColumnModel().getColumn(1).setCellRenderer(new OsmPrimitivRenderer());
    251                
    252                 memberSorter.setComparator(0, memberRoleComp);
    253                 memberSorter.setComparator(1, memberValueComp);         
    254                 memberTable.setRowSorter(memberSorter);
    255 
    256189                /*
    257190                memberTable.getColumnModel().getColumn(1).setCellRenderer(new DefaultTableCellRenderer() {
Note: See TracChangeset for help on using the changeset viewer.