Ignore:
Timestamp:
2010-05-18T23:43:52+02:00 (14 years ago)
Author:
bastiK
Message:

extended command list dialog; added inspection panel

File:
1 edited

Legend:

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

    r3152 r3262  
    148148    public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted,
    149149            Collection<OsmPrimitive> added) {
    150         deleted.addAll(toDelete);
    151     }
    152 
    153     @Override
    154     public MutableTreeNode description() {
     150    }
     151
     152    @Override public JLabel getDescription() {
    155153        if (toDelete.size() == 1) {
    156154            OsmPrimitive primitive = toDelete.iterator().next();
     
    162160            }
    163161
    164             return new DefaultMutableTreeNode(new JLabel(tr(msg, primitive.getDisplayName(DefaultNameFormatter.getInstance())),
    165                     ImageProvider.get(OsmPrimitiveType.from(primitive)), JLabel.HORIZONTAL));
    166         }
    167 
    168         Set<OsmPrimitiveType> typesToDelete = new HashSet<OsmPrimitiveType>();
    169         for (OsmPrimitive osm : toDelete) {
    170             typesToDelete.add(OsmPrimitiveType.from(osm));
    171         }
    172         String msg = "";
    173         String apiname = "object";
    174         if (typesToDelete.size() > 1) {
    175             msg = trn("Delete {0} object", "Delete {0} objects", toDelete.size(), toDelete.size());
     162            return new JLabel(tr(msg, primitive.getDisplayName(DefaultNameFormatter.getInstance())),
     163                    ImageProvider.get(OsmPrimitiveType.from(primitive)), JLabel.HORIZONTAL);
    176164        } else {
    177             OsmPrimitiveType t = typesToDelete.iterator().next();
    178             apiname = t.getAPIName();
    179             switch(t) {
    180             case NODE: msg = trn("Delete {0} node", "Delete {0} nodes", toDelete.size(), toDelete.size()); break;
    181             case WAY: msg = trn("Delete {0} way", "Delete {0} ways", toDelete.size(), toDelete.size()); break;
    182             case RELATION: msg = trn("Delete {0} relation", "Delete {0} relations", toDelete.size(), toDelete.size()); break;
    183             }
    184         }
    185         DefaultMutableTreeNode root = new DefaultMutableTreeNode(
    186                 new JLabel(msg, ImageProvider.get("data", apiname), JLabel.HORIZONTAL)
    187         );
    188         for (OsmPrimitive osm : toDelete) {
    189             root.add(new DefaultMutableTreeNode(new JLabel(
    190                     osm.getDisplayName(DefaultNameFormatter.getInstance()),
    191                     ImageProvider.get(OsmPrimitiveType.from(osm)), JLabel.HORIZONTAL)));
    192         }
    193         return root;
     165            Set<OsmPrimitiveType> typesToDelete = new HashSet<OsmPrimitiveType>();
     166            for (OsmPrimitive osm : toDelete) {
     167                typesToDelete.add(OsmPrimitiveType.from(osm));
     168            }
     169            String msg = "";
     170            String apiname = "object";
     171            if (typesToDelete.size() > 1) {
     172                msg = trn("Delete {0} object", "Delete {0} objects", toDelete.size(), toDelete.size());
     173            } else {
     174                OsmPrimitiveType t = typesToDelete.iterator().next();
     175                apiname = t.getAPIName();
     176                switch(t) {
     177                case NODE: msg = trn("Delete {0} node", "Delete {0} nodes", toDelete.size(), toDelete.size()); break;
     178                case WAY: msg = trn("Delete {0} way", "Delete {0} ways", toDelete.size(), toDelete.size()); break;
     179                case RELATION: msg = trn("Delete {0} relation", "Delete {0} relations", toDelete.size(), toDelete.size()); break;
     180                }
     181            }
     182            return  new JLabel(msg, ImageProvider.get("data", apiname), JLabel.HORIZONTAL);
     183        }
     184    }
     185
     186    @Override public Collection<PseudoCommand> getChildren() {
     187        if (toDelete.size() == 1) {
     188            return null;
     189        } else {
     190            List<PseudoCommand> children = new ArrayList<PseudoCommand>();
     191            for (final OsmPrimitive osm : toDelete) {
     192                children.add(new PseudoCommand() {
     193                    @Override public JLabel getDescription() {
     194                        return new JLabel(
     195                            tr("Deleted ''{0}''",
     196                                osm.getDisplayName(DefaultNameFormatter.getInstance())),
     197                            ImageProvider.get(OsmPrimitiveType.from(osm)), JLabel.HORIZONTAL);
     198                        }
     199                    @Override public Collection<? extends OsmPrimitive> getParticipatingPrimitives() {
     200                        return Collections.singleton(osm);
     201                    }
     202
     203                });
     204            }
     205            return children;
     206
     207        }
     208    }
     209
     210    @Override public Collection<? extends OsmPrimitive> getParticipatingPrimitives() {
     211        return toDelete;
    194212    }
    195213
Note: See TracChangeset for help on using the changeset viewer.