home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.io.IOException;
- import java.io.Reader;
- import java.io.Serializable;
- import java.io.StreamTokenizer;
- import java.util.Vector;
- import javax.swing.text.MutableAttributeSet;
- import javax.swing.text.SimpleAttributeSet;
-
- class StyleSheet$CssParser implements Serializable {
- // $FF: synthetic field
- private final StyleSheet this$0;
- Vector selectors;
- Vector selectorTokens;
- String key;
- Vector ruleTokens;
- MutableAttributeSet declaration;
-
- StyleSheet$CssParser(StyleSheet var1) {
- this.this$0 = var1;
- this.selectors = new Vector();
- this.selectorTokens = new Vector();
- this.ruleTokens = new Vector();
- this.declaration = new SimpleAttributeSet();
- }
-
- void addKeyValueToDeclaration() {
- CSS.Attribute var1 = CSS.getAttribute(this.key);
- if (var1 != null) {
- Object var2 = this.getValue(var1);
- if (var2 != null) {
- this.declaration.addAttribute(var1, var2);
- }
- }
-
- this.ruleTokens.removeAllElements();
- }
-
- void addRule() {
- int var1 = this.selectors.size();
-
- for(int var2 = 0; var2 < var1; ++var2) {
- String[] var3 = (String[])this.selectors.elementAt(var2);
- if (var3.length > 0) {
- this.this$0.addRule(var3, this.declaration);
- }
- }
-
- this.declaration.removeAttributes(this.declaration);
- this.selectors.removeAllElements();
- }
-
- void addSelector() {
- String[] var1 = new String[this.selectorTokens.size()];
- this.selectorTokens.copyInto(var1);
- this.selectors.addElement(var1);
- this.selectorTokens.removeAllElements();
- }
-
- String getDeclarationString() {
- String var1 = "";
- int var2 = this.ruleTokens.size();
-
- for(int var3 = 0; var3 < var2; ++var3) {
- var1 = var1 + this.ruleTokens.elementAt(var3);
- }
-
- this.ruleTokens.removeAllElements();
- return var1;
- }
-
- Object getValue(CSS.Attribute var1) {
- StyleSheet.CssValue var2 = (StyleSheet.CssValue)StyleSheet.access$1(this.this$0).get(var1);
- String var3 = this.getDeclarationString();
- return var2.parseCssValue(var3);
- }
-
- void parse(Reader var1) throws IOException {
- StreamTokenizer var2 = new StreamTokenizer(var1);
- var2.ordinaryChar(47);
- var2.slashStarComments(true);
- boolean var3 = false;
-
- for(int var4 = var2.nextToken(); var4 != -1; var4 = var2.nextToken()) {
- switch (var4) {
- case -3:
- if (var3) {
- this.ruleTokens.addElement(var2.sval);
- } else {
- this.selectorTokens.addElement(var2.sval);
- }
- break;
- case -2:
- if (var3) {
- this.ruleTokens.addElement(new Integer((int)var2.nval));
- } else {
- String var5 = (String)this.selectorTokens.lastElement();
- var5 = var5 + (int)var2.nval;
- this.selectorTokens.setElementAt(var5, this.selectorTokens.size() - 1);
- }
- case 10:
- break;
- default:
- switch (var2.ttype) {
- case 44:
- if (var3) {
- this.ruleTokens.addElement(new Character(','));
- } else {
- this.addSelector();
- }
- break;
- case 58:
- this.key = this.getDeclarationString();
- break;
- case 59:
- this.addKeyValueToDeclaration();
- break;
- case 123:
- this.addSelector();
- var3 = true;
- break;
- case 125:
- this.addKeyValueToDeclaration();
- this.addRule();
- var3 = false;
- break;
- default:
- if (var3) {
- this.ruleTokens.addElement(new Character(','));
- } else {
- String var7 = (String)this.selectorTokens.lastElement();
- var7 = var7 + (char)var2.ttype;
- this.selectorTokens.setElementAt(var7, this.selectorTokens.size() - 1);
- }
- }
- }
- }
-
- }
- }
-