home *** CD-ROM | disk | FTP | other *** search
- package hhapplet;
-
- import XMLConsumer.IEntry;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.util.Vector;
-
- class RealItemBlock {
- private Vector m_block;
- private int m_nTop;
- private int m_nNum;
- private String m_sFirstKey;
- private String m_sLastKey;
- private int m_nWidth;
- private boolean m_bNeedCalWidth;
-
- public int getNum() {
- return this.m_nNum;
- }
-
- public RealItemBlock(int var1, BlockContainer var2) {
- this.m_block = var2.getBlock();
- this.m_sFirstKey = var2.getFirstKey();
- this.m_sLastKey = var2.getLastKey();
- this.m_nTop = var1;
- this.m_nNum = this.m_block.size();
- this.m_bNeedCalWidth = true;
- }
-
- public IEntry getEntry(int var1) {
- int var2 = var1 - this.m_nTop;
- return var2 >= 0 && var2 < this.m_nNum ? (IEntry)this.m_block.elementAt(var2) : null;
- }
-
- public int getTop() {
- return this.m_nTop;
- }
-
- public void posChange(int var1) {
- this.m_nTop += var1;
- }
-
- protected int calWidth(Graphics var1) {
- int var2 = 0;
- int var3 = 0;
-
- for(int var4 = 0; var4 < this.m_block.size(); ++var4) {
- IEntry var5 = (IEntry)this.m_block.elementAt(var4);
- var3 = var5.getWidth(var1);
- if (var3 > var2) {
- var2 = var3;
- }
- }
-
- return var2;
- }
-
- public int getClosestEntryId(String var1) {
- if (Language.compare(this.m_sFirstKey, var1) > 0) {
- return -1;
- } else if (Language.compare(this.m_sLastKey, var1) < 0) {
- return this.m_nNum;
- } else {
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
-
- IEntry var5;
- do {
- var5 = (IEntry)this.m_block.elementAt(var4);
- if (Language.compare(var5.getName(), var1) >= 0 && var5.isMainEntry()) {
- break;
- }
-
- var3 = var4;
- var4 += var5.getNextSpan() + 1;
- } while(var4 < this.m_block.size());
-
- if (Language.compare(var5.getName(), var1) == 0) {
- var2 = var4;
- } else if (var5.getName().length() > var1.length() && Language.compare(var5.getName().substring(0, var1.length()), var1) == 0) {
- var2 = var4;
- } else {
- var2 = var3;
- }
-
- return var2;
- }
- }
-
- public String getLastKey() {
- return this.m_sLastKey;
- }
-
- public void display(Graphics var1, int var2, int var3, int var4, Color var5, Image var6) {
- int var7 = var2 - this.m_nTop;
- int var8 = var7 > 0 ? var7 : 0;
- int var9 = var3 + var7 < this.m_nNum ? var3 + var7 : this.m_nNum;
-
- for(int var10 = var8; var10 < var9; ++var10) {
- IEntry var11 = (IEntry)this.m_block.elementAt(var10);
- var11.display(var1, var10 - var7, var4, var5, var6);
- }
-
- }
-
- public String getFirstKey() {
- return this.m_sFirstKey;
- }
-
- public int getWidth(Graphics var1) {
- if (this.m_bNeedCalWidth) {
- this.m_nWidth = this.calWidth(var1);
- this.m_bNeedCalWidth = false;
- }
-
- return this.m_nWidth;
- }
- }
-