home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.text.html;
-
- import com.sun.java.swing.text.AttributeSet;
- import com.sun.java.swing.text.Style;
- import com.sun.java.swing.text.StyleConstants;
- import java.awt.Color;
- import java.util.StringTokenizer;
-
- class StyleXlater implements HTMLDefs, StyleDefs {
- public StyleXlater() {
- }
-
- public static void translateProperty(StyleSheet var0, Style var1, String var2, String var3) {
- HTMLDebug.println("StyleXlater:translateProperty - name = " + var2 + " value = " + var3);
- String var4 = HTMLUtils.removeSurroundingQuotes(var3);
- if (var2.equalsIgnoreCase("font-family")) {
- if (!var4.equalsIgnoreCase("monospace") && !var4.equalsIgnoreCase("monospaced") && !var4.equalsIgnoreCase("typewriter")) {
- StyleConstants.setFontFamily(var1, var4);
- } else {
- StyleConstants.setFontFamily(var1, "Monospaced");
- }
- } else if (var2.equalsIgnoreCase("font-size")) {
- setFontSize(var4, var1, var0);
- } else if (var2.equalsIgnoreCase("font-weight")) {
- setFontStyle(var4, var1);
- } else if (var2.equalsIgnoreCase("font-style")) {
- setFontStyle(var4, var1);
- } else if (var2.equalsIgnoreCase("margin-top")) {
- StyleConstants.setSpaceAbove(var1, (float)Integer.valueOf(var4));
- } else if (var2.equalsIgnoreCase("margin-bottom")) {
- StyleConstants.setSpaceBelow(var1, (float)Integer.valueOf(var4));
- } else if (var2.equalsIgnoreCase("margin-left")) {
- StyleConstants.setLeftIndent(var1, (float)Integer.valueOf(var4));
- } else if (var2.equalsIgnoreCase("margin-right")) {
- StyleConstants.setRightIndent(var1, (float)Integer.valueOf(var4));
- } else if (var2.equalsIgnoreCase("text-decoration")) {
- setTextDecoration(var4, var1);
- } else if (var2.equalsIgnoreCase("text-align")) {
- setTextAlignment(var4, var1);
- } else if (var2.equalsIgnoreCase("color")) {
- setForegroundColor(var4, var1);
- } else if (!var2.equalsIgnoreCase("list-style-type") && !var2.equalsIgnoreCase("list-style-image")) {
- if (var2.equalsIgnoreCase("font-sizes")) {
- var0.setFontSizes(var4);
- } else {
- var1.addAttribute(var2.toLowerCase(), var4);
- HTMLDebug.println("StyleXlater - Warning! Unimplemented attribute: " + var2);
- }
- } else {
- var1.addAttribute(var2.toLowerCase(), var4);
- }
- }
-
- static String convertFontSizeString(String var0) {
- if (!var0.equalsIgnoreCase("xx-small") && !var0.equalsIgnoreCase("xxsmall")) {
- if (!var0.equalsIgnoreCase("x-small") && !var0.equalsIgnoreCase("xsmall")) {
- if (var0.equalsIgnoreCase("small")) {
- return "-1";
- } else if (var0.equalsIgnoreCase("medium")) {
- return "+0";
- } else if (var0.equalsIgnoreCase("large")) {
- return "+1";
- } else if (!var0.equalsIgnoreCase("x-large") && !var0.equalsIgnoreCase("xlarge")) {
- if (!var0.equalsIgnoreCase("xx-large") && !var0.equalsIgnoreCase("xxlarge")) {
- System.out.println("StyleXlater.convertFontSizeString - Warning! Unimplemented font size value: " + var0);
- return "0";
- } else {
- return "+3";
- }
- } else {
- return "+2";
- }
- } else {
- return "-2";
- }
- } else {
- return "-3";
- }
- }
-
- static void setFontStyle(String var0, Style var1) {
- if (var0 != null) {
- if (!var0.equalsIgnoreCase("bold") && !var0.equals("bolder")) {
- if (var0.equalsIgnoreCase("italic")) {
- StyleConstants.setItalic(var1, true);
- } else if (!var0.equalsIgnoreCase("typewriter") && !var0.equalsIgnoreCase("monospace") && !var0.equalsIgnoreCase("monospaced")) {
- if (var0.equalsIgnoreCase("bolditalic")) {
- StyleConstants.setBold(var1, true);
- StyleConstants.setItalic(var1, true);
- } else {
- if (!var0.equalsIgnoreCase("normal")) {
- if (var0.equalsIgnoreCase("light") || var0.equals("lighter") || var0.equalsIgnoreCase("oblique")) {
- HTMLDebug.println("StyleXlater.setFontStyle: Unsupported font style:" + var0);
- return;
- }
-
- HTMLDebug.println("StyleXlater.setFontStyle: Unimplemented font style:" + var0);
- }
-
- }
- } else {
- StyleConstants.setFontFamily(var1, "Monospaced");
- }
- } else {
- StyleConstants.setBold(var1, true);
- }
- }
- }
-
- static void setTextDecoration(String var0, Style var1) {
- if (var0.equalsIgnoreCase("underline")) {
- StyleConstants.setUnderline(var1, true);
- }
-
- }
-
- static void setTextAlignment(String var0, Style var1) {
- if (var0.equalsIgnoreCase("left")) {
- StyleConstants.setAlignment(var1, 0);
- } else if (var0.equalsIgnoreCase("center")) {
- StyleConstants.setAlignment(var1, 1);
- } else if (var0.equalsIgnoreCase("right")) {
- StyleConstants.setAlignment(var1, 2);
- } else if (var0.equalsIgnoreCase("justify")) {
- StyleConstants.setAlignment(var1, 3);
- } else {
- System.out.println("HTMXlater.translateProperty: Unsupported property value: " + var0);
- }
- }
-
- static void setForegroundColor(String var0, Style var1) {
- if (var0.startsWith("#")) {
- Color var11;
- try {
- var11 = HTMLUtils.stringToColor(var0);
- } catch (HTMLException var8) {
- System.out.println("StyleXlater.translateProperty: " + var0 + " " + var8);
- return;
- }
-
- StyleConstants.setForeground(var1, var11);
- } else {
- if (!var0.startsWith("rgb") && !var0.startsWith("RGB")) {
- Color var10;
- try {
- var10 = HTMLUtils.stringToColor(var0);
- } catch (HTMLException var9) {
- System.out.println("StyleXlater.translateProperty: " + var0 + " " + var9);
- return;
- }
-
- StyleConstants.setForeground(var1, var10);
- } else {
- int var3 = var0.indexOf("(");
- StringTokenizer var4 = new StringTokenizer(var0.substring(var3 + 1, var0.length() - 1), ", \t \n");
- int var5 = 0;
-
- int[] var6;
- for(var6 = new int[3]; var5 < var6.length && var4.hasMoreTokens(); ++var5) {
- String var7 = var4.nextToken();
- if (var7.endsWith("%")) {
- var6[var5] = Integer.valueOf(var7.substring(0, var7.length() - 1)) * 255 / 100;
- } else {
- var6[var5] = Integer.valueOf(var7);
- }
- }
-
- if (var5 == 3) {
- Color var2 = new Color(var6[0], var6[1], var6[2]);
- StyleConstants.setForeground(var1, var2);
- return;
- }
- }
-
- }
- }
-
- static void setFontSize(String var0, Style var1, StyleSheet var2) {
- int var3 = 0;
- StringTokenizer var4 = new StringTokenizer(var0, "0123456789");
- if (var4.countTokens() == 0) {
- var3 = Integer.valueOf(var0);
- StyleConstants.setFontSize(var1, var3);
- } else if ((var0.startsWith("+") || var0.startsWith("-")) && var0.endsWith("pt")) {
- System.out.println("StyleXlater.translateAttribute: Unimplemented font-size value " + var0);
- } else if (var0.toLowerCase().endsWith("pt")) {
- var3 = Integer.valueOf(var0.substring(0, var0.length() - 2));
- StyleConstants.setFontSize(var1, var3);
- } else {
- String var5 = convertFontSizeString(var0);
- var3 = var2.getPtSize(var5);
- StyleConstants.setFontSize(var1, var3);
- }
-
- String var6 = (String)var1.getAttribute(AttributeSet.NameAttribute);
- if (var3 != 0 && var6 != null && (var6.equals("body") || var6.equals("default"))) {
- var2.setPtSize(var3);
- }
-
- }
- }
-