home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Canvas;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Graphics;
- import java.awt.Rectangle;
-
- class SelectionArea extends Canvas {
- Rectangle currentRect;
- RectangleDemo controller;
-
- public SelectionArea(RectangleDemo var1) {
- this.controller = var1;
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- this.currentRect = new Rectangle(var2, var3, 0, 0);
- ((Component)this).repaint();
- return false;
- }
-
- public boolean mouseDrag(Event var1, int var2, int var3) {
- this.currentRect.resize(var2 - this.currentRect.x, var3 - this.currentRect.y);
- ((Component)this).repaint();
- return false;
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- this.currentRect.resize(var2 - this.currentRect.x, var3 - this.currentRect.y);
- ((Component)this).repaint();
- return false;
- }
-
- public void paint(Graphics var1) {
- Dimension var2 = ((Component)this).size();
- if (this.currentRect != null) {
- Rectangle var3 = this.getDrawableRect(this.currentRect, var2);
- this.controller.rectChanged(var3);
- var1.drawRect(var3.x, var3.y, var3.width - 1, var3.height - 1);
- }
-
- }
-
- Rectangle getDrawableRect(Rectangle var1, Dimension var2) {
- int var3 = var1.x;
- int var4 = var1.y;
- int var5 = var1.width;
- int var6 = var1.height;
- if (var5 < 0) {
- var5 = -var5;
- var3 = var3 - var5 + 1;
- if (var3 < 0) {
- var5 += var3;
- var3 = 0;
- }
- }
-
- if (var6 < 0) {
- var6 = -var6;
- var4 = var4 - var6 + 1;
- if (var4 < 0) {
- var6 += var4;
- var4 = 0;
- }
- }
-
- if (var3 + var5 > var2.width) {
- var5 = var2.width - var3;
- }
-
- if (var4 + var6 > var2.height) {
- var6 = var2.height - var4;
- }
-
- return new Rectangle(var3, var4, var5, var6);
- }
- }
-