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:
Mark Wielaard 2005-11-15 23:20:01 +00:00
parent 02e549bfaa
commit 8f523f3a10
1241 changed files with 97711 additions and 25284 deletions

View file

@ -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();
}
}
}