Imported GNU Classpath 0.90

Imported GNU Classpath 0.90
       * scripts/makemake.tcl: Set gnu/java/awt/peer/swing to ignore.
       * gnu/classpath/jdwp/VMFrame.java (SIZE): New constant.
       * java/lang/VMCompiler.java: Use gnu.java.security.hash.MD5.
       * java/lang/Math.java: New override file.
       * java/lang/Character.java: Merged from Classpath.
       (start, end): Now 'int's.
       (canonicalName): New field.
       (CANONICAL_NAME, NO_SPACES_NAME, CONSTANT_NAME): New constants.
       (UnicodeBlock): Added argument.
       (of): New overload.
       (forName): New method.
       Updated unicode blocks.
       (sets): Updated.
       * sources.am: Regenerated.
       * Makefile.in: Likewise.

From-SVN: r111942
This commit is contained in:
Mark Wielaard 2006-03-10 21:46:48 +00:00
parent 27079765d0
commit 8aa540d2f7
1367 changed files with 188789 additions and 22762 deletions

View file

@ -38,10 +38,8 @@ exception statement from your version. */
package javax.swing.text.html;
import java.net.URL;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Stack;
import java.util.Vector;
@ -131,16 +129,17 @@ public class HTMLDocument extends DefaultStyledDocument
}
/**
* Replaces the contents of the document with the given element specifications.
* This is called before insert if the loading is done in bursts. This is the
* only method called if loading the document entirely in one burst.
* Replaces the contents of the document with the given element
* specifications. This is called before insert if the loading is done
* in bursts. This is the only method called if loading the document
* entirely in one burst.
*
* @param data - the date that replaces the content of the document
*/
protected void create(DefaultStyledDocument.ElementSpec[] data)
{
// FIXME: Not implemented
System.out.println("create not implemented");
// Once the super behaviour is properly implemented it should be sufficient
// to simply call super.create(data).
super.create(data);
}
@ -149,11 +148,35 @@ public class HTMLDocument extends DefaultStyledDocument
*
* @return the new default root
*/
protected AbstractDocument.AbstractElement createDefaultRoot()
protected AbstractElement createDefaultRoot()
{
// FIXME: Not implemented
System.out.println("createDefaultRoot not implemented");
return super.createDefaultRoot();
AbstractDocument.AttributeContext ctx = getAttributeContext();
// Create html element.
AttributeSet atts = ctx.getEmptySet();
atts = ctx.addAttribute(atts, StyleConstants.NameAttribute, HTML.Tag.HTML);
BranchElement html = (BranchElement) createBranchElement(null, atts);
// Create body element.
atts = ctx.getEmptySet();
atts = ctx.addAttribute(atts, StyleConstants.NameAttribute, HTML.Tag.BODY);
BranchElement body = (BranchElement) createBranchElement(html, atts);
html.replace(0, 0, new Element[] { body });
// Create p element.
atts = ctx.getEmptySet();
atts = ctx.addAttribute(atts, StyleConstants.NameAttribute, HTML.Tag.P);
BranchElement p = (BranchElement) createBranchElement(body, atts);
body.replace(0, 0, new Element[] { p });
// Create an empty leaf element.
atts = ctx.getEmptySet();
atts = ctx.addAttribute(atts, StyleConstants.NameAttribute,
HTML.Tag.CONTENT);
Element leaf = createLeafElement(p, atts, 0, 1);
p.replace(0, 0, new Element[]{ leaf });
return html;
}
/**
@ -165,28 +188,29 @@ public class HTMLDocument extends DefaultStyledDocument
* @param a - the attributes for the element
* @param p0 - the beginning of the range >= 0
* @param p1 - the end of the range >= p0
*
* @return the new element
*/
protected Element createLeafElement(Element parent, AttributeSet a, int p0,
int p1)
{
// FIXME: Not implemented
System.out.println("createLeafElement not implemented");
return super.createLeafElement(parent, a, p0, p1);
RunElement el = new RunElement(parent, a, p0, p1);
el.addAttribute(StyleConstants.NameAttribute, HTML.Tag.CONTENT);
return new RunElement(parent, a, p0, p1);
}
/** This method returns an HTMLDocument.BlockElement object representing the
/**
* This method returns an HTMLDocument.BlockElement object representing the
* attribute set a and attached to parent.
*
* @param parent - the parent element
* @param a - the attributes for the element
*
* @return the new element
*/
protected Element createBranchElement(Element parent, AttributeSet a)
{
// FIXME: Not implemented
System.out.println("createBranchElement not implemented");
return super.createBranchElement(parent, a);
return new BlockElement(parent, a);
}
/**
@ -204,9 +228,9 @@ public class HTMLDocument extends DefaultStyledDocument
*/
protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data)
throws BadLocationException
{
super.insert(offset, data);
}
{
super.insert(offset, data);
}
/**
* Updates document structure as a result of text insertion. This will happen
@ -451,7 +475,7 @@ public class HTMLDocument extends DefaultStyledDocument
{
public BlockElement (Element parent, AttributeSet a)
{
super (parent, a);
super(parent, a);
}
/**
@ -470,10 +494,14 @@ public class HTMLDocument extends DefaultStyledDocument
*/
public String getName()
{
return (String) getAttribute(StyleConstants.NameAttribute);
Object tag = getAttribute(StyleConstants.NameAttribute);
String name = null;
if (tag != null)
name = tag.toString();
return name;
}
}
/**
* RunElement represents a section of text that has a set of
* HTML character level attributes assigned to it.
@ -502,7 +530,11 @@ public class HTMLDocument extends DefaultStyledDocument
*/
public String getName()
{
return (String) getAttribute(StyleConstants.NameAttribute);
Object tag = getAttribute(StyleConstants.NameAttribute);
String name = null;
if (tag != null)
name = tag.toString();
return name;
}
/**
@ -531,7 +563,13 @@ public class HTMLDocument extends DefaultStyledDocument
/** A stack for character attribute sets **/
Stack charAttrStack = new Stack();
/**
* The parse stack. This stack holds HTML.Tag objects that reflect the
* current position in the parsing process.
*/
private Stack parseStack = new Stack();
/** A mapping between HTML.Tag objects and the actions that handle them **/
HashMap tagToAction;
@ -699,8 +737,8 @@ public class HTMLDocument extends DefaultStyledDocument
*/
public void start(HTML.Tag t, MutableAttributeSet a)
{
// FIXME: Implement.
print ("ParagraphAction.start not implemented");
// FIXME: What else must be done here?
blockOpen(t, a);
}
/**
@ -709,8 +747,8 @@ public class HTMLDocument extends DefaultStyledDocument
*/
public void end(HTML.Tag t)
{
// FIXME: Implement.
print ("ParagraphAction.end not implemented");
// FIXME: What else must be done here?
blockClose(t);
}
}
@ -1102,7 +1140,11 @@ public class HTMLDocument extends DefaultStyledDocument
elements = new DefaultStyledDocument.ElementSpec[parseBuffer.size()];
parseBuffer.copyInto(elements);
parseBuffer.removeAllElements();
insert(offset, elements);
if (offset == 0)
create(elements);
else
insert(offset, elements);
offset += HTMLDocument.this.getLength() - offset;
}
@ -1250,12 +1292,27 @@ public class HTMLDocument extends DefaultStyledDocument
{
printBuffer();
DefaultStyledDocument.ElementSpec element;
element = new DefaultStyledDocument.ElementSpec(attr.copyAttributes(),
DefaultStyledDocument.ElementSpec.StartTagType);
// If the previous tag is content and the parent is p-implied, then
// we must also close the p-implied.
if (parseStack.size() > 0 && parseStack.peek() == HTML.Tag.IMPLIED)
{
element = new DefaultStyledDocument.ElementSpec(null,
DefaultStyledDocument.ElementSpec.EndTagType);
parseBuffer.addElement(element);
parseStack.pop();
}
parseStack.push(t);
AbstractDocument.AttributeContext ctx = getAttributeContext();
AttributeSet copy = attr.copyAttributes();
copy = ctx.addAttribute(copy, StyleConstants.NameAttribute, t);
element = new DefaultStyledDocument.ElementSpec(copy,
DefaultStyledDocument.ElementSpec.StartTagType);
parseBuffer.addElement(element);
printBuffer();
}
/**
* Instructs the parse buffer to close the block element associated with
* the given HTML.Tag
@ -1266,10 +1323,40 @@ public class HTMLDocument extends DefaultStyledDocument
{
printBuffer();
DefaultStyledDocument.ElementSpec element;
// If the previous tag is a start tag then we insert a synthetic
// content tag.
DefaultStyledDocument.ElementSpec prev;
prev = (DefaultStyledDocument.ElementSpec)
parseBuffer.get(parseBuffer.size() - 1);
if (prev.getType() == DefaultStyledDocument.ElementSpec.StartTagType)
{
AbstractDocument.AttributeContext ctx = getAttributeContext();
AttributeSet attributes = ctx.getEmptySet();
attributes = ctx.addAttribute(attributes, StyleConstants.NameAttribute,
HTML.Tag.CONTENT);
element = new DefaultStyledDocument.ElementSpec(attributes,
DefaultStyledDocument.ElementSpec.ContentType,
new char[0], 0, 0);
parseBuffer.add(element);
}
// If the previous tag is content and the parent is p-implied, then
// we must also close the p-implied.
else if (parseStack.peek() == HTML.Tag.IMPLIED)
{
element = new DefaultStyledDocument.ElementSpec(null,
DefaultStyledDocument.ElementSpec.EndTagType);
parseBuffer.addElement(element);
if (parseStack.size() > 0)
parseStack.pop();
}
element = new DefaultStyledDocument.ElementSpec(null,
DefaultStyledDocument.ElementSpec.EndTagType);
parseBuffer.addElement(element);
printBuffer();
if (parseStack.size() > 0)
parseStack.pop();
}
/**
@ -1298,16 +1385,42 @@ public class HTMLDocument extends DefaultStyledDocument
protected void addContent(char[] data, int offs, int length,
boolean generateImpliedPIfNecessary)
{
AbstractDocument.AttributeContext ctx = getAttributeContext();
DefaultStyledDocument.ElementSpec element;
AttributeSet attributes = null;
// Content must always be embedded inside a paragraph element,
// so we create this if the previous element is not one of
// <p>, <h1> .. <h6>.
boolean createImpliedParagraph = false;
HTML.Tag parent = (HTML.Tag) parseStack.peek();
if (parent != HTML.Tag.P && parent != HTML.Tag.H1
&& parent != HTML.Tag.H2
&& parent != HTML.Tag.H3 && parent != HTML.Tag.H4
&& parent != HTML.Tag.H5 && parent != HTML.Tag.H6
&& parent != HTML.Tag.TD)
{
attributes = ctx.getEmptySet();
attributes = ctx.addAttribute(attributes,
StyleConstants.NameAttribute,
HTML.Tag.IMPLIED);
element = new DefaultStyledDocument.ElementSpec(attributes,
DefaultStyledDocument.ElementSpec.StartTagType);
parseBuffer.add(element);
parseStack.push(HTML.Tag.IMPLIED);
}
// Copy the attribute set, don't use the same object because
// it may change
AttributeSet attributes = null;
if (charAttr != null)
attributes = charAttr.copyAttributes();
DefaultStyledDocument.ElementSpec element;
else
attributes = ctx.getEmptySet();
attributes = ctx.addAttribute(attributes, StyleConstants.NameAttribute,
HTML.Tag.CONTENT);
element = new DefaultStyledDocument.ElementSpec(attributes,
DefaultStyledDocument.ElementSpec.ContentType,
data, offs, length);
DefaultStyledDocument.ElementSpec.ContentType,
data, offs, length);
printBuffer();
// Add the element to the buffer