Ticket #8902: environment.diff

File environment.diff, 4.3 KB (added by shinigami, 12 years ago)

Environment - merge chained ops (each created copy of env.) to one

  • src/org/openstreetmap/josm/gui/mappaint/Environment.java

     
    7777        return e;
    7878    }
    7979
     80    public Environment withParentAndIndexAndLinkContext(OsmPrimitive parent, int index) {
     81        Environment e = new Environment(this);
     82        e.parent = parent;
     83        e.index = index;
     84        e.context = Context.LINK;
     85        return e;
     86    }
     87
    8088    public Environment withChild(OsmPrimitive child) {
    8189        Environment e = new Environment(this);
    8290        e.child = child;
    8391        return e;
    8492    }
    8593
     94
     95    public Environment withChildAndIndexAndLinkContext(OsmPrimitive child, int index) {
     96        Environment e = new Environment(this);
     97        e.child = child;
     98        e.index = index;
     99        e.context = Context.LINK;
     100        return e;
     101    }
     102
    86103    public Environment withIndex(int index) {
    87104        Environment e = new Environment(this);
    88105        e.index = index;
  • src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java

     
    166166                    if (sub == null) {
    167167                        sub = "default";
    168168                    }
    169 
    170                     if (sub.equals("*")) {
     169                    else if ("*".equals(sub)) {
    171170                        for (Entry<String, Cascade> entry : mc.getLayers()) {
    172171                            env.layer = entry.getKey();
    173172                            if (Utils.equal(env.layer, "*")) {
     
    176175                            r.execute(env);
    177176                        }
    178177                    }
     178
    179179                    env.layer = sub;
    180180                    r.execute(env);
    181181                }
  • src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java

     
    107107                for (int i=0; i<w.getNodesCount(); i++) {
    108108                    Node n = w.getNode(i);
    109109                    if (n.equals(e.osm)) {
    110                         if (link.matches(e.withParent(w).withIndex(i).withLinkContext())) {
     110                        if (link.matches(e.withParentAndIndexAndLinkContext(w, i))) {
    111111                            e.parent = w;
    112112                            e.index = i;
    113113                            return;
     
    129129                for (int i=0; i < r.getMembersCount(); i++) {
    130130                    RelationMember m = r.getMember(i);
    131131                    if (m.getMember().equals(e.osm)) {
    132                         if (link.matches(e.withParent(r).withIndex(i).withLinkContext())) {
     132                        if (link.matches(e.withParentAndIndexAndLinkContext(r, i))) {
    133133                            e.parent = r;
    134134                            e.index = i;
    135135                            return;
     
    155155                    for (int i=0; i<wayNodes.size(); i++) {
    156156                        Node n = wayNodes.get(i);
    157157                        if (left.matches(e.withPrimitive(n))) {
    158                             if (link.matches(e.withChild(n).withIndex(i).withLinkContext())) {
     158                            if (link.matches(e.withChildAndIndexAndLinkContext(n, i))) {
    159159                                e.child = n;
    160160                                e.index = i;
    161161                                return true;
     
    168168                    for (int i=0; i<members.size(); i++) {
    169169                        OsmPrimitive member = members.get(i).getMember();
    170170                        if (left.matches(e.withPrimitive(member))) {
    171                             if (link.matches(e.withChild(member).withIndex(i).withLinkContext())) {
     171                            if (link.matches(e.withChildAndIndexAndLinkContext(member, i))) {
    172172                                e.child = member;
    173173                                e.index = i;
    174174                                return true;