home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / text / html / StyleSheet.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  3.0 KB  |  185 lines

  1. package com.sun.java.swing.text.html;
  2.  
  3. import com.sun.java.swing.text.Style;
  4. import com.sun.java.swing.text.StyleConstants;
  5. import java.util.StringTokenizer;
  6.  
  7. class StyleSheet implements HTMLDefs {
  8.    public static final int DEFAULT_FONT_SIZE = 3;
  9.    private int baseFontIndex;
  10.    private int baseFontSize;
  11.    private int docPtSize;
  12.    private int docIndex;
  13.    static int[] sizeMap;
  14.  
  15.    public StyleSheet(Style var1) {
  16.       this.docPtSize = StyleConstants.getFontSize(var1);
  17.       this.baseFontIndex = getIndexOfSize(this.docPtSize);
  18.       this.baseFontSize = 3;
  19.       this.setPtSize(this.docPtSize);
  20.    }
  21.  
  22.    public StyleSheet() {
  23.       this.docPtSize = 12;
  24.       this.baseFontIndex = getIndexOfSize(this.docPtSize);
  25.       this.baseFontSize = 3;
  26.       this.setPtSize(this.docPtSize);
  27.    }
  28.  
  29.    public void setFontSizes(String var1) {
  30.       int[] var2 = new int[32];
  31.       StringTokenizer var3 = new StringTokenizer(var1, ". \t\n");
  32.  
  33.       int var4;
  34.       for(var4 = 0; var4 < var2.length && var3.hasMoreTokens(); var2[var4++] = Integer.valueOf(var3.nextToken())) {
  35.       }
  36.  
  37.       sizeMap = new int[var4];
  38.       System.arraycopy(var2, 0, sizeMap, 0, var4);
  39.       this.baseFontIndex = getIndexOfSize(this.docPtSize);
  40.       this.setPtSize(this.docPtSize);
  41.    }
  42.  
  43.    public void setBaseFontSize(int var1) {
  44.       if (var1 < 1) {
  45.          this.baseFontSize = 0;
  46.       } else if (var1 > 7) {
  47.          this.baseFontSize = 7;
  48.       } else {
  49.          this.baseFontSize = var1;
  50.       }
  51.  
  52.       int var2 = this.baseFontSize - 3;
  53.       this.baseFontIndex = this.docIndex + var2;
  54.       if (this.baseFontIndex > sizeMap.length - 1) {
  55.          this.baseFontIndex = sizeMap.length - 1;
  56.       } else {
  57.          if (this.baseFontIndex < 0) {
  58.             this.baseFontIndex = 0;
  59.          }
  60.  
  61.       }
  62.    }
  63.  
  64.    public void setBaseFontSize(String var1) {
  65.       if (var1 != null) {
  66.          if (var1.startsWith("+")) {
  67.             int var2 = Integer.valueOf(var1.substring(1));
  68.             int var3 = 3 - (this.baseFontSize + var2);
  69.             this.baseFontIndex = this.docIndex + var3;
  70.          } else if (var1.startsWith("-")) {
  71.             int var4 = -Integer.valueOf(var1.substring(1));
  72.             int var5 = 3 - (this.baseFontSize + var4);
  73.             this.baseFontIndex = this.docIndex + var5;
  74.          } else {
  75.             this.setBaseFontSize(Integer.valueOf(var1));
  76.             int var6 = this.baseFontSize - 3;
  77.             this.baseFontIndex = this.docIndex + var6;
  78.          }
  79.       }
  80.  
  81.       if (this.baseFontIndex > sizeMap.length - 1) {
  82.          this.baseFontIndex = sizeMap.length - 1;
  83.       } else {
  84.          if (this.baseFontIndex < 0) {
  85.             this.baseFontIndex = 0;
  86.          }
  87.  
  88.       }
  89.    }
  90.  
  91.    public static int getIndexOfSize(int var0) {
  92.       for(int var1 = 0; var1 < sizeMap.length; ++var1) {
  93.          if (var0 <= sizeMap[var1]) {
  94.             return var1;
  95.          }
  96.       }
  97.  
  98.       return sizeMap.length - 1;
  99.    }
  100.  
  101.    public int getPtSize(int var1) {
  102.       if (var1 < 0) {
  103.          return sizeMap[0];
  104.       } else {
  105.          return var1 > sizeMap.length - 1 ? sizeMap[sizeMap.length - 1] : sizeMap[var1];
  106.       }
  107.    }
  108.  
  109.    public int getPtSize(String var1) {
  110.       if (var1 != null) {
  111.          int var5;
  112.          if (var1.startsWith("+")) {
  113.             int var2 = Integer.valueOf(var1.substring(1));
  114.             int var4 = this.baseFontSize + var2 - 3;
  115.             var5 = this.docIndex + var4;
  116.          } else if (var1.startsWith("-")) {
  117.             int var6 = -Integer.valueOf(var1.substring(1));
  118.             int var7 = this.baseFontSize + var6 - 3;
  119.             var5 = this.docIndex + var7;
  120.          } else {
  121.             int var3 = Integer.valueOf(var1);
  122.             int var8 = var3 - 3;
  123.             var5 = this.docIndex + var8;
  124.          }
  125.  
  126.          if (var5 > sizeMap.length - 1) {
  127.             var5 = sizeMap.length - 1;
  128.          } else if (var5 < 0) {
  129.             var5 = 0;
  130.          }
  131.  
  132.          return sizeMap[var5];
  133.       } else {
  134.          return sizeMap[this.baseFontIndex];
  135.       }
  136.    }
  137.  
  138.    public void setPtSize(int var1) {
  139.       this.docPtSize = var1;
  140.       this.docIndex = getIndexOfSize(this.docPtSize);
  141.       int var2 = this.baseFontSize - 3;
  142.       this.baseFontIndex = this.docIndex + var2;
  143.    }
  144.  
  145.    public int getBigger(int var1) {
  146.       int var2 = getIndexOfSize(var1);
  147.       if (var2 + 1 > sizeMap.length - 1) {
  148.          var2 = sizeMap.length - 1;
  149.       } else {
  150.          ++var2;
  151.       }
  152.  
  153.       return sizeMap[var2];
  154.    }
  155.  
  156.    public int getSmaller(int var1) {
  157.       int var2 = getIndexOfSize(var1);
  158.       if (var2 - 1 < 0) {
  159.          var2 = 0;
  160.       } else {
  161.          --var2;
  162.       }
  163.  
  164.       return sizeMap[var2];
  165.    }
  166.  
  167.    public int getRelSize(int var1) {
  168.       int var2 = getIndexOfSize(var1);
  169.       return var2 - this.baseFontIndex;
  170.    }
  171.  
  172.    static {
  173.       int[] var0 = new int[32];
  174.       String var1 = "7,8,9,10,12,14,16,18,20,22,24,26,28";
  175.       StringTokenizer var2 = new StringTokenizer(var1, ", \t\n");
  176.  
  177.       int var3;
  178.       for(var3 = 0; var3 < var0.length && var2.hasMoreTokens(); var0[var3++] = Integer.valueOf(var2.nextToken())) {
  179.       }
  180.  
  181.       sizeMap = new int[var3];
  182.       System.arraycopy(var0, 0, sizeMap, 0, var3);
  183.    }
  184. }
  185.