KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > util > css > CSSHelper


1 /* ===============================================================================
2 *
3 * Part of the InfoGlue Content Management Platform (www.infoglue.org)
4 *
5 * ===============================================================================
6 *
7 * Copyright (C)
8 *
9 * This program is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License version 2, as published by the
11 * Free Software Foundation. See the file LICENSE.html for more information.
12 *
13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
15 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
19 * Place, Suite 330 / Boston, MA 02111-1307 / USA.
20 *
21 * ===============================================================================
22 */

23
24 package org.infoglue.cms.util.css;
25
26 import java.io.InputStreamReader JavaDoc;
27 import java.io.Reader JavaDoc;
28 import java.net.URL JavaDoc;
29 import java.util.ArrayList JavaDoc;
30 import java.util.List JavaDoc;
31
32 import org.apache.log4j.Logger;
33 import org.w3c.css.sac.InputSource;
34 import org.w3c.dom.css.CSSRule;
35 import org.w3c.dom.css.CSSRuleList;
36 import org.w3c.dom.css.CSSStyleSheet;
37
38 import com.steadystate.css.parser.CSSOMParser;
39
40 /**
41  * @author mattias
42  *
43  * This class helps us read and handle CSS-files.
44  */

45
46 public class CSSHelper
47 {
48     private final static Logger logger = Logger.getLogger(CSSHelper.class.getName());
49
50     private String JavaDoc cssUrl = null;
51     
52     public static CSSHelper getHelper()
53     {
54         return new CSSHelper();
55     }
56
57     public void setCSSUrl(String JavaDoc url)
58     {
59         this.cssUrl = url;
60     }
61     
62     public List JavaDoc getCSSRules()
63     {
64         List JavaDoc list = new ArrayList JavaDoc();
65         
66         try
67         {
68             Reader JavaDoc r = new InputStreamReader JavaDoc(new URL JavaDoc(this.cssUrl).openStream());
69             
70             CSSOMParser parser = new CSSOMParser();
71             InputSource is = new InputSource(r);
72
73             CSSStyleSheet stylesheet = parser.parseStyleSheet(is);
74             CSSRuleList rules = stylesheet.getCssRules();
75
76             for (int i = 0; i < rules.getLength(); i++) {
77                 CSSRule rule = rules.item(i);
78                 list.add(rule);
79             }
80
81
82         }
83         catch(Exception JavaDoc e)
84         {
85             logger.warn("An error occurred when reading css-rules: " + e.getMessage(), e);
86         }
87             
88         return list;
89     }
90
91 }
92
Popular Tags