home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / CFJava.cab / CFJavaRuntime.cab / netscape / application / ImageSequence.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-10-01  |  6.0 KB  |  309 lines

  1. package netscape.application;
  2.  
  3. import netscape.util.ClassInfo;
  4. import netscape.util.CodingException;
  5. import netscape.util.Decoder;
  6. import netscape.util.Encoder;
  7. import netscape.util.Vector;
  8.  
  9. public class ImageSequence extends DrawingSequence {
  10.    Vector imageVector;
  11.    Image imageStrip;
  12.    int frameWidth;
  13.    int frameHeight;
  14.    static final String VECTOR_KEY = "imageVector";
  15.    static final String IMAGESTRIP_KEY = "imageStrip";
  16.    static final String FRAMEWIDTH_KEY = "frameWidth";
  17.    static final String FRAMEHEIGHT_KEY = "frameHeight";
  18.  
  19.    public ImageSequence() {
  20.    }
  21.  
  22.    public ImageSequence(DrawingSequenceOwner var1) {
  23.       super(var1);
  24.    }
  25.  
  26.    public Vector images() {
  27.       return this.imageVector;
  28.    }
  29.  
  30.    public void addImage(Image var1) {
  31.       if (this.imageVector == null) {
  32.          this.imageVector = new Vector();
  33.       }
  34.  
  35.       this.imageVector.addElement(var1);
  36.       super.frameCount = this.imageVector.count();
  37.    }
  38.  
  39.    public void addImagesFromName(String var1, int var2) {
  40.       if (var1 != null && var2 >= 0) {
  41.          Application var3 = Application.application();
  42.          int var6 = var1.lastIndexOf(46);
  43.          if (var6 == -1) {
  44.             this.addImage(Bitmap.bitmapNamed(var1));
  45.          } else {
  46.             String var5 = var1.substring(var6);
  47.             int var8 = var6 - 1;
  48.             int var9 = 0;
  49.  
  50.             for(int var10 = 1; var8 > 0 && Character.isDigit(var1.charAt(var8)); --var8) {
  51.                var9 += var10 * Character.digit(var1.charAt(var8), 10);
  52.                var10 *= 10;
  53.             }
  54.  
  55.             String var4 = var1.substring(0, var8 + 1);
  56.             if (this.imageVector == null) {
  57.                this.imageVector = new Vector();
  58.             }
  59.  
  60.             var2 += var9;
  61.  
  62.             for(int var7 = var9; var7 < var2; ++var7) {
  63.                this.imageVector.addElement(Bitmap.bitmapNamed(var4 + var7 + var5));
  64.             }
  65.  
  66.             super.frameCount = this.imageVector.count();
  67.          }
  68.       }
  69.    }
  70.  
  71.    public void removeImage(Image var1) {
  72.       if (this.imageVector != null) {
  73.          this.imageVector.removeElement(var1);
  74.          super.frameCount = this.imageVector.count();
  75.       }
  76.  
  77.    }
  78.  
  79.    public void removeAllImages() {
  80.       if (this.imageVector != null) {
  81.          this.imageVector.removeAllElements();
  82.       }
  83.  
  84.       this.imageStrip = null;
  85.       super.currentFrameNumber = super.frameCount = 0;
  86.    }
  87.  
  88.    public void setImageStrip(Image var1) {
  89.       this.imageStrip = var1;
  90.       super.currentFrameNumber = super.frameCount = 0;
  91.    }
  92.  
  93.    public Image imageStrip() {
  94.       return this.imageStrip;
  95.    }
  96.  
  97.    public void setFrameWidth(int var1) {
  98.       if (var1 < 0) {
  99.          var1 = 0;
  100.       }
  101.  
  102.       this.frameWidth = var1;
  103.       if (this.frameWidth > 0 && this.imageStrip != null) {
  104.          super.frameCount = this.imageStrip.width() / this.frameWidth;
  105.       } else {
  106.          super.currentFrameNumber = super.frameCount = 0;
  107.       }
  108.    }
  109.  
  110.    public int frameWidth() {
  111.       return this.frameWidth;
  112.    }
  113.  
  114.    public void setFrameHeight(int var1) {
  115.       if (var1 < 0) {
  116.          var1 = 0;
  117.       }
  118.  
  119.       this.frameHeight = var1;
  120.       if (this.frameHeight > 0 && this.imageStrip != null) {
  121.          super.frameCount = this.imageStrip.height() / this.frameHeight;
  122.       } else {
  123.          super.currentFrameNumber = super.frameCount = 0;
  124.       }
  125.    }
  126.  
  127.    public int frameHeight() {
  128.       return this.frameHeight;
  129.    }
  130.  
  131.    public int imageCount() {
  132.       return ((DrawingSequence)this).frameCount();
  133.    }
  134.  
  135.    public void setCurrentImageNumber(int var1) {
  136.       if (var1 < 0) {
  137.          var1 = 0;
  138.       } else if (var1 >= super.frameCount) {
  139.          var1 = super.frameCount - 1;
  140.       }
  141.  
  142.       super.currentFrameNumber = var1;
  143.    }
  144.  
  145.    public Image currentImage() {
  146.       return this.imageVector != null ? (Image)this.imageVector.elementAt(super.currentFrameNumber) : this.imageStrip;
  147.    }
  148.  
  149.    public Size maxSize() {
  150.       if (this.imageStrip != null) {
  151.          if (this.frameWidth > 0) {
  152.             return new Size(this.frameWidth, this.imageStrip.height());
  153.          }
  154.  
  155.          if (this.frameHeight > 0) {
  156.             return new Size(this.imageStrip.width(), this.frameHeight);
  157.          }
  158.       } else if (this.imageVector != null && !this.imageVector.isEmpty()) {
  159.          int var4 = 0;
  160.          int var3 = 0;
  161.          int var2 = this.imageVector.count();
  162.  
  163.          while(var2-- > 0) {
  164.             Image var1 = (Image)this.imageVector.elementAt(var2);
  165.             if (var1.width() > var3) {
  166.                var3 = var1.width();
  167.             }
  168.  
  169.             if (var1.height() > var4) {
  170.                var4 = var1.height();
  171.             }
  172.          }
  173.  
  174.          return new Size(var3, var4);
  175.       }
  176.  
  177.       return new Size(0, 0);
  178.    }
  179.  
  180.    public int width() {
  181.       int var3 = 0;
  182.       if (this.imageStrip != null) {
  183.          return this.frameWidth > 0 ? this.frameWidth : this.imageStrip.width();
  184.       } else if (this.imageVector == null) {
  185.          return 0;
  186.       } else {
  187.          int var2 = this.imageVector.count();
  188.  
  189.          while(var2-- > 0) {
  190.             Image var1 = (Image)this.imageVector.elementAt(var2);
  191.             if (var1.width() > var3) {
  192.                var3 = var1.width();
  193.             }
  194.          }
  195.  
  196.          return var3;
  197.       }
  198.    }
  199.  
  200.    public int height() {
  201.       int var3 = 0;
  202.       if (this.imageStrip != null) {
  203.          return this.frameHeight > 0 ? this.frameHeight : this.imageStrip.height();
  204.       } else if (this.imageVector == null) {
  205.          return 0;
  206.       } else {
  207.          int var2 = this.imageVector.count();
  208.  
  209.          while(var2-- > 0) {
  210.             Image var1 = (Image)this.imageVector.elementAt(var2);
  211.             if (var1.height() > var3) {
  212.                var3 = var1.height();
  213.             }
  214.          }
  215.  
  216.          return var3;
  217.       }
  218.    }
  219.  
  220.    public void drawAt(Graphics var1, int var2, int var3) {
  221.       if (this.imageVector != null) {
  222.          Image var4 = (Image)this.imageVector.elementAt(super.currentFrameNumber);
  223.          if (var4 != null) {
  224.             var4.drawAt(var1, var2, var3);
  225.             return;
  226.          }
  227.       } else {
  228.          if (this.frameWidth > 0) {
  229.             Rect var6 = Rect.newRect(var2, var3, this.frameWidth, this.imageStrip.height());
  230.             var1.pushState();
  231.             var1.setClipRect(var6);
  232.             this.imageStrip.drawAt(var1, var2 - this.frameWidth * super.currentFrameNumber, var3);
  233.             var1.popState();
  234.             Rect.returnRect(var6);
  235.             return;
  236.          }
  237.  
  238.          if (this.frameHeight > 0) {
  239.             Rect var5 = Rect.newRect(var2, var3, this.imageStrip.width(), this.frameHeight);
  240.             var1.pushState();
  241.             var1.setClipRect(var5);
  242.             this.imageStrip.drawAt(var1, var2, var3 - this.frameHeight * super.currentFrameNumber);
  243.             var1.popState();
  244.             Rect.returnRect(var5);
  245.          }
  246.       }
  247.  
  248.    }
  249.  
  250.    public void drawScaled(Graphics var1, int var2, int var3, int var4, int var5) {
  251.       if (this.imageVector != null) {
  252.          Image var6 = (Image)this.imageVector.elementAt(super.currentFrameNumber);
  253.          if (var6 != null) {
  254.             var6.drawCentered(var1, var2, var3, var4, var5);
  255.             return;
  256.          }
  257.       } else {
  258.          if (this.frameWidth > 0) {
  259.             var2 += (var4 - this.frameWidth) / 2;
  260.             var3 += (var5 - this.imageStrip.height()) / 2;
  261.             Rect var12 = Rect.newRect(var2, var3, this.frameWidth, this.imageStrip.height());
  262.             var1.pushState();
  263.             var1.setClipRect(var12);
  264.             this.imageStrip.drawAt(var1, var2 - this.frameWidth * super.currentFrameNumber, var3);
  265.             var1.popState();
  266.             Rect.returnRect(var12);
  267.             return;
  268.          }
  269.  
  270.          if (this.frameHeight > 0) {
  271.             var2 += (var4 - this.imageStrip.width()) / 2;
  272.             var3 += (var5 - this.frameHeight) / 2;
  273.             Rect var7 = Rect.newRect(var2, var3, this.imageStrip.width(), this.frameHeight);
  274.             var1.pushState();
  275.             var1.setClipRect(var7);
  276.             this.imageStrip.drawAt(var1, var2, var3 - this.frameHeight * super.currentFrameNumber);
  277.             var1.popState();
  278.             Rect.returnRect(var7);
  279.          }
  280.       }
  281.  
  282.    }
  283.  
  284.    public void describeClassInfo(ClassInfo var1) {
  285.       super.describeClassInfo(var1);
  286.       var1.addClass("netscape.application.ImageSequence", 1);
  287.       var1.addField("imageVector", (byte)18);
  288.       var1.addField("imageStrip", (byte)18);
  289.       var1.addField("frameWidth", (byte)8);
  290.       var1.addField("frameHeight", (byte)8);
  291.    }
  292.  
  293.    public void encode(Encoder var1) throws CodingException {
  294.       super.encode(var1);
  295.       var1.encodeObject("imageVector", this.imageVector);
  296.       var1.encodeObject("imageStrip", this.imageStrip);
  297.       var1.encodeInt("frameWidth", this.frameWidth);
  298.       var1.encodeInt("frameHeight", this.frameHeight);
  299.    }
  300.  
  301.    public void decode(Decoder var1) throws CodingException {
  302.       super.decode(var1);
  303.       this.imageVector = (Vector)var1.decodeObject("imageVector");
  304.       this.imageStrip = (Image)var1.decodeObject("imageStrip");
  305.       this.frameWidth = var1.decodeInt("frameWidth");
  306.       this.frameHeight = var1.decodeInt("frameHeight");
  307.    }
  308. }
  309.