out.print(selectorString);
        private void writeAttributesFrom(SComponent component)                throws IOException {            Collection dynamicStyles = component.getDynamicStyles();            if (dynamicStyles != null) {                ComponentCG cg = component.getCG();                for (Iterator iterator = dynamicStyles.iterator(); iterator.hasNext();) {                    CSSStyle style = (CSSStyle) iterator.next();                    // Map pseudo css selectors to real selectors                    CSSSelector selector = cg.mapSelector(component, (CSSSelector) style.getSelector());                    String selectorString = selector.getSelectorString();                    out.print(selectorString);                    final BrowserType currentBrowser = SessionManager.getSession().getUserAgent().getBrowserType();                    if (BrowserType.IE.equals(currentBrowser)) {                        // IE Workaround: We need to operate IE in quirks mode.                        // Hence we have to inherit some props manually over TABLE elements.                        final Set tableBlockedProperties = new HashSet(style.properties());                        tableBlockedProperties.retainAll(tableResistantProperties);                        // If this style containes a table blocked CSS property then add table as additional selector.                        if (tableBlockedProperties.size() > 0)                            out.print(", ").print(selectorString).print(" table ");                    }                    out.print("{");                    style.write(out);                    out.print("}\n");                }            }            SBorder border = component.getBorder();            if (border != null) {                out.print(CSSSelector.getSelectorString(component)).print("{");                border.getAttributes().write(out);                out.print("}\n");            }        }