1 30 31 package com.steadystate.css.dom; 32 33 import java.io.IOException ; 34 import java.io.Serializable ; 35 import java.io.StringReader ; 36 import java.util.*; 37 import org.w3c.dom.*; 38 import org.w3c.dom.stylesheets.*; 39 import org.w3c.css.sac.*; 40 41 import com.steadystate.css.parser.SACParser; 42 43 48 public class MediaListImpl implements MediaList, Serializable { 49 50 private Vector _media = new Vector(); 51 52 private void setMedia(SACMediaList mediaList) 53 { 54 for (int i = 0; i < mediaList.getLength(); i++) 55 { 56 this._media.addElement(mediaList.item(i)); 57 } 58 } 59 60 public MediaListImpl(SACMediaList mediaList) 61 { 62 this.setMedia(mediaList); 63 } 64 65 public String getMediaText() { 66 StringBuffer sb = new StringBuffer (""); 67 for (int i = 0; i < _media.size(); i++) { 68 sb.append(_media.elementAt(i).toString()); 69 if (i < _media.size() - 1) { 70 sb.append( ", " ); 71 } 72 } 73 return sb.toString(); 74 } 75 76 public void setMediaText(String mediaText) throws DOMException { 77 InputSource source = new InputSource(new StringReader (mediaText)); 78 try 79 { 80 this.setMedia(new SACParser().parseMedia(source)); 81 } 82 catch (CSSParseException e) 83 { 84 throw new DOMException(DOMException.SYNTAX_ERR, 85 e.getLocalizedMessage()); 86 } 87 catch (IOException e) 88 { 89 throw new DOMException(DOMException.NOT_FOUND_ERR, 90 e.getLocalizedMessage()); 91 } 92 } 93 94 public int getLength() { 95 return _media.size(); 96 } 97 98 public String item(int index) { 99 return (index < _media.size()) ? (String ) _media.elementAt(index) : null; 100 } 101 102 public void deleteMedium(String oldMedium) throws DOMException { 103 for (int i = 0; i < _media.size(); i++) { 104 String str = (String ) _media.elementAt(i); 105 if (str.equalsIgnoreCase(oldMedium)) { 106 _media.removeElementAt(i); 107 return; 108 } 109 } 110 throw new DOMExceptionImpl( 111 DOMException.NOT_FOUND_ERR, 112 DOMExceptionImpl.NOT_FOUND); 113 } 114 115 public void appendMedium(String newMedium) throws DOMException { 116 _media.addElement(newMedium); 117 } 118 119 public String toString() { 120 return getMediaText(); 121 } 122 } 123 | Popular Tags |