Java 类org.w3c.dom.css.CSSStyleSheet 实例源码
项目:LoboEvolution
文件:CSSStyleSheetImpl.java
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof CSSStyleSheet)) {
return false;
}
final CSSStyleSheet css = (CSSStyleSheet) obj;
boolean eq = LangUtils.equals(getCssRules(), css.getCssRules());
eq = eq && (getDisabled() == css.getDisabled());
eq = eq && LangUtils.equals(getHref(), css.getHref());
eq = eq && LangUtils.equals(getMedia(), css.getMedia());
// TODO implement some reasonful equals method for ownerNode
// eq = eq && Utils.equals(getOwnerNode(), css.getOwnerNode());
// don't use ownerNode and parentStyleSheet in equals()
// recursive loop -> stack overflow!
eq = eq && LangUtils.equals(getTitle(), css.getTitle());
return eq;
}
项目:LoboEvolution
文件:StyleSheetAggregator.java
/**
* is affected by pseudo name in ancestor
*
* @param elementRules
* @param ancestor
* @param element
* @param pseudoName
* @return
*/
private boolean isAffectedByPseudoNameInAncestor(Collection<StyleRuleInfo> elementRules, HTMLElementImpl ancestor,
HTMLElementImpl element, String pseudoName) {
if (elementRules != null) {
Iterator<StyleRuleInfo> i = elementRules.iterator();
while (i.hasNext()) {
StyleRuleInfo styleRuleInfo = i.next();
CSSStyleSheet styleSheet = styleRuleInfo.getStyleRule().getParentStyleSheet();
if (styleSheet != null && styleSheet.getDisabled()) {
continue;
}
if (styleRuleInfo.affectedByPseudoNameInAncestor(element, ancestor, pseudoName)) {
return true;
}
}
}
return false;
}
项目:LoboEvolution
文件:StyleSheetAggregator.java
/**
* put style declarations
*
* @param elementRules
* @param styleDeclarations
* @param element
* @param pseudoNames
* @return
*/
private Collection<CSSStyleDeclaration> putStyleDeclarations(Collection<StyleRuleInfo> elementRules,
Collection<CSSStyleDeclaration> styleDeclarations, HTMLElementImpl element, Set pseudoNames) {
Iterator<StyleRuleInfo> i = elementRules.iterator();
while (i.hasNext()) {
StyleRuleInfo styleRuleInfo = i.next();
if (styleRuleInfo.isSelectorMatch(element, pseudoNames)) {
CSSStyleRule styleRule = styleRuleInfo.getStyleRule();
CSSStyleSheet styleSheet = styleRule.getParentStyleSheet();
if (styleSheet != null && styleSheet.getDisabled()) {
continue;
}
if (styleDeclarations == null) {
styleDeclarations = new LinkedList<CSSStyleDeclaration>();
}
styleDeclarations.add(styleRule.getStyle());
}
}
return styleDeclarations;
}
项目:LoboEvolution
文件:HTMLDocumentImpl.java
/**
* Adds the style sheet.
*
* @param ss
* the ss
*/
public final void addStyleSheet(CSSStyleSheet ss) {
synchronized (this.getTreeLock()) {
this.styleSheets.add(ss);
this.styleSheetAggregator = null;
this.forgetRenderState();
ArrayList<?> nl = this.nodeList;
if (nl != null) {
Iterator<?> i = nl.iterator();
while (i.hasNext()) {
Object node = i.next();
if (node instanceof HTMLElementImpl) {
((HTMLElementImpl) node).forgetStyle(true);
}
}
}
}
this.allInvalidated();
}
项目:LoboEvolution
文件:CssParserTest.java
/**
* Show style sheet.
*
* @param styleSheet
* the style sheet
*/
private void showStyleSheet(CSSStyleSheet styleSheet) {
StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter);
writer.println("<DL>");
CSSRuleList ruleList = styleSheet.getCssRules();
int length = ruleList.getLength();
for (int i = 0; i < length; i++) {
CSSRule rule = ruleList.item(i);
writer.println("<DT><strong>Rule: type=" + rule.getType() + ",class=" + rule.getClass().getName()
+ "</strong></DT>");
writer.println("<DD>");
this.writeRuleInfo(writer, rule);
writer.println("</DD>");
}
writer.println("</DL>");
writer.flush();
String html = stringWriter.toString();
HtmlRendererContext rcontext = new SimpleHtmlRendererContext(this.cssOutput, (UserAgentContext) null);
this.cssOutput.setHtml(html, "about:css", rcontext);
}
项目:birt
文件:CssParser.java
/**
* Parses a CSS resource and get the CSSStyleSheet as the output.
*
* @param source
* the source of the CSS resource
* @return the CSSStyleSheet if succeed
* @throws IOException
* if the resource is not well-located
*/
public CSSStyleSheet parseStyleSheet( InputSource source )
throws IOException
{
CssHandler handler = new CssHandler( );
parser.setDocumentHandler( handler );
parser.setErrorHandler( errorHandler );
try
{
parser.parseStyleSheet( source );
}
catch ( StringIndexOutOfBoundsException e )
{
throw new CSSException( CSSException.SAC_SYNTAX_ERR );
}
return (StyleSheet) handler.getRoot( );
}
项目:LoboEvolution
文件:CSSStyleSheetListImpl.java
/**
* Merges all StyleSheets in this list into one.
*
* @return the new (merged) StyleSheet
*/
public StyleSheet merge() {
final CSSStyleSheetImpl merged = new CSSStyleSheetImpl();
final CSSRuleListImpl cssRuleList = new CSSRuleListImpl();
final Iterator<CSSStyleSheet> it = getCSSStyleSheets().iterator();
while (it.hasNext()) {
final CSSStyleSheetImpl cssStyleSheet = (CSSStyleSheetImpl) it.next();
final CSSMediaRuleImpl cssMediaRule = new CSSMediaRuleImpl(merged, null, cssStyleSheet.getMedia());
cssMediaRule.setRuleList((CSSRuleListImpl) cssStyleSheet.getCssRules());
cssRuleList.add(cssMediaRule);
}
merged.setCssRules(cssRuleList);
merged.setMediaText("all");
return merged;
}
项目:LoboEvolution
文件:StyleSheetAggregator.java
/**
* Adds the style sheet.
*
* @param styleSheet
* the style sheet
* @throws MalformedURLException
* the malformed url exception
* @throws UnsupportedEncodingException
*/
private final void addStyleSheet(CSSStyleSheet styleSheet)
throws MalformedURLException, UnsupportedEncodingException {
CSSRuleList ruleList = styleSheet.getCssRules();
int length = ruleList.getLength();
for (int i = 0; i < length; i++) {
CSSRule rule = ruleList.item(i);
this.addRule(styleSheet, rule);
}
}
项目:LoboEvolution
文件:HTMLLinkElementImpl.java
@Override
public void setDisabled(boolean disabled) {
this.disabled = disabled;
CSSStyleSheet sheet = this.styleSheet;
if (sheet != null) {
sheet.setDisabled(disabled);
}
}
项目:LoboEvolution
文件:HTMLStyleElementImpl.java
@Override
public void setDisabled(boolean disabled) {
this.disabled = disabled;
CSSStyleSheet sheet = this.styleSheet;
if (sheet != null) {
sheet.setDisabled(disabled);
}
}
项目:LoboEvolution
文件:HTMLStyleElementImpl.java
/**
* Process style.
*/
protected void processStyle() {
this.styleSheet = null;
UserAgentContext uacontext = this.getUserAgentContext();
if (uacontext.isInternalCSSEnabled() && CSSUtilities.matchesMedia(this.getMedia(), this.getUserAgentContext())) {
String text = this.getRawInnerText(true);
if (text != null && !"".equals(text)) {
HTMLDocumentImpl doc = (HTMLDocumentImpl) this.getOwnerDocument();
try {
CSSOMParser parser = new CSSOMParser(new SACParserCSS3());
InputSource is = CSSUtilities.getCssInputSourceForStyleSheet(text, doc.getBaseURI());
CSSStyleSheet sheet = parser.parseStyleSheet(is, null, null);
if (sheet != null) {
doc.addStyleSheet(sheet);
this.styleSheet = sheet;
if (sheet instanceof CSSStyleSheetImpl) {
CSSStyleSheetImpl sheetImpl = (CSSStyleSheetImpl) sheet;
sheetImpl.setDisabled(disabled);
} else {
sheet.setDisabled(this.disabled);
}
}
} catch (Throwable err) {
logger.error("Unable to parse style sheet", err);
}
}
}
}
项目:jStyleDomBridge
文件:JStyleSheetWrapper.java
JStyleSheetWrapper(final cz.vutbr.web.css.StyleSheet jStyleSheet, final String mediaStr, final String href, final Node ownerNode,
final CSSStyleSheet parentStyleSheet, final String type, final String title, final StyleSheetBridge bridge) {
this.jStyleSheet = jStyleSheet;
this.mediaStr = mediaStr;
this.href = href;
this.bridge = bridge;
this.ownerNode = ownerNode;
this.type = type;
this.title = title;
this.parentStyleSheet = parentStyleSheet;
}
项目:SimpleFunctionalTest
文件:CssParser.java
public HashMap<String, CSSStyleRule> extractCssStyleRules(String cssFile) throws IOException {
TEST_FILE_SYSTEM.filesExists(cssFile);
CSSOMParser cssParser = new CSSOMParser();
CSSStyleSheet css = cssParser.parseStyleSheet(new InputSource(new FileReader(TEST_FILE_SYSTEM.file(cssFile))), null, null);
CSSRuleList cssRules = css.getCssRules();
HashMap<String, CSSStyleRule> rules = new HashMap<String, CSSStyleRule>();
for (int i = 0; i < cssRules.getLength(); i++) {
CSSRule rule = cssRules.item(i);
if (rule instanceof CSSStyleRule) {
rules.put(((CSSStyleRule) rule).getSelectorText(), (CSSStyleRule) rule);
}
}
return rules;
}
项目:thymesheet
文件:ThymesheetPreprocessor.java
AttributeRuleList getRuleList(InputStream stream) throws IOException {
InputSource source = new InputSource(new InputStreamReader(stream));
CSSOMParser parser = new CSSOMParser(new SACParserCSS3());
parser.setErrorHandler(ThrowCssExceptionErrorHandler.INSTANCE);
CSSStyleSheet stylesheet = parser.parseStyleSheet(source, null, null);
CSSRuleList ruleList = stylesheet.getCssRules();
return new AttributeRuleList(ruleList);
}
项目:Push2Display
文件:SVGDOMImplementation.java
/**
* <b>DOM</b>: Implements {@link
* org.w3c.dom.css.DOMImplementationCSS#createCSSStyleSheet(String,String)}.
*/
public CSSStyleSheet createCSSStyleSheet(String title, String media) {
throw new UnsupportedOperationException
("DOMImplementationCSS.createCSSStyleSheet is not implemented"); // XXX
}
项目:Push2Display
文件:SVGDOMImplementation.java
/**
* Returns the user-agent stylesheet.
*/
public CSSStyleSheet getUserAgentStyleSheet() {
throw new UnsupportedOperationException
("StyleSheetFactory.getUserAgentStyleSheet is not implemented"); // XXX
}
项目:xstreamer
文件:CSSStyleSheetAssert.java
protected CSSStyleSheetAssert(CSSStyleSheet actual) {
super(actual, CSSStyleSheetAssert.class);
}
项目:xstreamer
文件:CSSStyleSheetAssert.java
public static CSSStyleSheetAssert assertThat(CSSStyleSheet actual) {
return new CSSStyleSheetAssert(actual);
}
项目:Push2Display
文件:SVGDOMImplementation.java
/**
* <b>DOM</b>: Implements {@link
* org.w3c.dom.css.DOMImplementationCSS#createCSSStyleSheet(String,String)}.
*/
public CSSStyleSheet createCSSStyleSheet(String title, String media) {
throw new UnsupportedOperationException
("DOMImplementationCSS.createCSSStyleSheet is not implemented"); // XXX
}
项目:Push2Display
文件:SVGDOMImplementation.java
/**
* Returns the user-agent stylesheet.
*/
public CSSStyleSheet getUserAgentStyleSheet() {
throw new UnsupportedOperationException
("StyleSheetFactory.getUserAgentStyleSheet is not implemented"); // XXX
}
项目:feathers-sdk
文件:SVGDOMImplementation.java
/**
* <b>DOM</b>: Implements {@link
* org.w3c.dom.css.DOMImplementationCSS#createCSSStyleSheet(String,String)}.
*/
public CSSStyleSheet createCSSStyleSheet(String title, String media) {
throw new UnsupportedOperationException
("DOMImplementationCSS.createCSSStyleSheet is not implemented"); // XXX
}
项目:feathers-sdk
文件:SVGDOMImplementation.java
/**
* Returns the user-agent stylesheet.
*/
public CSSStyleSheet getUserAgentStyleSheet() {
throw new UnsupportedOperationException
("StyleSheetFactory.getUserAgentStyleSheet is not implemented"); // XXX
}
项目:LoboEvolution
文件:AbstractCSSRuleImpl.java
public CSSStyleSheet getParentStyleSheet() {
return parentStyleSheet_;
}
项目:LoboEvolution
文件:CSSStyleSheetListImpl.java
public List<CSSStyleSheet> getCSSStyleSheets() {
if (cssStyleSheets_ == null) {
cssStyleSheets_ = new ArrayList<CSSStyleSheet>();
}
return cssStyleSheets_;
}
项目:LoboEvolution
文件:CSSStyleSheetListImpl.java
public void setCSSStyleSheets(final List<CSSStyleSheet> cssStyleSheets) {
cssStyleSheets_ = cssStyleSheets;
}
项目:LoboEvolution
文件:CSSImportRuleImpl.java
@Override
public CSSStyleSheet getStyleSheet() {
return null;
}
项目:LoboEvolution
文件:CSSUtilities.java
/**
* @param href
* @param href
* @param doc
* @return
* @throws Exception
*/
public static CSSStyleSheet parse(String href, HTMLDocumentImpl doc) throws Exception {
URL url = null;
CSSOMParser parser = new CSSOMParser(new SACParserCSS3());
URL baseURL = new URL(doc.getBaseURI());
URL scriptURL = Urls.createURL(baseURL, href);
String scriptURI = scriptURL == null ? href : scriptURL.toExternalForm();
try {
if (scriptURI.startsWith("//")) {
scriptURI = "http:" + scriptURI;
}
url = new URL(scriptURI);
} catch (MalformedURLException mfu) {
int idx = scriptURI.indexOf(':');
if (idx == -1 || idx == 1) {
// try file
url = new URL("file:" + scriptURI);
} else {
throw mfu;
}
}
logger.info("process(): Loading URI=[" + scriptURI + "].");
SSLCertificate.setCertificate();
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", UserAgentContext.DEFAULT_USER_AGENT);
connection.setRequestProperty("Cookie", "");
if (connection instanceof HttpURLConnection) {
HttpURLConnection hc = (HttpURLConnection) connection;
hc.setInstanceFollowRedirects(true);
int responseCode = hc.getResponseCode();
logger.info("process(): HTTP response code: " + responseCode);
}
InputStream in = connection.getInputStream();
byte[] content;
try {
content = IORoutines.load(in, 8192);
} finally {
in.close();
}
String source = new String(content, "UTF-8");
InputSource is = getCssInputSourceForStyleSheet(source, doc.getBaseURI());
return parser.parseStyleSheet(is, null, null);
}
项目:LoboEvolution
文件:CssParserTest.java
/**
* Process.
*
* @param uri
* the uri
*/
private void process(String uri) {
try {
URL url;
try {
url = new URL(uri);
} catch (MalformedURLException mfu) {
int idx = uri.indexOf(':');
if (idx == -1 || idx == 1) {
// try file
url = new URL("file:" + uri);
} else {
throw mfu;
}
}
logger.info("process(): Loading URI=[" + uri + "].");
long time0 = System.currentTimeMillis();
SSLCertificate.setCertificate();
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible;) Cobra/0.96.1+");
connection.setRequestProperty("Cookie", "");
if (connection instanceof HttpURLConnection) {
HttpURLConnection hc = (HttpURLConnection) connection;
hc.setInstanceFollowRedirects(true);
int responseCode = hc.getResponseCode();
logger.info("process(): HTTP response code: " + responseCode);
}
InputStream in = connection.getInputStream();
byte[] content;
try {
content = IORoutines.load(in, 8192);
} finally {
in.close();
}
String source = new String(content, "UTF-8");
this.textArea.setText(source);
long time1 = System.currentTimeMillis();
CSSOMParser parser = new CSSOMParser();
InputSource is = CSSUtilities.getCssInputSourceForStyleSheet(source, uri);
CSSStyleSheet styleSheet = parser.parseStyleSheet(is, null, null);
long time2 = System.currentTimeMillis();
logger.info("Parsed URI=[" + uri + "]: Parse elapsed: " + (time2 - time1) + " ms. Load elapsed: "
+ (time1 - time0) + " ms.");
this.showStyleSheet(styleSheet);
} catch (Exception err) {
logger.log(Level.ERROR, "Error trying to load URI=[" + uri + "].", err);
this.clearCssOutput();
}
}
项目:birt
文件:StyleRule.java
public CSSStyleSheet getParentStyleSheet( )
{
return null;
}
项目:birt
文件:UnSupportedRule.java
public CSSStyleSheet getParentStyleSheet( )
{
return null;
}
项目:jStyleDomBridge
文件:CSSImportRuleImpl.java
public CSSStyleSheet getStyleSheet() {
// TODO implement this method
throw new UnsupportedOperationException();
}
项目:jStyleDomBridge
文件:AbstractCSSRule.java
/**
* @return The style sheet that contains this rule.
*/
public CSSStyleSheet getParentStyleSheet() {
return containingStyleSheet;
}
项目:LoboEvolution
文件:CSSOMParser.java
/**
* Parses a SAC input source into a CSSOM style sheet.
*
* @param source
* the SAC input source
* @param ownerNode
* the owner node (see the definition of <code>ownerNode</code> in
* org.w3c.dom.css.StyleSheet)
* @param href
* the href (see the definition of <code>href</code> in
* org.w3c.dom.css.StyleSheet)
* @return the CSSOM style sheet
* @throws IOException
* if the underlying SAC parser throws an IOException
*/
public CSSStyleSheet parseStyleSheet(final InputSource source, final Node ownerNode, final String href)
throws IOException {
final CSSOMHandler handler = new CSSOMHandler();
handler.setOwnerNode(ownerNode);
handler.setHref(href);
parser_.setDocumentHandler(handler);
parser_.parseStyleSheet(source);
final Object o = handler.getRoot();
if (o instanceof CSSStyleSheet) {
return (CSSStyleSheet) o;
}
return null;
}
项目:LoboEvolution
文件:StyleSheetAggregator.java
/**
* Adds the style sheets.
*
* @param styleSheets
* the style sheets
* @throws MalformedURLException
* the malformed url exception
* @throws UnsupportedEncodingException
*/
public final void addStyleSheets(List<CSSStyleSheet> styleSheets)
throws MalformedURLException, UnsupportedEncodingException {
Iterator<CSSStyleSheet> i = styleSheets.iterator();
while (i.hasNext()) {
CSSStyleSheet sheet = i.next();
this.addStyleSheet(sheet);
}
}
项目:LoboEvolution
文件:CSSStyleSheetListImpl.java
/**
* Adds a CSSStyleSheet.
*
* @param cssStyleSheet
* the CSSStyleSheet
*/
public void add(final CSSStyleSheet cssStyleSheet) {
getCSSStyleSheets().add(cssStyleSheet);
}
项目:LoboEvolution
文件:HTMLLinkElementImpl.java
/**
* Gets the sheet.
*
* @return the sheet
*/
public CSSStyleSheet getSheet() {
return this.styleSheet;
}
项目:LoboEvolution
文件:HTMLStyleElementImpl.java
/**
* Gets the sheet.
*
* @return the sheet
*/
public CSSStyleSheet getSheet() {
return this.styleSheet;
}
项目:jStyleDomBridge
文件:StyleSheetBridge.java
/**
* Notifies the listener that the style sheet has been changed.
*
* @param styleSheet
* The style sheet that has changed
*/
public void notifyStyleSheetChanged(final CSSStyleSheet styleSheet);
项目:jStyleDomBridge
文件:JStyleSheetWrapper.java
/**
* @param jStyleSheet
* parsed style sheet from jStyleParser
* @param mediaStr
* The intended destination media for style information. The media is
* often specified in the <code>ownerNode</code>. If no media has
* been specified, the <code>MediaList</code> will be empty. See the
* media attribute definition for the <code>LINK</code> element in
* HTML 4.0, and the media pseudo-attribute for the XML style sheet
* processing instruction . Modifying the media list may cause a
* change to the attribute <code>disabled</code>.
* @param href
* If the style sheet is a linked style sheet, the value of its
* attribute is its location. For inline style sheets, the value of
* this attribute is <code>null</code>. See the href attribute
* definition for the <code>LINK</code> element in HTML 4.0, and the
* href pseudo-attribute for the XML style sheet processing
* instruction.
* @param parentStyleSheet
* For style sheet languages that support the concept of style sheet
* inclusion, this attribute represents the including style sheet, if
* one exists. If the style sheet is a top-level style sheet, or the
* style sheet language does not support inclusion, the value of this
* attribute is <code>null</code>.
* @param bridge
* callback to notify any changes in the style sheet or to
* dynamically get data from the caller.
*/
public JStyleSheetWrapper(final cz.vutbr.web.css.StyleSheet jStyleSheet, final String mediaStr, final String href,
final CSSStyleSheet parentStyleSheet, final StyleSheetBridge bridge) {
this(jStyleSheet, mediaStr, href, null, parentStyleSheet, null, null, bridge);
}
项目:jStyleDomBridge
文件:StyleSheetListImpl.java
/**
* Used to retrieve a style sheet by ordinal index. If index is greater than
* or equal to the number of style sheets in the list, this returns
* <code>null</code>.
*
* @param index
* Index into the collection
* @return The style sheet at the <code>index</code> position in the
* <code>StyleSheetList</code>, or <code>null</code> if that is not a
* valid index.
*/
public CSSStyleSheet item(final int index) {
return this.bridge.getDocStyleSheets().get(index);
}