Imported GNU Classpath 0.19 + gcj-import-20051115.
* sources.am: Regenerated. * Makefile.in: Likewise. * scripts/makemake.tcl: Use glob -nocomplain. From-SVN: r107049
This commit is contained in:
parent
02e549bfaa
commit
8f523f3a10
1241 changed files with 97711 additions and 25284 deletions
|
@ -38,7 +38,14 @@ exception statement from your version. */
|
|||
|
||||
package javax.swing.text.html;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
import javax.swing.text.AbstractDocument;
|
||||
import javax.swing.text.AttributeSet;
|
||||
import javax.swing.text.DefaultStyledDocument;
|
||||
import javax.swing.text.Element;
|
||||
import javax.swing.text.ElementIterator;
|
||||
import javax.swing.text.html.HTML.Tag;
|
||||
|
||||
/**
|
||||
* TODO: This class is not yet completetely implemented.
|
||||
|
@ -47,7 +54,215 @@ import javax.swing.text.DefaultStyledDocument;
|
|||
*/
|
||||
public class HTMLDocument extends DefaultStyledDocument
|
||||
{
|
||||
/** A key for document properies. The value for the key is
|
||||
* a Vector of Strings of comments not found in the body.
|
||||
*/
|
||||
public static final String AdditionalComments = "AdditionalComments";
|
||||
URL baseURL = null;
|
||||
boolean preservesUnknownTags = true;
|
||||
|
||||
/**
|
||||
* Returns the location against which to resolve relative URLs.
|
||||
* This is the document's URL if the document was loaded from a URL.
|
||||
* If a <code>base</code> tag is found, it will be used.
|
||||
* @return the base URL
|
||||
*/
|
||||
public URL getBase()
|
||||
{
|
||||
return baseURL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the location against which to resolve relative URLs.
|
||||
* @param u the new base URL
|
||||
*/
|
||||
public void setBase(URL u)
|
||||
{
|
||||
baseURL = u;
|
||||
//TODO: also set the base of the StyleSheet
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether or not the parser preserves unknown HTML tags.
|
||||
* @return true if the parser preserves unknown tags
|
||||
*/
|
||||
public boolean getPreservesUnknownTags()
|
||||
{
|
||||
return preservesUnknownTags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the behaviour of the parser when it encounters unknown HTML tags.
|
||||
* @param preservesTags true if the parser should preserve unknown tags.
|
||||
*/
|
||||
public void setPreservesUnknownTags(boolean preservesTags)
|
||||
{
|
||||
preservesUnknownTags = preservesTags;
|
||||
}
|
||||
|
||||
/**
|
||||
* An iterator to iterate through LeafElements in the document.
|
||||
*/
|
||||
class LeafIterator extends Iterator
|
||||
{
|
||||
HTML.Tag tag;
|
||||
HTMLDocument doc;
|
||||
ElementIterator it;
|
||||
|
||||
public LeafIterator (HTML.Tag t, HTMLDocument d)
|
||||
{
|
||||
doc = d;
|
||||
tag = t;
|
||||
it = new ElementIterator(doc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the attributes for the tag associated with this iteartor
|
||||
* @return the AttributeSet
|
||||
*/
|
||||
public AttributeSet getAttributes()
|
||||
{
|
||||
if (it.current() != null)
|
||||
return it.current().getAttributes();
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the end of the range for the current occurrence of the tag
|
||||
* being defined and having the same attributes.
|
||||
* @return the end of the range
|
||||
*/
|
||||
public int getEndOffset()
|
||||
{
|
||||
if (it.current() != null)
|
||||
return it.current().getEndOffset();
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the start of the range for the current occurrence of the tag
|
||||
* being defined and having the same attributes.
|
||||
* @return the start of the range (-1 if it can't be found).
|
||||
*/
|
||||
|
||||
public int getStartOffset()
|
||||
{
|
||||
if (it.current() != null)
|
||||
return it.current().getStartOffset();
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Advance the iterator to the next LeafElement .
|
||||
*/
|
||||
public void next()
|
||||
{
|
||||
it.next();
|
||||
while (it.current()!= null && !it.current().isLeaf())
|
||||
it.next();
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether or not the iterator currently represents an occurrence
|
||||
* of the tag.
|
||||
* @return true if the iterator currently represents an occurrence of the
|
||||
* tag.
|
||||
*/
|
||||
public boolean isValid()
|
||||
{
|
||||
return it.current() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type of tag for this iterator.
|
||||
*/
|
||||
public Tag getTag()
|
||||
{
|
||||
return tag;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent event)
|
||||
{
|
||||
// TODO: Implement this properly.
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an iterator for the given HTML.Tag.
|
||||
* @param t the requested HTML.Tag
|
||||
* @return the Iterator
|
||||
*/
|
||||
public HTMLDocument.Iterator getIterator (HTML.Tag t)
|
||||
{
|
||||
return new HTMLDocument.LeafIterator(t, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* An iterator over a particular type of tag.
|
||||
*/
|
||||
public abstract static class Iterator
|
||||
{
|
||||
/**
|
||||
* Return the attribute set for this tag.
|
||||
* @return the <code>AttributeSet</code> (null if none found).
|
||||
*/
|
||||
public abstract AttributeSet getAttributes();
|
||||
|
||||
/**
|
||||
* Get the end of the range for the current occurrence of the tag
|
||||
* being defined and having the same attributes.
|
||||
* @return the end of the range
|
||||
*/
|
||||
public abstract int getEndOffset();
|
||||
|
||||
/**
|
||||
* Get the start of the range for the current occurrence of the tag
|
||||
* being defined and having the same attributes.
|
||||
* @return the start of the range (-1 if it can't be found).
|
||||
*/
|
||||
public abstract int getStartOffset();
|
||||
|
||||
/**
|
||||
* Move the iterator forward.
|
||||
*/
|
||||
public abstract void next();
|
||||
|
||||
/**
|
||||
* Indicates whether or not the iterator currently represents an occurrence
|
||||
* of the tag.
|
||||
* @return true if the iterator currently represents an occurrence of the
|
||||
* tag.
|
||||
*/
|
||||
public abstract boolean isValid();
|
||||
|
||||
/**
|
||||
* Type of tag this iterator represents.
|
||||
* @return the tag.
|
||||
*/
|
||||
public abstract HTML.Tag getTag();
|
||||
}
|
||||
|
||||
public class BlockElement extends AbstractDocument.BranchElement
|
||||
{
|
||||
public BlockElement (Element parent, AttributeSet a)
|
||||
{
|
||||
super (parent, a);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the resolving parent. Since HTML attributes are not
|
||||
* inherited at the model level, this returns null.
|
||||
*/
|
||||
public AttributeSet getResolveParent()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
//FIXME: this is supposed to do something different from the super class
|
||||
return super.getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue