Changeset 5211 in josm


Ignore:
Timestamp:
2012-05-04T19:15:59+02:00 (8 years ago)
Author:
simon04
Message:

fix #7666 - Download object exception with invalid value

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java

    r4982 r5211  
    1010import java.awt.GridBagLayout;
    1111import java.awt.event.ActionEvent;
    12 import java.awt.event.ActionListener;
     12import java.awt.event.ItemEvent;
     13import java.awt.event.ItemListener;
    1314import java.awt.event.KeyEvent;
    1415import java.lang.reflect.InvocationTargetException;
     
    139140        );
    140141
    141         cbType.addActionListener(new ActionListener() {
     142        cbType.addItemListener(new ItemListener() {
    142143
    143144            @Override
    144             public void actionPerformed(ActionEvent ae) {
     145            public void itemStateChanged(ItemEvent e) {
     146                tfId.setType(cbType.getType());
     147                tfId.performValidation();
    145148                referrers.setText(cbType.getType() == OsmPrimitiveType.NODE
    146149                        ? tr("Download referrers (parent relations and ways)")
     
    186189
    187190        tfId.setType(cbType.getType());
    188         if(tfId.readOsmIds()==false) {
     191        if(!tfId.readOsmIds()) {
    189192            JOptionPane.showMessageDialog(
    190193                    Main.parent,
    191194                    tr("Invalid ID list specified\n"
    192                     + " Cannot download object."),
     195                    + "Cannot download object."),
    193196                    tr("Information"),
    194197                    JOptionPane.INFORMATION_MESSAGE
  • trunk/src/org/openstreetmap/josm/gui/widgets/OsmIdTextField.java

    r4796 r5211  
    3030    }
    3131
    32     public long getOsmId() {
    33         return validator.getOsmId();
    34     }
    35 
    3632    /**
    3733     * Get entered ID list - supports "1,2,3" "1 2   ,3" or even "1 2 3 v2 6 v8"
     
    4642    }
    4743
     44    public void performValidation() {
     45        validator.validate();
     46    }
    4847
    4948    /**
     
    6665        @Override
    6766        public boolean isValid() {
    68             return getOsmId() > 0 || readOsmIds() != false;
     67            return readOsmIds();
    6968        }
    7069
     
    7877        }
    7978
    80         public long getOsmId() {
    81             String value  = getComponent().getText();
    82             if (value == null || value.trim().length() == 0) return 0;
    83             try {
    84                 long osmId = Long.parseLong(value.trim());
    85                 if (osmId > 0)
    86                     return osmId;
    87                 return 0;
    88             } catch(NumberFormatException e) {
    89                 return 0;
    90             }
    91         }
    92        
    9379        public boolean readOsmIds() {
    9480            String value = getComponent().getText();
     
    11096                        ids.add(SimplePrimitiveId.fromString(s));
    11197                    } catch (IllegalArgumentException ex) {
    112                         if (type == OsmPrimitiveType.NODE) {
    113                             ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.NODE));
    114                         } else if (type == OsmPrimitiveType.WAY) {
    115                             ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.WAY));
    116                         } else if (type == OsmPrimitiveType.RELATION) {
    117                             ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.RELATION));
    118                         } else {
     98                        try {
     99                            if (type == OsmPrimitiveType.NODE) {
     100                                ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.NODE));
     101                            } else if (type == OsmPrimitiveType.WAY) {
     102                                ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.WAY));
     103                            } else if (type == OsmPrimitiveType.RELATION) {
     104                                ids.add(new SimplePrimitiveId(Long.parseLong(s), OsmPrimitiveType.RELATION));
     105                            } else {
     106                                return false;
     107                            }
     108                        } catch (IllegalArgumentException ex2) {
    119109                            return false;
    120110                        }
Note: See TracChangeset for help on using the changeset viewer.