Changeset 5211 in josm


Ignore:
Timestamp:
May 4, 2012 7:15:59 PM (13 months 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.