Ignore:
Timestamp:
2009-07-19T19:04:49+02:00 (16 years ago)
Author:
Gubaer
Message:

removed dependencies to Main.ds, removed Main.ds
removed AddVisitor, NameVisitor, DeleteVisitor - unnecessary double dispatching for these simple cases

Location:
trunk/src/org/openstreetmap/josm/command
Files:
8 edited

Legend:

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

    r1750 r1814  
    1111
    1212import org.openstreetmap.josm.data.osm.OsmPrimitive;
    13 import org.openstreetmap.josm.data.osm.visitor.AddVisitor;
    14 import org.openstreetmap.josm.data.osm.visitor.DeleteVisitor;
    15 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
     13import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
     14import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
     15import org.openstreetmap.josm.tools.ImageProvider;
    1616
    1717/**
     
    3939
    4040    @Override public boolean executeCommand() {
    41         osm.visit(new AddVisitor(getLayer().data));
     41        getLayer().data.addPrimitive(osm);
    4242        return true;
    4343    }
    4444
    4545    @Override public void undoCommand() {
    46         osm.visit(new DeleteVisitor(getLayer().data));
     46        getLayer().data.removePrimitive(osm);
    4747    }
    4848
     
    5252
    5353    @Override public MutableTreeNode description() {
    54         NameVisitor v = new NameVisitor();
    55         osm.visit(v);
    5654        return new DefaultMutableTreeNode(
    57                 new JLabel(tr("Add {0} {1}", tr(v.className), v.name), v.icon, JLabel.HORIZONTAL));
     55                new JLabel(
     56                        tr("Add {0} {1}",
     57                                OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular(),
     58                                new PrimitiveNameFormatter().getName(osm)
     59                        ),
     60                        ImageProvider.get(OsmPrimitiveType.from(osm)),
     61                        JLabel.HORIZONTAL
     62                )
     63        );
    5864    }
    5965}
  • trunk/src/org/openstreetmap/josm/command/ChangeCommand.java

    r1750 r1814  
    1111
    1212import org.openstreetmap.josm.data.osm.OsmPrimitive;
    13 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
     13import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
     14import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
     15import org.openstreetmap.josm.tools.ImageProvider;
    1416
    1517/**
     
    4244
    4345    @Override public MutableTreeNode description() {
    44         NameVisitor v = new NameVisitor();
    45         osm.visit(v);
    46         return new DefaultMutableTreeNode(new JLabel(tr("Change {0} {1}", tr(v.className), v.name), v.icon, JLabel.HORIZONTAL));
     46        return new DefaultMutableTreeNode(
     47                new JLabel(tr("Change {0} {1}",
     48                        OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular(),
     49                        new PrimitiveNameFormatter().getName(osm)),
     50                        ImageProvider.get(OsmPrimitiveType.from(osm)),
     51                        JLabel.HORIZONTAL));
    4752    }
    4853}
  • trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java

    r1750 r1814  
    1414
    1515import org.openstreetmap.josm.data.osm.OsmPrimitive;
    16 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
     16import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
     17import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
    1718import org.openstreetmap.josm.tools.ImageProvider;
    1819
     
    9394    @Override public MutableTreeNode description() {
    9495        String text;
     96        PrimitiveNameFormatter formatter = new PrimitiveNameFormatter();
    9597        if (objects.size() == 1) {
    96             NameVisitor v = new NameVisitor();
    97             objects.iterator().next().visit(v);
     98            OsmPrimitive primitive = objects.iterator().next();
     99            String name = formatter.getName(primitive);
    98100            text = value == null
    99             ? tr("Remove \"{0}\" for {1} ''{2}''", key, tr(v.className), v.name)
    100                     : tr("Set {0}={1} for {2} ''{3}''",key,value, tr(v.className), v.name);
     101            ? tr("Remove \"{0}\" for {1} ''{2}''", key,
     102                    OsmPrimitiveType.from(primitive).getLocalizedDisplayNameSingular(),
     103                    name)
     104                    : tr("Set {0}={1} for {2} ''{3}''",
     105                            key,
     106                            value,
     107                            OsmPrimitiveType.from(primitive).getLocalizedDisplayNameSingular(),
     108                            name
     109                    );
    101110        }
    102111        else
     
    109118        if (objects.size() == 1)
    110119            return root;
    111         NameVisitor v = new NameVisitor();
    112120        for (OsmPrimitive osm : objects) {
    113             osm.visit(v);
    114             root.add(new DefaultMutableTreeNode(v.toLabel()));
     121            root.add(new DefaultMutableTreeNode(
     122                    new JLabel(
     123                            formatter.getName(osm),
     124                            ImageProvider.get(OsmPrimitiveType.from(osm)),
     125                            JLabel.HORIZONTAL)
     126            )
     127            );
    115128        }
    116129        return root;
  • trunk/src/org/openstreetmap/josm/command/ChangeRelationMemberRoleCommand.java

    r1766 r1814  
    1212import org.openstreetmap.josm.Main;
    1313import org.openstreetmap.josm.data.osm.OsmPrimitive;
     14import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    1415import org.openstreetmap.josm.data.osm.Relation;
    15 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
     16import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
     17import org.openstreetmap.josm.tools.ImageProvider;
    1618
    1719/**
     
    6466
    6567    @Override public MutableTreeNode description() {
    66         NameVisitor v = new NameVisitor();
    67         relation.visit(v);
    68         return new DefaultMutableTreeNode(new JLabel(tr("Change relation member role for {0} {1}", tr(v.className), v.name), v.icon, JLabel.HORIZONTAL));
     68        return new DefaultMutableTreeNode(
     69                new JLabel(
     70                        tr("Change relation member role for {0} {1}",
     71                                OsmPrimitiveType.from(relation),
     72                                new PrimitiveNameFormatter().getName(relation)
     73                        ),
     74                        ImageProvider.get(OsmPrimitiveType.from(relation)),
     75                        JLabel.HORIZONTAL)
     76        );
    6977    }
    7078}
  • trunk/src/org/openstreetmap/josm/command/Command.java

    r1750 r1814  
    5151
    5252    public Command() {
    53         this.layer = Main.main.map.mapView.getEditLayer();
     53        this.layer = Main.map.mapView.getEditLayer();
    5454    }
    5555    /**
  • trunk/src/org/openstreetmap/josm/command/DeleteCommand.java

    r1750 r1814  
    2525import org.openstreetmap.josm.data.osm.Node;
    2626import org.openstreetmap.josm.data.osm.OsmPrimitive;
     27import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    2728import org.openstreetmap.josm.data.osm.Relation;
    2829import org.openstreetmap.josm.data.osm.RelationMember;
     
    3031import org.openstreetmap.josm.data.osm.WaySegment;
    3132import org.openstreetmap.josm.data.osm.visitor.CollectBackReferencesVisitor;
    32 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
    3333import org.openstreetmap.josm.gui.ExtendedDialog;
     34import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
    3435import org.openstreetmap.josm.tools.DontShowAgainInfo;
    3536import org.openstreetmap.josm.tools.ImageProvider;
     
    7677
    7778    @Override public MutableTreeNode description() {
    78         NameVisitor v = new NameVisitor();
    79 
    8079        if (toDelete.size() == 1) {
    81             toDelete.iterator().next().visit(v);
    82             return new DefaultMutableTreeNode(new JLabel(tr("Delete {1} {0}", v.name, tr(v.className)), v.icon,
    83                     JLabel.HORIZONTAL));
     80            OsmPrimitive primitive = toDelete.iterator().next();
     81            return new DefaultMutableTreeNode(
     82                    new JLabel(
     83                            tr("Delete {1} {0}",
     84                                    new PrimitiveNameFormatter().getName(primitive),
     85                                    OsmPrimitiveType.from(primitive).getLocalizedDisplayNameSingular()
     86                            ),
     87                            ImageProvider.get(OsmPrimitiveType.from(primitive)),
     88                            JLabel.HORIZONTAL));
    8489        }
    8590
     
    8792        String cnamem = null;
    8893        for (OsmPrimitive osm : toDelete) {
    89             osm.visit(v);
    9094            if (cname == null) {
    91                 cname = v.className;
    92                 cnamem = v.classNamePlural;
    93             } else if (!cname.equals(v.className)) {
     95                cname = OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular();
     96                cnamem = OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular();
     97            } else if (!cname.equals(OsmPrimitiveType.from(osm).getLocalizedDisplayNameSingular())) {
    9498                cname = "object";
    9599                cnamem = trn("object", "objects", 2);
     
    99103                cname, cnamem, toDelete.size())), ImageProvider.get("data", cname), JLabel.HORIZONTAL));
    100104        for (OsmPrimitive osm : toDelete) {
    101             osm.visit(v);
    102             root.add(new DefaultMutableTreeNode(v.toLabel()));
     105            root.add(new DefaultMutableTreeNode(
     106                    new JLabel(
     107                            new PrimitiveNameFormatter().getName(osm),
     108                            ImageProvider.get(OsmPrimitiveType.from(osm)),
     109                            JLabel.HORIZONTAL)
     110            )
     111            );
    103112        }
    104113        return root;
     
    119128     */
    120129    public static Command deleteWithReferences(Collection<? extends OsmPrimitive> selection) {
    121         CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds);
     130        CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.main.getCurrentDataSet());
    122131        for (OsmPrimitive osm : selection) {
    123132            osm.visit(v);
     
    132141
    133142    private static int testRelation(Relation ref, OsmPrimitive osm) {
    134         NameVisitor n = new NameVisitor();
    135         ref.visit(n);
    136         NameVisitor s = new NameVisitor();
    137         osm.visit(s);
     143        PrimitiveNameFormatter formatter = new PrimitiveNameFormatter();
    138144        String role = new String();
    139145        for (RelationMember m : ref.members) {
     
    144150        }
    145151        if (role.length() > 0)
    146             return new ExtendedDialog(Main.parent,
     152            return new ExtendedDialog(
     153                    Main.parent,
    147154                    tr("Conflicting relation"),
    148155                    tr("Selection \"{0}\" is used by relation \"{1}\" with role {2}.\nDelete from relation?",
    149                             s.name, n.name, role),
     156                            formatter.getName(osm), formatter.getName(ref), role),
    150157                            new String[] {tr("Delete from relation"), tr("Cancel")},
    151158                            new String[] {"dialogs/delete.png", "cancel.png"}).getValue();
     
    154161                    tr("Conflicting relation"),
    155162                    tr("Selection \"{0}\" is used by relation \"{1}\".\nDelete from relation?",
    156                             s.name, n.name),
     163                            formatter.getName(osm), formatter.getName(ref)),
    157164                            new String[] {tr("Delete from relation"), tr("Cancel")},
    158165                            new String[] {"dialogs/delete.png", "cancel.png"}).getValue();
     
    191198                    for (Node n : ((Way) osm).nodes) {
    192199                        if (!n.isTagged()) {
    193                             CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds, false);
     200                            CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.main.getCurrentDataSet(), false);
    194201                            n.visit(v);
    195202                            v.data.removeAll(del);
     
    208215
    209216        for (OsmPrimitive osm : del) {
    210             CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds, false);
     217            CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.main.getCurrentDataSet(), false);
    211218            osm.visit(v);
    212219            for (OsmPrimitive ref : v.data) {
     
    238245                del.add(w);
    239246
    240                 CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.ds, false);
     247                CollectBackReferencesVisitor v = new CollectBackReferencesVisitor(Main.main.getCurrentDataSet(), false);
    241248                w.visit(v);
    242249                for (OsmPrimitive ref : v.data) {
     
    366373     */
    367374    private static boolean checkAndConfirmOutlyingDeletes(Collection<OsmPrimitive> del) {
    368         Area a = Main.ds.getDataSourceArea();
     375        Area a = Main.main.getCurrentDataSet().getDataSourceArea();
    369376        if (a != null) {
    370377            for (OsmPrimitive osm : del) {
  • trunk/src/org/openstreetmap/josm/command/PurgePrimitivesCommand.java

    r1750 r1814  
    179179    protected void purge(OsmPrimitive toPurge, DataSet ds, ArrayList<OsmPrimitive> hive) {
    180180        ArrayList<OsmPrimitive> parents = new ArrayList<OsmPrimitive>();
    181         parents.addAll(Main.ds.ways);
    182         parents.addAll(Main.ds.relations);
     181        parents.addAll(getLayer().data.ways);
     182        parents.addAll(getLayer().data.relations);
    183183        List<OsmParentChildPair> pairs = getParentChildPairs(parents, primitive);
    184184        hive.remove(toPurge);
     
    217217        while(! hive.isEmpty()) {
    218218            OsmPrimitive toPurge = hive.get(0);
    219             purge(toPurge, Main.ds, hive);
     219            purge(toPurge, getLayer().data, hive);
    220220            if (toPurge instanceof Node) {
    221221                getLayer().data.nodes.remove(toPurge);
  • trunk/src/org/openstreetmap/josm/command/RemoveRelationMemberCommand.java

    r1774 r1814  
    1212import org.openstreetmap.josm.Main;
    1313import org.openstreetmap.josm.data.osm.OsmPrimitive;
    14 import org.openstreetmap.josm.data.osm.*;
    15 
    16 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
     14import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
     15import org.openstreetmap.josm.data.osm.Relation;
     16import org.openstreetmap.josm.data.osm.RelationMember;
     17import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
     18import org.openstreetmap.josm.tools.ImageProvider;
    1719
    1820/**
     
    6264
    6365    @Override public MutableTreeNode description() {
    64         NameVisitor v = new NameVisitor();
    65         relation.visit(v);
    66         return new DefaultMutableTreeNode(new JLabel(tr("Remove relation member {0} {1}", tr(v.className), v.name), v.icon, JLabel.HORIZONTAL));
     66        return new DefaultMutableTreeNode(
     67                new JLabel(
     68                        tr("Remove relation member {0} {1}",
     69                                OsmPrimitiveType.from(relation).getLocalizedDisplayNameSingular(),
     70                                new PrimitiveNameFormatter().getName(relation)
     71                        ),
     72                        ImageProvider.get(OsmPrimitiveType.from(relation)),
     73                        JLabel.HORIZONTAL
     74                )
     75        );
    6776    }
    6877}
Note: See TracChangeset for help on using the changeset viewer.