home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2004 May / DPPCPRO0504.ISO / May / Seatools / SeaTools.iso / tools / en / webhelp / webhelp.jar / hhapplet / RealItemBlock.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-04-17  |  2.0 KB  |  121 lines

  1. package hhapplet;
  2.  
  3. import XMLConsumer.IEntry;
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Image;
  7. import java.util.Vector;
  8.  
  9. class RealItemBlock {
  10.    private Vector m_block;
  11.    private int m_nTop;
  12.    private int m_nNum;
  13.    private String m_sFirstKey;
  14.    private String m_sLastKey;
  15.    private int m_nWidth;
  16.    private boolean m_bNeedCalWidth;
  17.  
  18.    public int getNum() {
  19.       return this.m_nNum;
  20.    }
  21.  
  22.    public RealItemBlock(int var1, BlockContainer var2) {
  23.       this.m_block = var2.getBlock();
  24.       this.m_sFirstKey = var2.getFirstKey();
  25.       this.m_sLastKey = var2.getLastKey();
  26.       this.m_nTop = var1;
  27.       this.m_nNum = this.m_block.size();
  28.       this.m_bNeedCalWidth = true;
  29.    }
  30.  
  31.    public IEntry getEntry(int var1) {
  32.       int var2 = var1 - this.m_nTop;
  33.       return var2 >= 0 && var2 < this.m_nNum ? (IEntry)this.m_block.elementAt(var2) : null;
  34.    }
  35.  
  36.    public int getTop() {
  37.       return this.m_nTop;
  38.    }
  39.  
  40.    public void posChange(int var1) {
  41.       this.m_nTop += var1;
  42.    }
  43.  
  44.    protected int calWidth(Graphics var1) {
  45.       int var2 = 0;
  46.       int var3 = 0;
  47.  
  48.       for(int var4 = 0; var4 < this.m_block.size(); ++var4) {
  49.          IEntry var5 = (IEntry)this.m_block.elementAt(var4);
  50.          var3 = var5.getWidth(var1);
  51.          if (var3 > var2) {
  52.             var2 = var3;
  53.          }
  54.       }
  55.  
  56.       return var2;
  57.    }
  58.  
  59.    public int getClosestEntryId(String var1) {
  60.       if (Language.compare(this.m_sFirstKey, var1) > 0) {
  61.          return -1;
  62.       } else if (Language.compare(this.m_sLastKey, var1) < 0) {
  63.          return this.m_nNum;
  64.       } else {
  65.          int var2 = 0;
  66.          int var3 = 0;
  67.          int var4 = 0;
  68.  
  69.          IEntry var5;
  70.          do {
  71.             var5 = (IEntry)this.m_block.elementAt(var4);
  72.             if (Language.compare(var5.getName(), var1) >= 0 && var5.isMainEntry()) {
  73.                break;
  74.             }
  75.  
  76.             var3 = var4;
  77.             var4 += var5.getNextSpan() + 1;
  78.          } while(var4 < this.m_block.size());
  79.  
  80.          if (Language.compare(var5.getName(), var1) == 0) {
  81.             var2 = var4;
  82.          } else if (var5.getName().length() > var1.length() && Language.compare(var5.getName().substring(0, var1.length()), var1) == 0) {
  83.             var2 = var4;
  84.          } else {
  85.             var2 = var3;
  86.          }
  87.  
  88.          return var2;
  89.       }
  90.    }
  91.  
  92.    public String getLastKey() {
  93.       return this.m_sLastKey;
  94.    }
  95.  
  96.    public void display(Graphics var1, int var2, int var3, int var4, Color var5, Image var6) {
  97.       int var7 = var2 - this.m_nTop;
  98.       int var8 = var7 > 0 ? var7 : 0;
  99.       int var9 = var3 + var7 < this.m_nNum ? var3 + var7 : this.m_nNum;
  100.  
  101.       for(int var10 = var8; var10 < var9; ++var10) {
  102.          IEntry var11 = (IEntry)this.m_block.elementAt(var10);
  103.          var11.display(var1, var10 - var7, var4, var5, var6);
  104.       }
  105.  
  106.    }
  107.  
  108.    public String getFirstKey() {
  109.       return this.m_sFirstKey;
  110.    }
  111.  
  112.    public int getWidth(Graphics var1) {
  113.       if (this.m_bNeedCalWidth) {
  114.          this.m_nWidth = this.calWidth(var1);
  115.          this.m_bNeedCalWidth = false;
  116.       }
  117.  
  118.       return this.m_nWidth;
  119.    }
  120. }
  121.