home *** CD-ROM | disk | FTP | other *** search
Wrap
package javax.swing.text.html; import java.awt.Color; import java.awt.Font; import java.awt.Toolkit; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.lang.reflect.Method; import java.net.MalformedURLException; import java.net.URL; import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; import javax.swing.SizeRequirements; import javax.swing.text.AttributeSet; import javax.swing.text.Element; import javax.swing.text.MutableAttributeSet; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import javax.swing.text.StyleContext; import javax.swing.text.View; import javax.swing.text.html.HTML.Tag; public class CSS implements Serializable { private static final Hashtable attributeMap = new Hashtable(); private static final Hashtable valueMap = new Hashtable(); static int[] sizeMap = new int[]{8, 10, 12, 14, 18, 24, 36}; private static final Hashtable htmlAttrToCssAttrMap = new Hashtable(20); private static final Hashtable styleConstantToCssMap = new Hashtable(17); private static final Hashtable htmlValueToCssValueMap = new Hashtable(8); private static final Hashtable cssValueToInternalValueMap = new Hashtable(13); private static Hashtable fontMapping; private static final Object fontMappingLock = new Object(); private transient Hashtable valueConvertor = new Hashtable(); private int baseFontSize = 3; public CSS() { this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.FONT_SIZE, new FontSize(this)); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.FONT_FAMILY, new FontFamily()); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.FONT_WEIGHT, new FontWeight()); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_STYLE, new BorderStyle()); ColorValue var1 = new ColorValue(); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.COLOR, var1); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BACKGROUND_COLOR, var1); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_COLOR, var1); LengthValue var2 = new LengthValue(); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.MARGIN_TOP, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.MARGIN_BOTTOM, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.MARGIN_LEFT, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.MARGIN_RIGHT, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.PADDING_TOP, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.PADDING_BOTTOM, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.PADDING_LEFT, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.PADDING_RIGHT, var2); BorderWidthValue var3 = new BorderWidthValue((String)null, 0); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_WIDTH, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_TOP_WIDTH, var3); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_BOTTOM_WIDTH, var3); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_LEFT_WIDTH, var3); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_RIGHT_WIDTH, var3); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.TEXT_INDENT, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.WIDTH, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.HEIGHT, var2); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BORDER_SPACING, var2); StringValue var4 = new StringValue(); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.FONT_STYLE, var4); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.TEXT_DECORATION, var4); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.TEXT_ALIGN, var4); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.VERTICAL_ALIGN, var4); CssValueMapper var5 = new CssValueMapper(); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.LIST_STYLE_TYPE, var5); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BACKGROUND_IMAGE, new BackgroundImage()); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BACKGROUND_POSITION, new BackgroundPosition()); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BACKGROUND_REPEAT, var5); this.valueConvertor.put(javax.swing.text.html.CSS.Attribute.BACKGROUND_ATTACHMENT, var5); CssValue var6 = new CssValue(); int var7 = javax.swing.text.html.CSS.Attribute.allAttributes.length; for(int var8 = 0; var8 < var7; ++var8) { Attribute var9 = javax.swing.text.html.CSS.Attribute.allAttributes[var8]; if (this.valueConvertor.get(var9) == null) { this.valueConvertor.put(var9, var6); } } } void setBaseFontSize(int var1) { if (var1 < 1) { this.baseFontSize = 0; } else if (var1 > 7) { this.baseFontSize = 7; } else { this.baseFontSize = var1; } } void setBaseFontSize(String var1) { if (var1 != null) { if (var1.startsWith("+")) { int var2 = Integer.valueOf(var1.substring(1)); this.setBaseFontSize(this.baseFontSize + var2); } else if (var1.startsWith("-")) { int var5 = -Integer.valueOf(var1.substring(1)); this.setBaseFontSize(this.baseFontSize + var5); } else { this.setBaseFontSize(Integer.valueOf(var1)); } } } int getBaseFontSize() { return this.baseFontSize; } void addInternalCSSValue(MutableAttributeSet var1, Attribute var2, String var3) { if (var2 == javax.swing.text.html.CSS.Attribute.FONT) { javax.swing.text.html.CSS.ShorthandFontParser.parseShorthandFont(this, var3, var1); } else if (var2 == javax.swing.text.html.CSS.Attribute.BACKGROUND) { javax.swing.text.html.CSS.ShorthandBackgroundParser.parseShorthandBackground(this, var3, var1); } else if (var2 == javax.swing.text.html.CSS.Attribute.MARGIN) { javax.swing.text.html.CSS.ShorthandMarginParser.parseShorthandMargin(this, var3, var1, javax.swing.text.html.CSS.Attribute.access$000()); } else if (var2 == javax.swing.text.html.CSS.Attribute.PADDING) { javax.swing.text.html.CSS.ShorthandMarginParser.parseShorthandMargin(this, var3, var1, javax.swing.text.html.CSS.Attribute.access$100()); } else if (var2 == javax.swing.text.html.CSS.Attribute.BORDER_WIDTH) { javax.swing.text.html.CSS.ShorthandMarginParser.parseShorthandMargin(this, var3, var1, javax.swing.text.html.CSS.Attribute.access$200()); } else { Object var4 = this.getInternalCSSValue(var2, var3); if (var4 != null) { var1.addAttribute(var2, var4); } } } Object getInternalCSSValue(Attribute var1, String var2) { CssValue var3 = (CssValue)this.valueConvertor.get(var1); return var3.parseCssValue(var2); } Attribute styleConstantsKeyToCSSKey(StyleConstants var1) { return (Attribute)styleConstantToCssMap.get(var1); } Object styleConstantsValueToCSSValue(StyleConstants var1, Object var2) { Attribute var3 = this.styleConstantsKeyToCSSKey(var1); if (var3 != null) { CssValue var4 = (CssValue)this.valueConvertor.get(var3); return var4.fromStyleConstants(var1, var2); } else { return null; } } Object cssValueToStyleConstantsValue(StyleConstants var1, Object var2) { return var2 instanceof CssValue ? ((CssValue)var2).toStyleConstants(var1, (View)null) : null; } Font getFont(StyleContext var1, AttributeSet var2, int var3) { int var4 = getFontSize(var2, var3); StringValue var5 = (StringValue)var2.getAttribute(javax.swing.text.html.CSS.Attribute.VERTICAL_ALIGN); if (var5 != null) { String var6 = ((CssValue)var5).toString(); if (var6.indexOf("sup") >= 0 || var6.indexOf("sub") >= 0) { var4 -= 2; } } FontFamily var12 = (FontFamily)var2.getAttribute(javax.swing.text.html.CSS.Attribute.FONT_FAMILY); String var7 = var12 != null ? var12.getValue() : "SansSerif"; int var8 = 0; FontWeight var9 = (FontWeight)var2.getAttribute(javax.swing.text.html.CSS.Attribute.FONT_WEIGHT); if (var9 != null && var9.getValue() > 400) { var8 |= 1; } Object var10 = var2.getAttribute(javax.swing.text.html.CSS.Attribute.FONT_STYLE); if (var10 != null && var10.toString().indexOf("italic") >= 0) { var8 |= 2; } Font var11 = var1.getFont(var7, var8, var4); return var11; } static int getFontSize(AttributeSet var0, int var1) { FontSize var2 = (FontSize)var0.getAttribute(javax.swing.text.html.CSS.Attribute.FONT_SIZE); return var2 != null ? (int)var2.getValue(var0) : var1; } Color getColor(AttributeSet var1, Attribute var2) { ColorValue var3 = (ColorValue)var1.getAttribute(var2); return var3 != null ? var3.getValue() : null; } float getPointSize(String var1) { if (var1 != null) { if (var1.startsWith("+")) { int var6 = Integer.valueOf(var1.substring(1)); return this.getPointSize(this.baseFontSize + var6); } else if (var1.startsWith("-")) { int var2 = -Integer.valueOf(var1.substring(1)); return this.getPointSize(this.baseFontSize + var2); } else { int var3 = Integer.valueOf(var1); return this.getPointSize(var3); } } else { return 0.0F; } } float getLength(AttributeSet var1, Attribute var2) { LengthValue var3 = (LengthValue)var1.getAttribute(var2); float var4 = var3 != null ? var3.getValue() : 0.0F; return var4; } AttributeSet translateHTMLToCSS(AttributeSet var1) { SimpleAttributeSet var2 = new SimpleAttributeSet(); Element var3 = (Element)var1; HTML.Tag var4 = this.getHTMLTag(var1); if (var4 == Tag.TD || var4 == Tag.TH) { AttributeSet var5 = var3.getParentElement().getParentElement().getAttributes(); this.translateAttribute(javax.swing.text.html.HTML.Attribute.BORDER, var5, var2); String var6 = (String)var5.getAttribute(javax.swing.text.html.HTML.Attribute.CELLPADDING); if (var6 != null) { Object var7 = this.getInternalCSSValue(javax.swing.text.html.CSS.Attribute.PADDING_TOP, var6); var2.addAttribute(javax.swing.text.html.CSS.Attribute.PADDING_TOP, var7); var2.addAttribute(javax.swing.text.html.CSS.Attribute.PADDING_BOTTOM, var7); var2.addAttribute(javax.swing.text.html.CSS.Attribute.PADDING_LEFT, var7); var2.addAttribute(javax.swing.text.html.CSS.Attribute.PADDING_RIGHT, var7); } } if (var3.isLeaf()) { this.translateEmbeddedAttributes(var1, var2); } else { this.translateAttributes(var4, var1, var2); } if (var4 == Tag.CAPTION) { Object var8 = var1.getAttribute(javax.swing.text.html.HTML.Attribute.ALIGN); if (var8 == null || !var8.equals("top") && !var8.equals("bottom")) { var8 = var1.getAttribute(javax.swing.text.html.HTML.Attribute.VALIGN); if (var8 != null) { var2.addAttribute(javax.swing.text.html.CSS.Attribute.CAPTION_SIDE, var8); } } else { var2.addAttribute(javax.swing.text.html.CSS.Attribute.CAPTION_SIDE, var8); var2.removeAttribute(javax.swing.text.html.CSS.Attribute.TEXT_ALIGN); } } return var2; } static Hashtable getValidFontNameMapping() { if (fontMapping == null) { Object var0 = fontMappingLock; synchronized(var0) { if (fontMapping == null) { String[] var1 = null; try { Class var2 = Class.forName("java.awt.GraphicsEnvironment"); if (var2 != null) { Method var3 = var2.getDeclaredMethod("getLocalGraphicsEnvironment", (Class[])null); if (var3 != null) { Object var4 = var3.invoke(var2, (Object[])null); if (var4 != null) { var3 = var2.getMethod("getAvailableFontFamilyNames", (Class[])null); if (var3 != null) { var1 = (String[])var3.invoke(var4, (Object[])null); } } } } } catch (Throwable var6) { } if (var1 == null) { var1 = Toolkit.getDefaultToolkit().getFontList(); } if (var1 != null) { fontMapping = new Hashtable(var1.length * 2); for(int var8 = var1.length - 1; var8 >= 0; --var8) { fontMapping.put(var1[var8].toLowerCase(), var1[var8]); fontMapping.put(var1[var8], var1[var8]); } } else { fontMapping = new Hashtable(1); } } } } return fontMapping; } public static Attribute[] getAllAttributeKeys() { Attribute[] var0 = new Attribute[javax.swing.text.html.CSS.Attribute.allAttributes.length]; System.arraycopy(javax.swing.text.html.CSS.Attribute.allAttributes, 0, var0, 0, javax.swing.text.html.CSS.Attribute.allAttributes.length); return var0; } public static final Attribute getAttribute(String var0) { return (Attribute)attributeMap.get(var0); } static final Value getValue(String var0) { return (Value)valueMap.get(var0); } static URL getURL(URL var0, String var1) { if (var1 == null) { return null; } else { if (var1.startsWith("url(") && var1.endsWith(")")) { var1 = var1.substring(4, var1.length() - 1); } try { URL var2 = new URL(var1); if (var2 != null) { return var2; } } catch (MalformedURLException var3) { } if (var0 != null) { try { URL var5 = new URL(var0, var1); return var5; } catch (MalformedURLException var4) { } } return null; } } static String colorToHex(Color var0) { String var1 = new String("#"); String var2 = Integer.toHexString(var0.getRed()); if (var2.length() > 2) { var2 = var2.substring(0, 2); } else if (var2.length() < 2) { var1 = var1 + "0" + var2; } else { var1 = var1 + var2; } var2 = Integer.toHexString(var0.getGreen()); if (var2.length() > 2) { var2 = var2.substring(0, 2); } else if (var2.length() < 2) { var1 = var1 + "0" + var2; } else { var1 = var1 + var2; } var2 = Integer.toHexString(var0.getBlue()); if (var2.length() > 2) { var2 = var2.substring(0, 2); } else if (var2.length() < 2) { var1 = var1 + "0" + var2; } else { var1 = var1 + var2; } return var1; } static final Color hexToColor(String var0) { int var2 = var0.length(); String var1; if (var0.startsWith("#")) { var1 = var0.substring(1, Math.min(var0.length(), 7)); } else { var1 = var0; } String var3 = "0x" + var1; Color var4; try { var4 = Color.decode(var3); } catch (NumberFormatException var6) { var4 = null; } return var4; } static Color stringToColor(String var0) { Object var1 = null; Color var2; if (var0.charAt(0) == '#') { var2 = hexToColor(var0); } else if (var0.equalsIgnoreCase("Black")) { var2 = hexToColor("#000000"); } else if (var0.equalsIgnoreCase("Silver")) { var2 = hexToColor("#C0C0C0"); } else if (var0.equalsIgnoreCase("Gray")) { var2 = hexToColor("#808080"); } else if (var0.equalsIgnoreCase("White")) { var2 = hexToColor("#FFFFFF"); } else if (var0.equalsIgnoreCase("Maroon")) { var2 = hexToColor("#800000"); } else if (var0.equalsIgnoreCase("Red")) { var2 = hexToColor("#FF0000"); } else if (var0.equalsIgnoreCase("Purple")) { var2 = hexToColor("#800080"); } else if (var0.equalsIgnoreCase("Fuchsia")) { var2 = hexToColor("#FF00FF"); } else if (var0.equalsIgnoreCase("Green")) { var2 = hexToColor("#008000"); } else if (var0.equalsIgnoreCase("Lime")) { var2 = hexToColor("#00FF00"); } else if (var0.equalsIgnoreCase("Olive")) { var2 = hexToColor("#808000"); } else if (var0.equalsIgnoreCase("Yellow")) { var2 = hexToColor("#FFFF00"); } else if (var0.equalsIgnoreCase("Navy")) { var2 = hexToColor("#000080"); } else if (var0.equalsIgnoreCase("Blue")) { var2 = hexToColor("#0000FF"); } else if (var0.equalsIgnoreCase("Teal")) { var2 = hexToColor("#008080"); } else if (var0.equalsIgnoreCase("Aqua")) { var2 = hexToColor("#00FFFF"); } else { var2 = hexToColor(var0); } return var2; } static int getIndexOfSize(float var0) { for(int var1 = 0; var1 < sizeMap.length; ++var1) { if (var0 <= (float)sizeMap[var1]) { return var1; } } return sizeMap.length - 1; } static String[] parseStrings(String var0) { int var3 = var0 == null ? 0 : var0.length(); Vector var4 = new Vector(4); for(int var1 = 0; var1 < var3; ++var1) { while(var1 < var3 && Character.isWhitespace(var0.charAt(var1))) { ++var1; } int var2; for(var2 = var1; var1 < var3 && !Character.isWhitespace(var0.charAt(var1)); ++var1) { } if (var2 != var1) { var4.addElement(var0.substring(var2, var1)); } } String[] var5 = new String[var4.size()]; var4.copyInto(var5); return var5; } float getPointSize(int var1) { if (var1 < 0) { return (float)sizeMap[0]; } else { return var1 > sizeMap.length - 1 ? (float)sizeMap[sizeMap.length - 1] : (float)sizeMap[var1]; } } private void translateEmbeddedAttributes(AttributeSet var1, MutableAttributeSet var2) { Enumeration var3 = var1.getAttributeNames(); if (var1.getAttribute(StyleConstants.NameAttribute) == Tag.HR) { this.translateAttributes(Tag.HR, var1, var2); } while(var3.hasMoreElements()) { Object var4 = var3.nextElement(); if (var4 instanceof HTML.Tag) { HTML.Tag var5 = (HTML.Tag)var4; Object var6 = var1.getAttribute(var5); if (var6 != null && var6 instanceof AttributeSet) { this.translateAttributes(var5, (AttributeSet)var6, var2); } } else if (var4 instanceof Attribute) { var2.addAttribute(var4, var1.getAttribute(var4)); } } } private void translateAttributes(HTML.Tag var1, AttributeSet var2, MutableAttributeSet var3) { Enumeration var4 = var2.getAttributeNames(); while(var4.hasMoreElements()) { Object var5 = var4.nextElement(); if (var5 instanceof HTML.Attribute) { HTML.Attribute var6 = (HTML.Attribute)var5; if (var6 == javax.swing.text.html.HTML.Attribute.ALIGN) { String var7 = (String)var2.getAttribute(javax.swing.text.html.HTML.Attribute.ALIGN); if (var7 != null) { Attribute var8 = this.getCssAlignAttribute(var1, var2); if (var8 != null) { Object var9 = this.getCssValue(var8, var7); if (var9 != null) { var3.addAttribute(var8, var9); } } } } else if (var6 != javax.swing.text.html.HTML.Attribute.SIZE || this.isHTMLFontTag(var1)) { this.translateAttribute(var6, var2, var3); } } else if (var5 instanceof Attribute) { var3.addAttribute(var5, var2.getAttribute(var5)); } } } private void translateAttribute(HTML.Attribute var1, AttributeSet var2, MutableAttributeSet var3) { Attribute[] var4 = this.getCssAttribute(var1); String var5 = (String)var2.getAttribute(var1); if (var4 != null && var5 != null) { for(int var6 = 0; var6 < var4.length; ++var6) { Object var7 = this.getCssValue(var4[var6], var5); if (var7 != null) { var3.addAttribute(var4[var6], var7); } } } } Object getCssValue(Attribute var1, String var2) { CssValue var3 = (CssValue)this.valueConvertor.get(var1); Object var4 = var3.parseHtmlValue(var2); return var4; } private Attribute[] getCssAttribute(HTML.Attribute var1) { return (Attribute[])htmlAttrToCssAttrMap.get(var1); } private Attribute getCssAlignAttribute(HTML.Tag var1, AttributeSet var2) { return javax.swing.text.html.CSS.Attribute.TEXT_ALIGN; } private HTML.Tag getHTMLTag(AttributeSet var1) { Object var2 = var1.getAttribute(StyleConstants.NameAttribute); if (var2 instanceof HTML.Tag) { HTML.Tag var3 = (HTML.Tag)var2; return var3; } else { return null; } } private boolean isHTMLFontTag(HTML.Tag var1) { return var1 != null && (var1 == Tag.FONT || var1 == Tag.BASEFONT); } private boolean isFloater(String var1) { return var1.equals("left") || var1.equals("right"); } private boolean validTextAlignValue(String var1) { return this.isFloater(var1) || var1.equals("center"); } static SizeRequirements calculateTiledRequirements(LayoutIterator var0, SizeRequirements var1) { long var2 = 0L; long var4 = 0L; long var6 = 0L; int var8 = 0; int var9 = 0; int var10 = var0.getCount(); for(int var11 = 0; var11 < var10; ++var11) { var0.setIndex(var11); int var13 = (int)var0.getLeadingCollapseSpan(); int var14 = Math.max(var8, var13); if (var14 != 0) { var9 += var14 - var8; } var6 += (long)((int)var0.getPreferredSpan(0.0F)); var2 = (long)((float)var2 + var0.getMinimumSpan(0.0F)); var4 = (long)((float)var4 + var0.getMaximumSpan(0.0F)); var8 = (int)var0.getTrailingCollapseSpan(); } var2 -= (long)var9; var6 -= (long)var9; var4 -= (long)var9; if (var1 == null) { var1 = new SizeRequirements(); } var1.minimum = var2 > 2147483647L ? Integer.MAX_VALUE : (int)var2; var1.preferred = var6 > 2147483647L ? Integer.MAX_VALUE : (int)var6; var1.maximum = var4 > 2147483647L ? Integer.MAX_VALUE : (int)var4; return var1; } static void calculateTiledLayout(LayoutIterator var0, int var1) { long var2 = 0L; long var4 = 0L; long var6 = 0L; int var8 = 0; int var9 = 0; int var10 = var0.getCount(); for(int var11 = 0; var11 < var10; ++var11) { var0.setIndex(var11); int var13 = (int)var0.getLeadingCollapseSpan(); var0.setOffset(Math.max(var8, var13)); if (var0.getOffset() != 0) { var0.setOffset(var0.getOffset() - var8); var9 += var0.getOffset(); } var0.setSpan((int)var0.getPreferredSpan((float)var1)); var6 += (long)var0.getSpan(); var2 = (long)((float)var2 + var0.getMinimumSpan((float)var1)); var4 = (long)((float)var4 + var0.getMaximumSpan((float)var1)); var8 = (int)var0.getTrailingCollapseSpan(); } int var12 = var1 - var9; long var20 = (long)var12 - var6; float var15 = 0.0F; if (var20 != 0L) { float var16 = var20 > 0L ? (float)(var4 - var6) : (float)(var6 - var2); var15 = (float)var20 / var16; var15 = Math.min(var15, 1.0F); var15 = Math.max(var15, -1.0F); } int var23 = 0; for(int var17 = 0; var17 < var10; ++var17) { var0.setIndex(var17); var0.setOffset(var0.getOffset() + var23); int var18 = var15 > 0.0F ? (int)var0.getMaximumSpan((float)var1) - var0.getSpan() : var0.getSpan() - (int)var0.getMinimumSpan((float)var1); int var19 = (int)(var15 * (float)var18 + 0.5F); var0.setSpan(var0.getSpan() + var19); var23 = (int)Math.min((long)var23 + (long)var0.getSpan(), 2147483647L); } } private void writeObject(ObjectOutputStream var1) throws IOException { var1.defaultWriteObject(); Enumeration var2 = this.valueConvertor.keys(); var1.writeInt(this.valueConvertor.size()); if (var2 != null) { while(var2.hasMoreElements()) { Object var3 = var2.nextElement(); Object var4 = this.valueConvertor.get(var3); if (!(var3 instanceof Serializable) && (var3 = StyleContext.getStaticAttributeKey(var3)) == null) { var3 = null; var4 = null; } else if (!(var4 instanceof Serializable) && (var4 = StyleContext.getStaticAttributeKey(var4)) == null) { var3 = null; var4 = null; } var1.writeObject(var3); var1.writeObject(var4); } } } private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException { var1.defaultReadObject(); int var2 = var1.readInt(); this.valueConvertor = new Hashtable(Math.max(1, var2)); while(var2-- > 0) { Object var3 = var1.readObject(); Object var4 = var1.readObject(); Object var5 = StyleContext.getStaticAttribute(var3); if (var5 != null) { var3 = var5; } Object var6 = StyleContext.getStaticAttribute(var4); if (var6 != null) { var4 = var6; } if (var3 != null && var4 != null) { this.valueConvertor.put(var3, var4); } } } // $FF: synthetic method static Hashtable access$300() { return cssValueToInternalValueMap; } // $FF: synthetic method static Hashtable access$400() { return htmlValueToCssValueMap; } static { for(int var0 = 0; var0 < javax.swing.text.html.CSS.Attribute.allAttributes.length; ++var0) { attributeMap.put(javax.swing.text.html.CSS.Attribute.allAttributes[var0].toString(), javax.swing.text.html.CSS.Attribute.allAttributes[var0]); } for(int var1 = 0; var1 < javax.swing.text.html.CSS.Value.allValues.length; ++var1) { valueMap.put(javax.swing.text.html.CSS.Value.allValues[var1].toString(), javax.swing.text.html.CSS.Value.allValues[var1]); } htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.COLOR, new Attribute[]{javax.swing.text.html.CSS.Attribute.COLOR}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.TEXT, new Attribute[]{javax.swing.text.html.CSS.Attribute.COLOR}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.CLEAR, new Attribute[]{javax.swing.text.html.CSS.Attribute.CLEAR}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.BACKGROUND, new Attribute[]{javax.swing.text.html.CSS.Attribute.BACKGROUND_IMAGE}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.BGCOLOR, new Attribute[]{javax.swing.text.html.CSS.Attribute.BACKGROUND_COLOR}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.WIDTH, new Attribute[]{javax.swing.text.html.CSS.Attribute.WIDTH}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.HEIGHT, new Attribute[]{javax.swing.text.html.CSS.Attribute.HEIGHT}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.BORDER, new Attribute[]{javax.swing.text.html.CSS.Attribute.BORDER_TOP_WIDTH, javax.swing.text.html.CSS.Attribute.BORDER_RIGHT_WIDTH, javax.swing.text.html.CSS.Attribute.BORDER_BOTTOM_WIDTH, javax.swing.text.html.CSS.Attribute.BORDER_LEFT_WIDTH}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.CELLPADDING, new Attribute[]{javax.swing.text.html.CSS.Attribute.PADDING}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.CELLSPACING, new Attribute[]{javax.swing.text.html.CSS.Attribute.BORDER_SPACING}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.MARGINWIDTH, new Attribute[]{javax.swing.text.html.CSS.Attribute.MARGIN_LEFT, javax.swing.text.html.CSS.Attribute.MARGIN_RIGHT}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.MARGINHEIGHT, new Attribute[]{javax.swing.text.html.CSS.Attribute.MARGIN_TOP, javax.swing.text.html.CSS.Attribute.MARGIN_BOTTOM}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.HSPACE, new Attribute[]{javax.swing.text.html.CSS.Attribute.PADDING_LEFT, javax.swing.text.html.CSS.Attribute.PADDING_RIGHT}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.VSPACE, new Attribute[]{javax.swing.text.html.CSS.Attribute.PADDING_BOTTOM, javax.swing.text.html.CSS.Attribute.PADDING_TOP}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.FACE, new Attribute[]{javax.swing.text.html.CSS.Attribute.FONT_FAMILY}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.SIZE, new Attribute[]{javax.swing.text.html.CSS.Attribute.FONT_SIZE}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.VALIGN, new Attribute[]{javax.swing.text.html.CSS.Attribute.VERTICAL_ALIGN}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.ALIGN, new Attribute[]{javax.swing.text.html.CSS.Attribute.VERTICAL_ALIGN, javax.swing.text.html.CSS.Attribute.TEXT_ALIGN, javax.swing.text.html.CSS.Attribute.FLOAT}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.TYPE, new Attribute[]{javax.swing.text.html.CSS.Attribute.LIST_STYLE_TYPE}); htmlAttrToCssAttrMap.put(javax.swing.text.html.HTML.Attribute.NOWRAP, new Attribute[]{javax.swing.text.html.CSS.Attribute.WHITE_SPACE}); styleConstantToCssMap.put(StyleConstants.FontFamily, javax.swing.text.html.CSS.Attribute.FONT_FAMILY); styleConstantToCssMap.put(StyleConstants.FontSize, javax.swing.text.html.CSS.Attribute.FONT_SIZE); styleConstantToCssMap.put(StyleConstants.Bold, javax.swing.text.html.CSS.Attribute.FONT_WEIGHT); styleConstantToCssMap.put(StyleConstants.Italic, javax.swing.text.html.CSS.Attribute.FONT_STYLE); styleConstantToCssMap.put(StyleConstants.Underline, javax.swing.text.html.CSS.Attribute.TEXT_DECORATION); styleConstantToCssMap.put(StyleConstants.StrikeThrough, javax.swing.text.html.CSS.Attribute.TEXT_DECORATION); styleConstantToCssMap.put(StyleConstants.Superscript, javax.swing.text.html.CSS.Attribute.VERTICAL_ALIGN); styleConstantToCssMap.put(StyleConstants.Subscript, javax.swing.text.html.CSS.Attribute.VERTICAL_ALIGN); styleConstantToCssMap.put(StyleConstants.Foreground, javax.swing.text.html.CSS.Attribute.COLOR); styleConstantToCssMap.put(StyleConstants.Background, javax.swing.text.html.CSS.Attribute.BACKGROUND_COLOR); styleConstantToCssMap.put(StyleConstants.FirstLineIndent, javax.swing.text.html.CSS.Attribute.TEXT_INDENT); styleConstantToCssMap.put(StyleConstants.LeftIndent, javax.swing.text.html.CSS.Attribute.MARGIN_LEFT); styleConstantToCssMap.put(StyleConstants.RightIndent, javax.swing.text.html.CSS.Attribute.MARGIN_RIGHT); styleConstantToCssMap.put(StyleConstants.SpaceAbove, javax.swing.text.html.CSS.Attribute.MARGIN_TOP); styleConstantToCssMap.put(StyleConstants.SpaceBelow, javax.swing.text.html.CSS.Attribute.MARGIN_BOTTOM); styleConstantToCssMap.put(StyleConstants.Alignment, javax.swing.text.html.CSS.Attribute.TEXT_ALIGN); htmlValueToCssValueMap.put("disc", javax.swing.text.html.CSS.Value.DISC); htmlValueToCssValueMap.put("square", javax.swing.text.html.CSS.Value.SQUARE); htmlValueToCssValueMap.put("circle", javax.swing.text.html.CSS.Value.CIRCLE); htmlValueToCssValueMap.put("1", javax.swing.text.html.CSS.Value.DECIMAL); htmlValueToCssValueMap.put("a", javax.swing.text.html.CSS.Value.LOWER_ALPHA); htmlValueToCssValueMap.put("A", javax.swing.text.html.CSS.Value.UPPER_ALPHA); htmlValueToCssValueMap.put("i", javax.swing.text.html.CSS.Value.LOWER_ROMAN); htmlValueToCssValueMap.put("I", javax.swing.text.html.CSS.Value.UPPER_ROMAN); cssValueToInternalValueMap.put("disc", javax.swing.text.html.CSS.Value.DISC); cssValueToInternalValueMap.put("square", javax.swing.text.html.CSS.Value.SQUARE); cssValueToInternalValueMap.put("circle", javax.swing.text.html.CSS.Value.CIRCLE); cssValueToInternalValueMap.put("decimal", javax.swing.text.html.CSS.Value.DECIMAL); cssValueToInternalValueMap.put("lower-roman", javax.swing.text.html.CSS.Value.LOWER_ROMAN); cssValueToInternalValueMap.put("upper-roman", javax.swing.text.html.CSS.Value.UPPER_ROMAN); cssValueToInternalValueMap.put("lower-alpha", javax.swing.text.html.CSS.Value.LOWER_ALPHA); cssValueToInternalValueMap.put("upper-alpha", javax.swing.text.html.CSS.Value.UPPER_ALPHA); cssValueToInternalValueMap.put("repeat", javax.swing.text.html.CSS.Value.BACKGROUND_REPEAT); cssValueToInternalValueMap.put("no-repeat", javax.swing.text.html.CSS.Value.BACKGROUND_NO_REPEAT); cssValueToInternalValueMap.put("repeat-x", javax.swing.text.html.CSS.Value.BACKGROUND_REPEAT_X); cssValueToInternalValueMap.put("repeat-y", javax.swing.text.html.CSS.Value.BACKGROUND_REPEAT_Y); cssValueToInternalValueMap.put("scroll", javax.swing.text.html.CSS.Value.BACKGROUND_SCROLL); cssValueToInternalValueMap.put("fixed", javax.swing.text.html.CSS.Value.BACKGROUND_FIXED); Attribute[] var2 = javax.swing.text.html.CSS.Attribute.allAttributes; try { for(int var3 = 0; var3 < var2.length; ++var3) { StyleContext.registerStaticAttributeKey(var2[var3]); } } catch (Throwable var5) { var5.printStackTrace(); } Value[] var6 = javax.swing.text.html.CSS.Value.allValues; try { for(int var7 = 0; var7 < var6.length; ++var7) { StyleContext.registerStaticAttributeKey(var6[var7]); } } catch (Throwable var4) { var4.printStackTrace(); } } }