home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 May / PCO_5_97.ISO / FilesBBS / OS2 / CSIME.ARJ / CSIME.ZIP / csime / Area.class (.txt) next >
Encoding:
Java Class File  |  1997-02-09  |  2.6 KB  |  105 lines

  1. import java.awt.Graphics;
  2.  
  3. public abstract class Area implements Cloneable {
  4.    private static final int DIST = 2;
  5.    private static final int DIST2 = 4;
  6.    private static final int SIZE = 5;
  7.    protected boolean _selected = false;
  8.    protected String _link;
  9.  
  10.    public abstract void resize(int var1, int var2);
  11.  
  12.    public abstract void translate(int var1, int var2);
  13.  
  14.    public abstract boolean isGrab(int var1, int var2);
  15.  
  16.    public abstract boolean isSelect(int var1, int var2);
  17.  
  18.    public abstract boolean inside(int var1, int var2);
  19.  
  20.    public abstract boolean isValid();
  21.  
  22.    public abstract boolean isComplete();
  23.  
  24.    public abstract void advance();
  25.  
  26.    public abstract void draw(Graphics var1);
  27.  
  28.    public abstract String getShape();
  29.  
  30.    public abstract String getCoords();
  31.  
  32.    public abstract synchronized Object clone();
  33.  
  34.    public void setSelected(boolean var1) {
  35.       this._selected = var1;
  36.    }
  37.  
  38.    public boolean isSelected() {
  39.       return this._selected;
  40.    }
  41.  
  42.    public void setLink(String var1) {
  43.       this._link = var1;
  44.    }
  45.  
  46.    public String getLink() {
  47.       return this._link;
  48.    }
  49.  
  50.    public String toString() {
  51.       return "<AREA" + this.formatShape() + this.formatCoords() + this.formatLink() + ">";
  52.    }
  53.  
  54.    private String formatShape() {
  55.       return " SHAPE=\"" + this.getShape() + "\"";
  56.    }
  57.  
  58.    private String formatCoords() {
  59.       return " COORDS=\"" + this.getCoords() + "\"";
  60.    }
  61.  
  62.    private String formatLink() {
  63.       return this._link != null && this._link.length() > 0 ? " HREF=\"" + this._link + "\"" : " NOHREF";
  64.    }
  65.  
  66.    protected boolean grabPoint(int var1, int var2, int var3, int var4) {
  67.       return Math.abs(var3 - var1) <= 2 && Math.abs(var4 - var2) <= 2;
  68.    }
  69.  
  70.    protected boolean grabLine(int var1, int var2, int var3, int var4, int var5, int var6) {
  71.       if ((var1 - 2 <= var5 && var5 <= var3 + 2 || var3 - 2 <= var5 && var5 <= var1 + 2) && (var2 - 2 <= var6 && var6 <= var4 + 2 || var4 - 2 <= var6 && var6 <= var2 + 2)) {
  72.          if (var1 == var3 || var2 == var4) {
  73.             return true;
  74.          }
  75.  
  76.          double var7 = (double)(var4 - var2) / (double)(var3 - var1);
  77.          double var9 = (double)(var6 - var2) / var7 + (double)var1 - (double)var5;
  78.          double var11 = var7 * (double)(var5 - var1) + (double)var2 - (double)var6;
  79.          if (var9 == (double)0.0F || var11 == (double)0.0F) {
  80.             return true;
  81.          }
  82.  
  83.          if ((int)Math.abs(var9 * var11 / Math.sqrt(var9 * var9 + var11 * var11)) <= 2) {
  84.             return true;
  85.          }
  86.       }
  87.  
  88.       return false;
  89.    }
  90.  
  91.    protected void drawPoint(Graphics var1, int var2, int var3) {
  92.       var1.fillRect(var2 - 2, var3 - 2, 5, 5);
  93.    }
  94.  
  95.    protected void drawCenter(Graphics var1, int var2, int var3) {
  96.       var1.drawLine(var2 - 2, var3 - 2, var2 + 2, var3 + 2);
  97.       var1.drawLine(var2 - 2, var3 + 2, var2 + 2, var3 - 2);
  98.    }
  99.  
  100.    protected void drawAnchor(Graphics var1, int var2, int var3) {
  101.       var1.drawLine(var2, var3 - 4, var2, var3 + 4);
  102.       var1.drawLine(var2 - 4, var3, var2 + 4, var3);
  103.    }
  104. }
  105.