Multivalent API

multivalent.node
Class IParaBox

java.lang.Object
  extended by multivalent.VObject
      extended by multivalent.Node
          extended by multivalent.INode
              extended by multivalent.node.IParaBox
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
IGroup, IHBox, VButton, VMenuButton

public class IParaBox
extends INode

Like a paragraph, layout children in a row, wrapping lines as necessary. Supports margins and floats. The most heavily used node type.

LATER: maybe introduce (and remove) a nonstructural nodes for each line to balance tree better.

Version:
$Revision: 1.4 $ $Date: 2002/02/02 13:41:39 $

Field Summary
 
Fields inherited from class multivalent.INode
border, INSETS, INSETS_ZERO, margin, padding
 
Fields inherited from class multivalent.Node
align, ALIGN_INVALID, ATTR_ID, ATTR_SCRIPT, baseline, BASELINE, bbox, BOTH, BOTTOM, CENTER, CHAR, FILL, floats, INHERIT, JUSTIFY, LEFT, MAXNONSTRUCTDEPTH, MIDDLE, name_, NONE, observers_, parent_, PROBEWIDTH, RIGHT, sticky_, stickycnt_, TOP, valid_, valign
 
Fields inherited from class multivalent.VObject
attr_
 
Constructor Summary
IParaBox(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> attr, INode parent)
           
 
Method Summary
 boolean eventNode(java.awt.AWTEvent e, java.awt.Point rel)
          Stops at first node where bbox.y > rel.y.
 boolean formatNode(int width, int height, Context cx)
          Children report dimensions (width and height), parent places at (x,y).
 void paintNode(java.awt.Rectangle docclip, Context cx)
          Paint (nonexistent) spaces between words, as in background for selection and highlights, underline for hyperlinks
 void reformat(Node dirty)
          Needs refurbishing.
 
Methods inherited from class multivalent.INode
addCategory, appendChild, breakAfter, breakBefore, checkRep, childAt, childNum, clipboardNode, clone, contains, dump, dx, dy, eventBeforeAfter, findDFS, formatBeforeAfter, getElementById, getFirstChild, getFirstLeaf, getLastChild, getLastLeaf, getNextSibling, getPreviousSibling, insertChildAt, isStruct, markDirtySubtreeDown, paintBeforeAfter, removeAllChildren, removeChild, removeChildAt, setChildAt, setName, size, structChildAt, structChildNum, structsize
 
Methods inherited from class multivalent.Node
addObserver, addSticky, addSticky, childNum, clipboardBeforeAfter, cmp, commonAncestor, commonAncestor, contains, deleteObserver, dump, dump, findBFS, findBFS, findBFS, findDFS, findDFS, findDFS, getAbsLocation, getActivesAt, getActivesAt, getActivesAt, getBbox, getBrowser, getDocument, getIScrollPane, getName, getNextLeaf, getNextNode, getNodeName, getObservers, getParentNode, getPrevLeaf, getPrevNode, getRelLocation, getRoot, getSticky, indexSticky, intersects, isLeaf, isValid, markDirty, markDirtySubtree, markDirtyTo, morphInto, remove, removeSticky, removeSticky, removeTidy, repaint, repaint, repaint, repaint, scrollTo, scrollTo, setParentNode, setValid, sizeSticky, spanChunky, spanChunky, structChildNum, toString
 
Methods inherited from class multivalent.VObject
attrEntrySetIterator, attrKeysIterator, clearAttributes, getAttr, getAttr, getAttributes, getGlobal, getValue, hasAttributes, putAttr, removeAttr, setAttributes
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IParaBox

public IParaBox(java.lang.String name,
                java.util.Map<java.lang.String,java.lang.Object> attr,
                INode parent)
Method Detail

formatNode

public boolean formatNode(int width,
                          int height,
                          Context cx)
Description copied from class: INode
Children report dimensions (width and height), parent places at (x,y). Bbox = union of children's bboxes Children stacked vertically like TeX vbox; override to implement other layout strategies To implement a new layout manager, override this method.

Overrides:
formatNode in class INode
See Also:
FixedI

reformat

public void reformat(Node dirty)
Needs refurbishing.

Overrides:
reformat in class Node

paintNode

public void paintNode(java.awt.Rectangle docclip,
                      Context cx)
Paint (nonexistent) spaces between words, as in background for selection and highlights, underline for hyperlinks.

Overrides:
paintNode in class INode

eventNode

public boolean eventNode(java.awt.AWTEvent e,
                         java.awt.Point rel)
Stops at first node where bbox.y > rel.y. Can "hit" in between nodes to pick up prevailing spans (cur node set to first node following, with offset -1).

Overrides:
eventNode in class INode
See Also:
TreeEvent, SemanticEvent

Multivalent API