Ticket #7991: DualAlignLimitStatus.patch

File DualAlignLimitStatus.patch, 2.0 KB (added by AlfonZ, 12 years ago)

Add indication when the segment collapsing due to extrusion limit is being performed.

  • src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java

     
    178178    private boolean dualAlignActive;
    179179    /** Dual alignment reference segments */
    180180    private ReferenceSegment dualAlignSegment1, dualAlignSegment2;
     181    /** {@code true}, if new segment was collapsed */
     182    private boolean dualAlignSegmentCollapsed;
    181183    // Dual alignment UI stuff
    182184    private final DualAlignChangeAction dualAlignChangeAction;
    183185    private final JCheckBoxMenuItem dualAlignCheckboxMenuItem;
     
    264266                Main.warn("Extrude: unknown mode " + mode);
    265267                rv = new StringBuilder();
    266268            }
    267             if (dualAlignActive)
     269            if (dualAlignActive) {
    268270                rv.append(" ").append(tr("Dual alignment active."));
     271                if (dualAlignSegmentCollapsed) {
     272                    rv.append(" ").append(tr("Segment collapsed due to its direction reversing."));
     273                }
     274            }
    269275        }
    270276        return rv.toString();
    271277    }
     
    390396            // Otherwise switch to another mode
    391397            if (dualAlignEnabled && checkDualAlignConditions()) {
    392398                dualAlignActive = true;
     399                dualAlignSegmentCollapsed = false;
    393400                calculatePossibleDirectionsForDualAlign();
    394401            } else {
    395402                dualAlignActive = false;
     
    894901                EastNorth collapsedSegmentPosition = Geometry.getLineLineIntersection(dualAlignSegment1.p1, dualAlignSegment1.p2, dualAlignSegment2.p1, dualAlignSegment2.p2);
    895902                newN1en = collapsedSegmentPosition;
    896903                newN2en = collapsedSegmentPosition;
     904                dualAlignSegmentCollapsed = true;
     905            } else {
     906                dualAlignSegmentCollapsed = false;
    897907            }
    898908        } else {
    899909            newN1en = n1movedEn;