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 / javax / swing / text / html / CSS$ShorthandFontParser.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.1 KB  |  108 lines

  1. package javax.swing.text.html;
  2.  
  3. import javax.swing.text.MutableAttributeSet;
  4. import javax.swing.text.html.CSS.Attribute;
  5.  
  6. class CSS$ShorthandFontParser {
  7.    static void parseShorthandFont(CSS var0, String var1, MutableAttributeSet var2) {
  8.       String[] var3 = CSS.parseStrings(var1);
  9.       int var4 = var3.length;
  10.       int var5 = 0;
  11.       short var6 = 0;
  12.       int var7 = Math.min(3, var4);
  13.  
  14.       while(var5 < var7) {
  15.          if ((var6 & 1) == 0 && isFontStyle(var3[var5])) {
  16.             var0.addInternalCSSValue(var2, Attribute.FONT_STYLE, var3[var5++]);
  17.             var6 = (short)(var6 | 1);
  18.          } else if ((var6 & 2) == 0 && isFontVariant(var3[var5])) {
  19.             var0.addInternalCSSValue(var2, Attribute.FONT_VARIANT, var3[var5++]);
  20.             var6 = (short)(var6 | 2);
  21.          } else if ((var6 & 4) == 0 && isFontWeight(var3[var5])) {
  22.             var0.addInternalCSSValue(var2, Attribute.FONT_WEIGHT, var3[var5++]);
  23.             var6 = (short)(var6 | 4);
  24.          } else {
  25.             if (!var3[var5].equals("normal")) {
  26.                break;
  27.             }
  28.  
  29.             ++var5;
  30.          }
  31.       }
  32.  
  33.       if ((var6 & 1) == 0) {
  34.          var0.addInternalCSSValue(var2, Attribute.FONT_STYLE, "normal");
  35.       }
  36.  
  37.       if ((var6 & 2) == 0) {
  38.          var0.addInternalCSSValue(var2, Attribute.FONT_VARIANT, "normal");
  39.       }
  40.  
  41.       if ((var6 & 4) == 0) {
  42.          var0.addInternalCSSValue(var2, Attribute.FONT_WEIGHT, "normal");
  43.       }
  44.  
  45.       if (var5 < var4) {
  46.          String var8 = var3[var5];
  47.          int var9 = var8.indexOf(47);
  48.          if (var9 != -1) {
  49.             var8 = var8.substring(0, var9);
  50.             var3[var5] = var3[var5].substring(var9);
  51.          } else {
  52.             ++var5;
  53.          }
  54.  
  55.          var0.addInternalCSSValue(var2, Attribute.FONT_SIZE, var8);
  56.       } else {
  57.          var0.addInternalCSSValue(var2, Attribute.FONT_SIZE, "medium");
  58.       }
  59.  
  60.       if (var5 < var4 && var3[var5].startsWith("/")) {
  61.          String var11 = null;
  62.          if (var3[var5].equals("/")) {
  63.             ++var5;
  64.             if (var5 < var4) {
  65.                var11 = var3[var5++];
  66.             }
  67.          } else {
  68.             var11 = var3[var5++].substring(1);
  69.          }
  70.  
  71.          if (var11 != null) {
  72.             var0.addInternalCSSValue(var2, Attribute.LINE_HEIGHT, var11);
  73.          } else {
  74.             var0.addInternalCSSValue(var2, Attribute.LINE_HEIGHT, "normal");
  75.          }
  76.       } else {
  77.          var0.addInternalCSSValue(var2, Attribute.LINE_HEIGHT, "normal");
  78.       }
  79.  
  80.       if (var5 < var4) {
  81.          String var12;
  82.          for(var12 = var3[var5++]; var5 < var4; var12 = var12 + " " + var3[var5++]) {
  83.          }
  84.  
  85.          var0.addInternalCSSValue(var2, Attribute.FONT_FAMILY, var12);
  86.       } else {
  87.          var0.addInternalCSSValue(var2, Attribute.FONT_FAMILY, "SansSerif");
  88.       }
  89.  
  90.    }
  91.  
  92.    private static boolean isFontStyle(String var0) {
  93.       return var0.equals("italic") || var0.equals("oblique");
  94.    }
  95.  
  96.    private static boolean isFontVariant(String var0) {
  97.       return var0.equals("small-caps");
  98.    }
  99.  
  100.    private static boolean isFontWeight(String var0) {
  101.       if (!var0.equals("bold") && !var0.equals("bolder") && !var0.equals("italic") && !var0.equals("lighter")) {
  102.          return var0.length() == 3 && var0.charAt(0) >= '1' && var0.charAt(0) <= '9' && var0.charAt(1) == '0' && var0.charAt(2) == '0';
  103.       } else {
  104.          return true;
  105.       }
  106.    }
  107. }
  108.