Ignore:
Timestamp:
2006-04-21T14:31:51+02:00 (18 years ago)
Author:
imi
Message:
  • added conflicts and resolve conflict dialog

This is one of those "changed everything" checkpoint.

File:
1 edited

Legend:

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

    r81 r86  
    1111import java.awt.event.MouseEvent;
    1212import java.util.Collection;
     13import java.util.LinkedList;
    1314
    1415import javax.swing.ButtonGroup;
     
    6162                displaylist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    6263                displaylist.addMouseListener(new MouseAdapter(){
    63                         @Override
    64                         public void mouseClicked(MouseEvent e) {
     64                        @Override public void mouseClicked(MouseEvent e) {
    6565                                if (e.getClickCount() < 2)
    6666                                        return;
     
    122122                                lastSearch = input.getText();
    123123                                SearchCompiler.Match matcher = SearchCompiler.compile(lastSearch);
    124                                 for (OsmPrimitive osm : Main.main.ds.allNonDeletedPrimitives()) {
    125                                         if (replace.isSelected())
    126                                                 osm.setSelected(matcher.match(osm));
    127                                         else if (add.isSelected() && !osm.isSelected() && matcher.match(osm))
    128                                                 osm.setSelected(true);
    129                                         else if (remove.isSelected() && osm.isSelected() && matcher.match(osm))
    130                                                 osm.setSelected(false);
     124                                Collection<OsmPrimitive> sel = Main.ds.getSelected();
     125                                for (OsmPrimitive osm : Main.ds.allNonDeletedPrimitives()) {
     126                                        if (replace.isSelected()) {
     127                                                if (matcher.match(osm))
     128                                                        sel.add(osm);
     129                                                else
     130                                                        sel.remove(osm);
     131                                        } else if (add.isSelected() && !osm.selected && matcher.match(osm))
     132                                                sel.add(osm);
     133                                        else if (remove.isSelected() && osm.selected && matcher.match(osm))
     134                                                sel.remove(osm);
    131135                                }
    132                                 selectionChanged(Main.main.ds.getSelected());
    133                                 Main.main.getMapFrame().repaint();
     136                                Main.ds.setSelected(sel);
    134137                        }
    135138                });
     
    137140               
    138141                add(buttonPanel, BorderLayout.SOUTH);
    139                 selectionChanged(Main.main.ds.getSelected());
     142                selectionChanged(Main.ds.getSelected());
    140143        }
    141144
    142         @Override
    143         public void setVisible(boolean b) {
     145        @Override public void setVisible(boolean b) {
    144146                if (b) {
    145                         Main.main.ds.addSelectionChangedListener(this);
    146                         selectionChanged(Main.main.ds.getSelected());
     147                        Main.ds.addSelectionChangedListener(this);
     148                        selectionChanged(Main.ds.getSelected());
    147149                } else {
    148                         Main.main.ds.removeSelectionChangedListener(this);
     150                        Main.ds.removeSelectionChangedListener(this);
    149151                }
    150152                super.setVisible(b);
     
    158160         */
    159161        public void selectionChanged(Collection<OsmPrimitive> newSelection) {
     162                if (list == null)
     163                        return; // selection changed may be received in base class constructor before init
    160164                list.removeAllElements();
    161165                list.setSize(newSelection.size());
     
    169173         */
    170174        public void updateMap() {
    171                 Main.main.ds.clearSelection();
     175                Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
    172176                for (int i = 0; i < list.getSize(); ++i)
    173177                        if (displaylist.isSelectedIndex(i))
    174                                 ((OsmPrimitive)list.get(i)).setSelected(true);
    175                 Main.main.getMapFrame().repaint();
     178                                sel.add((OsmPrimitive)list.get(i));
     179                Main.ds.setSelected(sel);
    176180        }
    177181}
Note: See TracChangeset for help on using the changeset viewer.