Changeset 125 in josm


Ignore:
Timestamp:
2006-07-24T20:45:40+02:00 (18 years ago)
Author:
imi
Message:

added type="type1,type2" for specifying more than one type in annotation preset items

File:
1 edited

Legend:

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

    r123 r125  
    136136                List<Item> current;
    137137                String currentName;
    138                 Class<?> currentType;
     138                Collection<Class<?>> currentTypes;
    139139                private static int unknownCounter = 1;
    140140
     
    149149                                if (a.getValue("type") != null) {
    150150                                        String s = a.getValue("type");
    151                                         s = Character.toUpperCase(s.charAt(0))+s.substring(1);
    152151                                        try {
    153                                                 currentType = Class.forName("org.openstreetmap.josm.data.osm."+s);
     152                                                for (String type : s.split(",")) {
     153                                                        type = Character.toUpperCase(type.charAt(0))+type.substring(1);
     154                                                        if (currentTypes == null)
     155                                                                currentTypes = new LinkedList<Class<?>>();
     156                                                        currentTypes.add(Class.forName("org.openstreetmap.josm.data.osm."+type));
     157                                                }
    154158                                        } catch (ClassNotFoundException e) {
    155159                                                e.printStackTrace();
     
    188192
    189193                @Override public void endElement(String ns, String lname, String qname) {
    190                         if (qname.equals("item"))
    191                                 data.add(new AnnotationPreset(current, currentName, currentType));
     194                        if (qname.equals("item")) {
     195                                data.add(new AnnotationPreset(current, currentName, currentTypes));
     196                                current = null;
     197                                currentName = null;
     198                                currentTypes = null;
     199                        }
    192200                }
    193201        }
    194202
    195203        private List<Item> data;
    196         String name;
    197         private Class<?> type;
    198 
    199         public AnnotationPreset(List<Item> data, String name, Class<?> currentType) {
     204        public final String name;
     205        private Collection<Class<?>> types;
     206
     207        public AnnotationPreset(List<Item> data, String name, Collection<Class<?>> currentTypes) {
    200208                this.data = data;
    201209                this.name = name;
    202                 this.type = currentType;
     210                this.types = currentTypes;
    203211        }
    204212
     
    234242        }
    235243
    236         @Override public String toString() {
    237                 return name;
    238         }
    239 
    240244        public Command createCommand(Collection<OsmPrimitive> participants) {
    241245                Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
    242246                for (OsmPrimitive osm : participants)
    243                         if (osm.getClass() == type)
     247                        if (types == null || types.contains(osm.getClass()))
    244248                                sel.add(osm);
    245249                if (sel.isEmpty())
Note: See TracChangeset for help on using the changeset viewer.