Ignore:
Timestamp:
2005-10-03T04:18:02+02:00 (19 years ago)
Author:
imi
Message:
  • added Selection Dialog
  • added support for graphic engines with a better default engine
  • reorganized data classes with back references
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/gui/SelectionManager.java

    r7 r8  
    137137         */
    138138        public void mousePressed(MouseEvent e) {
    139                 if (e.getButton() == MouseEvent.BUTTON1) {
    140                         mousePosStart = e.getPoint();
    141                         mousePos = e.getPoint();
    142                         paintRect();
    143                 }
     139                if (e.getButton() == MouseEvent.BUTTON1)
     140                        mousePosStart = mousePos = e.getPoint();
    144141        }
    145142
     
    150147                int buttonPressed = e.getModifiersEx() & (MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON3_DOWN_MASK);
    151148
     149               
    152150                if (buttonPressed != 0) {
    153                         if (mousePosStart == null) {
    154                                 mousePosStart = e.getPoint();
    155                                 mousePos = e.getPoint();
    156                                 paintRect();
    157                         }
     151                        if (mousePosStart == null)
     152                                mousePosStart = mousePos = e.getPoint();
    158153                        paintRect();
    159154                }
     
    176171                if (e.getButton() != MouseEvent.BUTTON1)
    177172                        return;
     173                if (mousePos == null || mousePosStart == null)
     174                        return; // injected release from outside
     175                       
    178176                // disable the selection rect
    179177                paintRect();
     
    195193         */
    196194        private void paintRect() {
     195                if (mousePos == null || mousePosStart == null || mousePos == mousePosStart)
     196                        return;
    197197                Graphics g = mv.getGraphics();
    198198                g.setColor(Color.BLACK);
     
    244244         */
    245245        public void propertyChange(PropertyChangeEvent evt) {
    246                 if (evt.getPropertyName() == "active" && !(Boolean)evt.getNewValue() && mousePosStart != null) {
     246                if (evt.getPropertyName().equals("active") && !(Boolean)evt.getNewValue() && mousePosStart != null) {
    247247                        paintRect();
    248248                        mousePosStart = null;
     
    277277                       
    278278                        // pending line segments
    279                         for (LineSegment ls : mv.dataSet.pendingLineSegments)
     279                        for (LineSegment ls : mv.dataSet.pendingLineSegments())
    280280                                if (rectangleContainLineSegment(r, alt, ls))
    281281                                        selection.add(ls);
    282282
    283283                        // tracks
    284                         for (Track t : mv.dataSet.tracks) {
    285                                 boolean wholeTrackSelected = t.segments.size() > 0;
    286                                 for (LineSegment ls : t.segments)
     284                        for (Track t : mv.dataSet.tracks()) {
     285                                boolean wholeTrackSelected = !t.segments().isEmpty();
     286                                for (LineSegment ls : t.segments())
    287287                                        if (rectangleContainLineSegment(r, alt, ls))
    288288                                                selection.add(ls);
     
    309309        private boolean rectangleContainLineSegment(Rectangle r, boolean alt, LineSegment ls) {
    310310                if (alt) {
    311                         Point p1 = mv.getScreenPoint(ls.start.coor);
    312                         Point p2 = mv.getScreenPoint(ls.end.coor);
     311                        Point p1 = mv.getScreenPoint(ls.getStart().coor);
     312                        Point p2 = mv.getScreenPoint(ls.getEnd().coor);
    313313                        if (r.intersectsLine(p1.x, p1.y, p2.x, p2.y))
    314314                                return true;
    315315                } else {
    316                         if (r.contains(mv.getScreenPoint(ls.start.coor))
    317                                         && r.contains(mv.getScreenPoint(ls.end.coor)))
     316                        if (r.contains(mv.getScreenPoint(ls.getStart().coor))
     317                                        && r.contains(mv.getScreenPoint(ls.getEnd().coor)))
    318318                                return true;
    319319                }
Note: See TracChangeset for help on using the changeset viewer.