home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import javax.swing.text.MutableAttributeSet;
- import javax.swing.text.html.CSS.Attribute;
-
- class CSS$ShorthandFontParser {
- static void parseShorthandFont(CSS var0, String var1, MutableAttributeSet var2) {
- String[] var3 = CSS.parseStrings(var1);
- int var4 = var3.length;
- int var5 = 0;
- short var6 = 0;
- int var7 = Math.min(3, var4);
-
- while(var5 < var7) {
- if ((var6 & 1) == 0 && isFontStyle(var3[var5])) {
- var0.addInternalCSSValue(var2, Attribute.FONT_STYLE, var3[var5++]);
- var6 = (short)(var6 | 1);
- } else if ((var6 & 2) == 0 && isFontVariant(var3[var5])) {
- var0.addInternalCSSValue(var2, Attribute.FONT_VARIANT, var3[var5++]);
- var6 = (short)(var6 | 2);
- } else if ((var6 & 4) == 0 && isFontWeight(var3[var5])) {
- var0.addInternalCSSValue(var2, Attribute.FONT_WEIGHT, var3[var5++]);
- var6 = (short)(var6 | 4);
- } else {
- if (!var3[var5].equals("normal")) {
- break;
- }
-
- ++var5;
- }
- }
-
- if ((var6 & 1) == 0) {
- var0.addInternalCSSValue(var2, Attribute.FONT_STYLE, "normal");
- }
-
- if ((var6 & 2) == 0) {
- var0.addInternalCSSValue(var2, Attribute.FONT_VARIANT, "normal");
- }
-
- if ((var6 & 4) == 0) {
- var0.addInternalCSSValue(var2, Attribute.FONT_WEIGHT, "normal");
- }
-
- if (var5 < var4) {
- String var8 = var3[var5];
- int var9 = var8.indexOf(47);
- if (var9 != -1) {
- var8 = var8.substring(0, var9);
- var3[var5] = var3[var5].substring(var9);
- } else {
- ++var5;
- }
-
- var0.addInternalCSSValue(var2, Attribute.FONT_SIZE, var8);
- } else {
- var0.addInternalCSSValue(var2, Attribute.FONT_SIZE, "medium");
- }
-
- if (var5 < var4 && var3[var5].startsWith("/")) {
- String var11 = null;
- if (var3[var5].equals("/")) {
- ++var5;
- if (var5 < var4) {
- var11 = var3[var5++];
- }
- } else {
- var11 = var3[var5++].substring(1);
- }
-
- if (var11 != null) {
- var0.addInternalCSSValue(var2, Attribute.LINE_HEIGHT, var11);
- } else {
- var0.addInternalCSSValue(var2, Attribute.LINE_HEIGHT, "normal");
- }
- } else {
- var0.addInternalCSSValue(var2, Attribute.LINE_HEIGHT, "normal");
- }
-
- if (var5 < var4) {
- String var12;
- for(var12 = var3[var5++]; var5 < var4; var12 = var12 + " " + var3[var5++]) {
- }
-
- var0.addInternalCSSValue(var2, Attribute.FONT_FAMILY, var12);
- } else {
- var0.addInternalCSSValue(var2, Attribute.FONT_FAMILY, "SansSerif");
- }
-
- }
-
- private static boolean isFontStyle(String var0) {
- return var0.equals("italic") || var0.equals("oblique");
- }
-
- private static boolean isFontVariant(String var0) {
- return var0.equals("small-caps");
- }
-
- private static boolean isFontWeight(String var0) {
- if (!var0.equals("bold") && !var0.equals("bolder") && !var0.equals("italic") && !var0.equals("lighter")) {
- return var0.length() == 3 && var0.charAt(0) >= '1' && var0.charAt(0) <= '9' && var0.charAt(1) == '0' && var0.charAt(2) == '0';
- } else {
- return true;
- }
- }
- }
-