1 22 23 package salsa.html; 24 25 import java.util.*; 26 import javax.swing.event.*; 27 import javax.swing.text.*; 28 import javax.swing.text.html.*; 29 30 public class MutableHTMLDocument extends HTMLDocument 31 { 32 public MutableHTMLDocument( StyleSheet styles ) 33 { 34 super( styles ); 35 } 36 37 38 public void setTitle( String title ) 39 { 40 43 Dictionary di = getDocumentProperties(); 44 di.put( Document.TitleProperty, title ); 45 setDocumentProperties( di ); 46 } 47 48 public Element getElementByTag( HTML.Tag tag ) 49 { 50 Element root = getDefaultRootElement(); 51 return getElementByTag( root, tag ); 52 } 53 54 public Element getElementByTag( Element parent, HTML.Tag tag ) 55 { 56 if( parent == null || tag == null ) 57 return null; 58 59 for( int i = 0; i < parent.getElementCount(); i++ ) 60 { 61 Element child = parent.getElement( i ); 62 if( child.getAttributes().getAttribute( StyleConstants.NameAttribute ).equals( tag ) ) 63 return child; 64 65 Element e = getElementByTag( child, tag ); 66 if( e != null ) 67 return e; 68 } 69 return null; 70 } 71 72 public String getTitle() 73 { 74 return ( String ) getProperty( Document.TitleProperty ); 75 } 76 77 public void addAttributes( Element e, AttributeSet attributes ) 78 { 79 if( e == null || attributes == null ) 80 return; 81 82 try 83 { 84 writeLock(); 85 MutableAttributeSet mattr = ( MutableAttributeSet ) e.getAttributes(); 86 mattr.addAttributes( attributes ); 87 88 fireChangedUpdate( new DefaultDocumentEvent( 0, getLength(), 89 DocumentEvent.EventType.CHANGE ) ); 90 } 91 finally 92 { 93 writeUnlock(); 94 } 95 } 96 } 97 | Popular Tags |