private void onMouseExited(MouseEvent event) {
   BoundableRenderable oldTarget = this.mousePressTarget;
   if (oldTarget != null) {
     this.mousePressTarget = null;
     oldTarget.onMouseDisarmed(event);
   }
 }
Beispiel #2
0
 /* (non-Javadoc)
  * @see org.xamjwg.html.renderer.BoundableRenderable#onMouseDisarmed(java.awt.event.MouseEvent)
  */
 public void onMouseDisarmed(MouseEvent event) {
   BoundableRenderable ar = this.armedRenderable;
   if (ar != null) {
     ar.onMouseDisarmed(event);
     this.armedRenderable = null;
   }
 }
 private void onMouseClick(MouseEvent event) {
   Point point = event.getPoint();
   BoundableRenderable r = this.rblock.getRenderable(point);
   if (r != null) {
     Rectangle bounds = r.getBounds();
     r.onMouseClick(event, point.x - bounds.x, point.y - bounds.y);
   }
 }
Beispiel #4
0
 /* (non-Javadoc)
  * @see org.xamjwg.html.renderer.BoundableRenderable#onMouseClick(java.awt.event.MouseEvent, int, int)
  */
 public void onMouseClick(MouseEvent event, int x, int y) {
   Iterator i = this.blocks.iterator();
   while (i.hasNext()) {
     Object r = i.next();
     if (r instanceof BoundableRenderable) {
       BoundableRenderable br = (BoundableRenderable) r;
       Rectangle bounds = br.getBounds();
       if (bounds.contains(x, y)) {
         br.onMouseClick(event, x - bounds.x, y - bounds.y);
       }
     }
   }
 }
 private Rectangle getAbsoluteBounds(BoundableRenderable br) {
   int x = 0;
   int y = 0;
   Renderable parent = br;
   while (parent instanceof BoundableRenderable) {
     BoundableRenderable current = (BoundableRenderable) parent;
     Rectangle bounds = current.getBounds();
     x += bounds.x;
     y += bounds.y;
     parent = current.getParent();
   }
   Rectangle oldBounds = br.getBounds();
   return new Rectangle(x, y, oldBounds.width, oldBounds.height);
 }
 private void onMouseReleased(MouseEvent event) {
   Point point = event.getPoint();
   BoundableRenderable r = this.rblock.getRenderable(point);
   if (r != null) {
     Rectangle bounds = r.getBounds();
     r.onMouseReleased(event, point.x - bounds.x, point.y - bounds.y);
   }
   BoundableRenderable oldTarget = this.mousePressTarget;
   if (oldTarget != null) {
     this.mousePressTarget = null;
     if (oldTarget != r) {
       oldTarget.onMouseDisarmed(event);
     }
   }
 }
Beispiel #7
0
 /* (non-Javadoc)
  * @see org.xamjwg.html.renderer.BoundableRenderable#getRenderablePoint(int, int)
  */
 public RenderablePoint getRenderablePoint(int x, int y) {
   Iterator i = this.blocks.iterator();
   while (i.hasNext()) {
     Object r = i.next();
     if (r instanceof BoundableRenderable) {
       BoundableRenderable br = (BoundableRenderable) r;
       Rectangle bounds = br.getBounds();
       if (bounds.contains(x, y)) {
         RenderablePoint rp = br.getRenderablePoint(x - bounds.x, y - bounds.y);
         if (rp != null) {
           return rp;
         }
       }
     }
   }
   return null;
 }
Beispiel #8
0
 /* (non-Javadoc)
  * @see org.xamjwg.html.renderer.BoundableRenderable#onMouseReleased(java.awt.event.MouseEvent, int, int)
  */
 public void onMouseReleased(MouseEvent event, int x, int y) {
   Iterator i = this.blocks.iterator();
   boolean found = false;
   while (i.hasNext()) {
     Object r = i.next();
     if (r instanceof BoundableRenderable) {
       BoundableRenderable br = (BoundableRenderable) r;
       Rectangle bounds = br.getBounds();
       if (bounds.contains(x, y)) {
         found = true;
         br.onMouseReleased(event, x - bounds.x, y - bounds.y);
         BoundableRenderable oldArmedRenderable = this.armedRenderable;
         if (oldArmedRenderable != null && br != oldArmedRenderable) {
           oldArmedRenderable.onMouseDisarmed(event);
           this.armedRenderable = null;
         }
       }
     }
   }
   if (!found) {
     BoundableRenderable oldArmedRenderable = this.armedRenderable;
     if (oldArmedRenderable != null) {
       oldArmedRenderable.onMouseDisarmed(event);
       this.armedRenderable = null;
     }
   }
 }
 private void onMousePressed(MouseEvent event) {
   this.requestFocus();
   Point point = event.getPoint();
   BoundableRenderable r = this.rblock.getRenderable(point);
   if (r != null) {
     this.mousePressTarget = r;
     Rectangle bounds = r.getBounds();
     int rx = point.x - bounds.x;
     int ry = point.y - bounds.y;
     r.onMousePressed(event, rx, ry);
     RenderablePoint rp = r.getRenderablePoint(rx, ry);
     if (rp != null) {
       this.frameContext.resetSelection(rp);
     } else {
       this.frameContext.resetSelection(null);
     }
   } else {
     this.frameContext.resetSelection(null);
   }
 }
 /**
  * Find renderable.
  *
  * @param renderables the renderables
  * @param x the x
  * @param y the y
  * @param firstIndex the first index
  * @param length the length
  * @param vertical the vertical
  * @return the boundable renderable
  */
 private static BoundableRenderable findRenderable(
     Renderable[] renderables, int x, int y, int firstIndex, int length, boolean vertical) {
   if (length == 0) {
     return null;
   }
   if (length == 1) {
     Renderable r = renderables[firstIndex];
     if (!(r instanceof BoundableRenderable)) {
       return null;
     }
     BoundableRenderable br = (BoundableRenderable) r;
     Rectangle rbounds = br.getBounds();
     return rbounds.contains(x, y) ? br : null;
   } else {
     int middleIndex = firstIndex + (length / 2);
     Renderable r = renderables[middleIndex];
     Rectangle rbounds;
     if (r instanceof BoundableRenderable) {
       rbounds = ((BoundableRenderable) r).getBounds();
     } else {
       BoundableRenderable rleft =
           findRenderable(renderables, x, y, firstIndex, middleIndex - firstIndex, vertical);
       if (rleft != null) {
         return rleft;
       }
       return findRenderable(
           renderables,
           x,
           y,
           middleIndex + 1,
           length - ((middleIndex - firstIndex) + 1),
           vertical);
     }
     if (rbounds.contains(x, y)) {
       return (BoundableRenderable) r;
     }
     if (vertical) {
       if (y < rbounds.y) {
         return findRenderable(renderables, x, y, firstIndex, middleIndex - firstIndex, vertical);
       } else {
         return findRenderable(
             renderables,
             x,
             y,
             middleIndex + 1,
             length - ((middleIndex - firstIndex) + 1),
             vertical);
       }
     } else {
       if (x < rbounds.x) {
         return findRenderable(renderables, x, y, firstIndex, middleIndex - firstIndex, vertical);
       } else {
         return findRenderable(
             renderables,
             x,
             y,
             middleIndex + 1,
             length - ((middleIndex - firstIndex) + 1),
             vertical);
       }
     }
   }
 }