home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / text / html / Map.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.3 KB  |  158 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.util.StringTokenizer;
  4. import java.util.Vector;
  5. import javax.swing.text.AttributeSet;
  6. import javax.swing.text.html.HTML.Attribute;
  7.  
  8. class Map {
  9.    private String name;
  10.    private Vector areaAttributes;
  11.    private Vector areas;
  12.  
  13.    public Map() {
  14.    }
  15.  
  16.    public Map(String var1) {
  17.       this.name = var1;
  18.    }
  19.  
  20.    public String getName() {
  21.       return this.name;
  22.    }
  23.  
  24.    public void addArea(AttributeSet var1) {
  25.       if (var1 != null) {
  26.          if (this.areaAttributes == null) {
  27.             this.areaAttributes = new Vector(2);
  28.          }
  29.  
  30.          this.areaAttributes.addElement(var1.copyAttributes());
  31.       }
  32.    }
  33.  
  34.    public void removeArea(AttributeSet var1) {
  35.       if (var1 != null && this.areaAttributes != null) {
  36.          int var2 = this.areas != null ? this.areas.size() : 0;
  37.  
  38.          for(int var3 = this.areaAttributes.size() - 1; var3 >= 0; --var3) {
  39.             if (((AttributeSet)this.areaAttributes.elementAt(var3)).isEqual(var1)) {
  40.                this.areaAttributes.removeElementAt(var3);
  41.                if (var3 < var2) {
  42.                   this.areas.removeElementAt(var3);
  43.                }
  44.             }
  45.          }
  46.       }
  47.  
  48.    }
  49.  
  50.    public AttributeSet[] getAreas() {
  51.       int var1 = this.areaAttributes != null ? this.areaAttributes.size() : 0;
  52.       if (var1 != 0) {
  53.          AttributeSet[] var2 = new AttributeSet[var1];
  54.          this.areaAttributes.copyInto(var2);
  55.          return var2;
  56.       } else {
  57.          return null;
  58.       }
  59.    }
  60.  
  61.    public AttributeSet getArea(int var1, int var2, int var3, int var4) {
  62.       int var5 = this.areaAttributes != null ? this.areaAttributes.size() : 0;
  63.       if (var5 > 0) {
  64.          int var6 = this.areas != null ? this.areas.size() : 0;
  65.          if (this.areas == null) {
  66.             this.areas = new Vector(var5);
  67.          }
  68.  
  69.          for(int var7 = 0; var7 < var5; ++var7) {
  70.             if (var7 >= var6) {
  71.                this.areas.addElement(this.createRegionContainment((AttributeSet)this.areaAttributes.elementAt(var7)));
  72.             }
  73.  
  74.             RegionContainment var8 = (RegionContainment)this.areas.elementAt(var7);
  75.             if (var8 != null && var8.contains(var1, var2, var3, var4)) {
  76.                return (AttributeSet)this.areaAttributes.elementAt(var7);
  77.             }
  78.          }
  79.       }
  80.  
  81.       return null;
  82.    }
  83.  
  84.    protected RegionContainment createRegionContainment(AttributeSet var1) {
  85.       Object var2 = var1.getAttribute(Attribute.SHAPE);
  86.       if (var2 == null) {
  87.          var2 = "rect";
  88.       }
  89.  
  90.       if (var2 instanceof String) {
  91.          String var3 = ((String)var2).toLowerCase();
  92.          Object var4 = null;
  93.  
  94.          try {
  95.             if (var3.equals("rect")) {
  96.                var4 = new RectangleRegionContainment(var1);
  97.             } else if (var3.equals("circle")) {
  98.                var4 = new CircleRegionContainment(var1);
  99.             } else if (var3.equals("poly")) {
  100.                var4 = new PolygonRegionContainment(var1);
  101.             } else if (var3.equals("default")) {
  102.                var4 = javax.swing.text.html.Map.DefaultRegionContainment.sharedInstance();
  103.             }
  104.          } catch (RuntimeException var6) {
  105.             var4 = null;
  106.          }
  107.  
  108.          return (RegionContainment)var4;
  109.       } else {
  110.          return null;
  111.       }
  112.    }
  113.  
  114.    protected static int[] extractCoords(Object var0) {
  115.       if (var0 != null && var0 instanceof String) {
  116.          StringTokenizer var1 = new StringTokenizer((String)var0, ", \t\n\r");
  117.          int[] var2 = null;
  118.          int var3 = 0;
  119.  
  120.          while(var1.hasMoreElements()) {
  121.             String var4 = var1.nextToken();
  122.             byte var5;
  123.             if (var4.endsWith("%")) {
  124.                var5 = -1;
  125.                var4 = var4.substring(0, var4.length() - 1);
  126.             } else {
  127.                var5 = 1;
  128.             }
  129.  
  130.             try {
  131.                int var6 = Integer.parseInt(var4);
  132.                if (var2 == null) {
  133.                   var2 = new int[4];
  134.                } else if (var3 == var2.length) {
  135.                   int[] var7 = new int[var2.length * 2];
  136.                   System.arraycopy(var2, 0, var7, 0, var2.length);
  137.                   var2 = var7;
  138.                }
  139.  
  140.                var2[var3++] = var6 * var5;
  141.             } catch (NumberFormatException var8) {
  142.                return null;
  143.             }
  144.          }
  145.  
  146.          if (var3 > 0 && var3 != var2.length) {
  147.             int[] var9 = new int[var3];
  148.             System.arraycopy(var2, 0, var9, 0, var3);
  149.             var2 = var9;
  150.          }
  151.  
  152.          return var2;
  153.       } else {
  154.          return null;
  155.       }
  156.    }
  157. }
  158.