Ignore:
Timestamp:
2012-02-11T18:56:53+01:00 (14 years ago)
Author:
simon04
Message:

fix #7370 - Refactor Command.getDescription

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/command/DeleteCommand.java

    r4677 r4918  
    1919import java.util.Set;
    2020import java.util.Map.Entry;
     21import javax.swing.Icon;
    2122
    2223import javax.swing.JLabel;
     
    149150    }
    150151
    151     @Override public JLabel getDescription() {
    152         if (toDelete.size() == 1) {
     152    private Set<OsmPrimitiveType> getTypesToDelete() {
     153        Set<OsmPrimitiveType> typesToDelete = new HashSet<OsmPrimitiveType>();
     154        for (OsmPrimitive osm : toDelete) {
     155            typesToDelete.add(OsmPrimitiveType.from(osm));
     156        }
     157        return typesToDelete;
     158    }
     159
     160    @Override
     161    public String getDescriptionText() {
     162           if (toDelete.size() == 1) {
    153163            OsmPrimitive primitive = toDelete.iterator().next();
    154164            String msg = "";
     
    159169            }
    160170
    161             return new JLabel(tr(msg, primitive.getDisplayName(DefaultNameFormatter.getInstance())),
    162                     ImageProvider.get(OsmPrimitiveType.from(primitive)), JLabel.HORIZONTAL);
     171            return tr(msg, primitive.getDisplayName(DefaultNameFormatter.getInstance()));
    163172        } else {
    164             Set<OsmPrimitiveType> typesToDelete = new HashSet<OsmPrimitiveType>();
    165             for (OsmPrimitive osm : toDelete) {
    166                 typesToDelete.add(OsmPrimitiveType.from(osm));
    167             }
     173            Set<OsmPrimitiveType> typesToDelete = getTypesToDelete();
    168174            String msg = "";
    169             String apiname = "object";
    170175            if (typesToDelete.size() > 1) {
    171176                msg = trn("Delete {0} object", "Delete {0} objects", toDelete.size(), toDelete.size());
    172177            } else {
    173178                OsmPrimitiveType t = typesToDelete.iterator().next();
    174                 apiname = t.getAPIName();
    175179                switch(t) {
    176180                case NODE: msg = trn("Delete {0} node", "Delete {0} nodes", toDelete.size(), toDelete.size()); break;
     
    179183                }
    180184            }
    181             return  new JLabel(msg, ImageProvider.get("data", apiname), JLabel.HORIZONTAL);
     185            return msg;
     186        }
     187    }
     188
     189    @Override
     190    public Icon getDescriptionIcon() {
     191        if (toDelete.size() == 1) {
     192            return ImageProvider.get(OsmPrimitiveType.from(toDelete.iterator().next()));
     193        }
     194        Set<OsmPrimitiveType> typesToDelete = getTypesToDelete();
     195        if (typesToDelete.size() > 1) {
     196            return ImageProvider.get("data", "object");
     197        } else {
     198            return ImageProvider.get(typesToDelete.iterator().next());
    182199        }
    183200    }
     
    190207            for (final OsmPrimitive osm : toDelete) {
    191208                children.add(new PseudoCommand() {
    192                     @Override public JLabel getDescription() {
    193                         return new JLabel(
    194                                 tr("Deleted ''{0}''",
    195                                         osm.getDisplayName(DefaultNameFormatter.getInstance())),
    196                                         ImageProvider.get(OsmPrimitiveType.from(osm)), JLabel.HORIZONTAL);
     209
     210                    @Override public String getDescriptionText() {
     211                        return tr("Deleted ''{0}''", osm.getDisplayName(DefaultNameFormatter.getInstance()));
    197212                    }
     213
     214                    @Override public Icon getDescriptionIcon() {
     215                        return ImageProvider.get(OsmPrimitiveType.from(osm));
     216                    }
     217
    198218                    @Override public Collection<? extends OsmPrimitive> getParticipatingPrimitives() {
    199219                        return Collections.singleton(osm);
Note: See TracChangeset for help on using the changeset viewer.