Package org.htmlunit.html.impl
Class SimpleRange
- java.lang.Object
-
- org.htmlunit.html.impl.SimpleRange
-
- All Implemented Interfaces:
java.io.Serializable
public class SimpleRange extends java.lang.Object implements java.io.Serializable
Simple implementation of an Range.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private DomNode
endContainer_
The end (focus) container.private int
endOffset_
The end (focus) offset; units are chars if the end container is a text node or an input element, DOM nodes otherwise.private DomNode
startContainer_
The start (anchor) container.private int
startOffset_
The start (anchor) offset; units are chars if the start container is a text node or an input element, DOM nodes otherwise.
-
Constructor Summary
Constructors Constructor Description SimpleRange()
Constructs a range without any content.SimpleRange(DomNode node)
Constructs a range for the specified element.SimpleRange(DomNode node, int offset)
Constructs a range for the provided element and start and end offset.SimpleRange(DomNode startNode, int startOffset, DomNode endNode, int endOffset)
Constructs a range for the provided elements and offsets.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DomDocumentFragment
cloneContents()
Duplicates the contents of this.SimpleRange
cloneRange()
Produces a new SimpleRange whose boundary-points are equal to the boundary-points of this.void
collapse(boolean toStart)
Collapse this range onto one of its boundary-points.java.util.List<DomNode>
containedNodes()
private static void
deleteAfter(DomNode node, int offset)
private static void
deleteBefore(DomNode node, int offset)
void
deleteContents()
Removes the contents of this range from the containing document or document fragment without returning a reference to the removed content.private void
deleteContents(DomNode ancestor)
boolean
equals(java.lang.Object obj)
DomDocumentFragment
extractContents()
Moves the contents of a Range from the containing document or document fragment to a new DocumentFragment.DomNode
getCommonAncestorContainer()
DomNode
getEndContainer()
int
getEndOffset()
private static int
getMaxOffset(DomNode node)
DomNode
getStartContainer()
int
getStartOffset()
private static java.lang.String
getText(DomNode node)
int
hashCode()
void
insertNode(DomNode newNode)
Inserts a node into the Document or DocumentFragment at the start of the Range.private static void
insertNodeOrDocFragment(DomNode parent, DomNode newNode, DomNode refNode)
boolean
isCollapsed()
private static boolean
isOffsetChars(DomNode node)
void
selectNode(DomNode node)
Select a node and its contents.void
selectNodeContents(DomNode node)
Select the contents within a node.void
setEnd(DomNode refNode, int offset)
Sets the attributes describing the end.void
setStart(DomNode refNode, int offset)
Sets the attributes describing the start.private static void
setText(DomNode node, java.lang.String text)
void
surroundContents(DomNode newParent)
Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.java.lang.String
toString()
-
-
-
Field Detail
-
startContainer_
private DomNode startContainer_
The start (anchor) container.
-
endContainer_
private DomNode endContainer_
The end (focus) container.
-
startOffset_
private int startOffset_
The start (anchor) offset; units are chars if the start container is a text node or an input element, DOM nodes otherwise.
-
endOffset_
private int endOffset_
The end (focus) offset; units are chars if the end container is a text node or an input element, DOM nodes otherwise.
-
-
Constructor Detail
-
SimpleRange
public SimpleRange()
Constructs a range without any content.
-
SimpleRange
public SimpleRange(DomNode node)
Constructs a range for the specified element.- Parameters:
node
- the node for the range
-
SimpleRange
public SimpleRange(DomNode node, int offset)
Constructs a range for the provided element and start and end offset.- Parameters:
node
- the node for the rangeoffset
- the start and end offset
-
-
Method Detail
-
cloneContents
public DomDocumentFragment cloneContents()
Duplicates the contents of this.- Returns:
- DocumentFragment that contains content equivalent to this
-
cloneRange
public SimpleRange cloneRange()
Produces a new SimpleRange whose boundary-points are equal to the boundary-points of this.- Returns:
- duplicated simple
-
collapse
public void collapse(boolean toStart)
Collapse this range onto one of its boundary-points.- Parameters:
toStart
- if true, collapses the Range onto its start; else collapses it onto its end.
-
deleteContents
public void deleteContents()
Removes the contents of this range from the containing document or document fragment without returning a reference to the removed content.
-
deleteContents
private void deleteContents(DomNode ancestor)
-
extractContents
public DomDocumentFragment extractContents() throws org.w3c.dom.DOMException
Moves the contents of a Range from the containing document or document fragment to a new DocumentFragment.- Returns:
- DocumentFragment containing the extracted contents
- Throws:
org.w3c.dom.DOMException
-
isCollapsed
public boolean isCollapsed() throws org.w3c.dom.DOMException
- Returns:
- true if startContainer equals endContainer and startOffset equals endOffset
- Throws:
org.w3c.dom.DOMException
-
getCommonAncestorContainer
public DomNode getCommonAncestorContainer() throws org.w3c.dom.DOMException
- Returns:
- the deepest common ancestor container of this range's two boundary-points.
- Throws:
org.w3c.dom.DOMException
-
getEndContainer
public DomNode getEndContainer()
- Returns:
- the Node within which this range ends
-
getEndOffset
public int getEndOffset()
- Returns:
- offset within the ending node of this
-
getStartContainer
public DomNode getStartContainer()
- Returns:
- the Node within which this range begins
-
getStartOffset
public int getStartOffset()
- Returns:
- offset within the starting node of this
-
insertNode
public void insertNode(DomNode newNode)
Inserts a node into the Document or DocumentFragment at the start of the Range. If the container is a Text node, this will be split at the start of the Range (as if the Text node's splitText method was performed at the insertion point) and the insertion will occur between the two resulting Text nodes. Adjacent Text nodes will not be automatically merged. If the node to be inserted is a DocumentFragment node, the children will be inserted rather than the DocumentFragment node itself.- Parameters:
newNode
- The node to insert at the start of the Range
-
insertNodeOrDocFragment
private static void insertNodeOrDocFragment(DomNode parent, DomNode newNode, DomNode refNode)
-
selectNode
public void selectNode(DomNode node)
Select a node and its contents.- Parameters:
node
- The node to select.
-
selectNodeContents
public void selectNodeContents(DomNode node)
Select the contents within a node.- Parameters:
node
- Node to select from
-
setEnd
public void setEnd(DomNode refNode, int offset)
Sets the attributes describing the end.- Parameters:
refNode
- the refNodeoffset
- offset
-
setStart
public void setStart(DomNode refNode, int offset)
Sets the attributes describing the start.- Parameters:
refNode
- the refNodeoffset
- offset
-
surroundContents
public void surroundContents(DomNode newParent)
Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.- Parameters:
newParent
- The node to surround the contents with.
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
isOffsetChars
private static boolean isOffsetChars(DomNode node)
-
getText
private static java.lang.String getText(DomNode node)
-
setText
private static void setText(DomNode node, java.lang.String text)
-
deleteBefore
private static void deleteBefore(DomNode node, int offset)
-
deleteAfter
private static void deleteAfter(DomNode node, int offset)
-
getMaxOffset
private static int getMaxOffset(DomNode node)
-
containedNodes
public java.util.List<DomNode> containedNodes()
- Returns:
- a list with all nodes contained in this range
-
-