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 / java / awt / font / TextJustifier.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.4 KB  |  164 lines

  1. package java.awt.font;
  2.  
  3. class TextJustifier {
  4.    private GlyphJustificationInfo[] info;
  5.    private int start;
  6.    private int limit;
  7.    static boolean DEBUG = false;
  8.    public static final int MAX_PRIORITY = 3;
  9.  
  10.    TextJustifier(GlyphJustificationInfo[] var1, int var2, int var3) {
  11.       this.info = var1;
  12.       this.start = var2;
  13.       this.limit = var3;
  14.       if (DEBUG) {
  15.          System.out.println("start: " + var2 + ", limit: " + var3);
  16.  
  17.          for(int var4 = var2; var4 < var3; ++var4) {
  18.             GlyphJustificationInfo var5 = var1[var4];
  19.             System.out.println("w: " + var5.weight + ", gp: " + var5.growPriority + ", gll: " + var5.growLeftLimit + ", grl: " + var5.growRightLimit);
  20.          }
  21.       }
  22.  
  23.    }
  24.  
  25.    public float[] justify(float var1) {
  26.       float[] var2 = new float[this.info.length * 2];
  27.       boolean var3 = var1 > 0.0F;
  28.       if (DEBUG) {
  29.          System.out.println("delta: " + var1);
  30.       }
  31.  
  32.       int var4 = -1;
  33.  
  34.       for(int var5 = 0; var1 != 0.0F; ++var5) {
  35.          boolean var6 = var5 > 3;
  36.          if (var6) {
  37.             var5 = var4;
  38.          }
  39.  
  40.          float var7 = 0.0F;
  41.          float var8 = 0.0F;
  42.          float var9 = 0.0F;
  43.  
  44.          for(int var10 = this.start; var10 < this.limit; ++var10) {
  45.             GlyphJustificationInfo var11 = this.info[var10];
  46.             if ((var3 ? var11.growPriority : var11.shrinkPriority) == var5) {
  47.                if (var4 == -1) {
  48.                   var4 = var5;
  49.                }
  50.  
  51.                if (var10 != this.start) {
  52.                   var7 += var11.weight;
  53.                   if (var3) {
  54.                      var8 += var11.growLeftLimit;
  55.                      if (var11.growAbsorb) {
  56.                         var9 += var11.weight;
  57.                      }
  58.                   } else {
  59.                      var8 += var11.shrinkLeftLimit;
  60.                      if (var11.shrinkAbsorb) {
  61.                         var9 += var11.weight;
  62.                      }
  63.                   }
  64.                }
  65.  
  66.                if (var10 + 1 != this.limit) {
  67.                   var7 += var11.weight;
  68.                   if (var3) {
  69.                      var8 += var11.growRightLimit;
  70.                      if (var11.growAbsorb) {
  71.                         var9 += var11.weight;
  72.                      }
  73.                   } else {
  74.                      var8 += var11.shrinkRightLimit;
  75.                      if (var11.shrinkAbsorb) {
  76.                         var9 += var11.weight;
  77.                      }
  78.                   }
  79.                }
  80.             }
  81.          }
  82.  
  83.          if (!var3) {
  84.             var8 = -var8;
  85.          }
  86.  
  87.          boolean var21 = var7 == 0.0F || !var6 && var1 < 0.0F == var1 < var8;
  88.          boolean var12 = var21 && var9 > 0.0F;
  89.          float var13 = var1 / var7;
  90.          float var14 = 0.0F;
  91.          if (var21 && var9 > 0.0F) {
  92.             var14 = (var1 - var8) / var9;
  93.          }
  94.  
  95.          if (DEBUG) {
  96.             System.out.println("pass: " + var5 + ", d: " + var1 + ", l: " + var8 + ", w: " + var7 + ", aw: " + var9 + ", wd: " + var13 + ", wa: " + var14 + ", hit: " + (var21 ? "y" : "n"));
  97.          }
  98.  
  99.          int var15 = this.start * 2;
  100.  
  101.          for(int var16 = this.start; var16 < this.limit; ++var16) {
  102.             GlyphJustificationInfo var17 = this.info[var16];
  103.             if ((var3 ? var17.growPriority : var17.shrinkPriority) == var5) {
  104.                if (var16 != this.start) {
  105.                   float var18;
  106.                   if (var21) {
  107.                      var18 = var3 ? var17.growLeftLimit : -var17.shrinkLeftLimit;
  108.                      if (var12) {
  109.                         var18 += var17.weight * var14;
  110.                      }
  111.                   } else {
  112.                      var18 = var17.weight * var13;
  113.                   }
  114.  
  115.                   var2[var15] += var18;
  116.                }
  117.  
  118.                ++var15;
  119.                if (var16 + 1 != this.limit) {
  120.                   float var23;
  121.                   if (var21) {
  122.                      var23 = var3 ? var17.growRightLimit : -var17.shrinkRightLimit;
  123.                      if (var12) {
  124.                         var23 += var17.weight * var14;
  125.                      }
  126.                   } else {
  127.                      var23 = var17.weight * var13;
  128.                   }
  129.  
  130.                   var2[var15] += var23;
  131.                }
  132.  
  133.                ++var15;
  134.             } else {
  135.                var15 += 2;
  136.             }
  137.          }
  138.  
  139.          if (!var6 && var21 && !var12) {
  140.             var1 -= var8;
  141.          } else {
  142.             var1 = 0.0F;
  143.          }
  144.       }
  145.  
  146.       if (DEBUG) {
  147.          float var19 = 0.0F;
  148.  
  149.          for(int var20 = 0; var20 < var2.length; ++var20) {
  150.             var19 += var2[var20];
  151.             System.out.print(var2[var20] + ", ");
  152.             if (var20 % 20 == 9) {
  153.                System.out.println();
  154.             }
  155.          }
  156.  
  157.          System.out.println("\ntotal: " + var19);
  158.          System.out.println();
  159.       }
  160.  
  161.       return var2;
  162.    }
  163. }
  164.