Added explicit Parent class to the DOM inheritence hierarchy.
Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ParentTest.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ParentTest.java
new file mode 100644
index 0000000..c3e1699
--- /dev/null
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/dom/ParentTest.java
@@ -0,0 +1,142 @@
+package org.eclipse.vex.core.internal.dom;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class ParentTest {
+
+ private TestParent parent;
+
+ @Before
+ public void setUp() throws Exception {
+ parent = new TestParent();
+ }
+
+ @Test
+ public void addChild() throws Exception {
+ assertFalse(parent.hasChildren());
+ assertEquals(0, parent.getChildCount());
+
+ final TestChild child = new TestChild();
+ parent.addChild(child);
+ assertTrue(parent.hasChildren());
+ assertEquals(1, parent.getChildCount());
+ assertSame(child, parent.getChildNode(0));
+ assertSame(child, parent.getChildNodes().get(0));
+ }
+
+ @Test
+ public void insertChild() throws Exception {
+ assertFalse(parent.hasChildren());
+ assertEquals(0, parent.getChildCount());
+
+ parent.addChild(new TestChild());
+ parent.addChild(new TestChild());
+ assertEquals(2, parent.getChildCount());
+
+ final TestChild child = new TestChild();
+ parent.insertChild(1, child);
+ assertEquals(3, parent.getChildCount());
+ assertSame(child, parent.getChildNode(1));
+ assertSame(child, parent.getChildNodes().get(1));
+ }
+
+ @Test
+ public void removeChild() throws Exception {
+ final TestChild child = new TestChild();
+ parent.addChild(new TestChild());
+ parent.addChild(child);
+ parent.addChild(new TestChild());
+ assertTrue(parent.hasChildren());
+ assertEquals(3, parent.getChildCount());
+
+ parent.removeChild(child);
+ assertTrue(parent.hasChildren());
+ assertEquals(2, parent.getChildCount());
+ assertFalse(parent.getChildNodes().contains(child));
+ }
+
+ @Test
+ public void shouldSetParentOnAddedChild() throws Exception {
+ final TestChild child = new TestChild();
+ assertNull(child.getParent());
+
+ parent.addChild(child);
+ assertSame(parent, child.getParent());
+ }
+
+ @Test
+ public void shouldSetParentOnInsertedChild() throws Exception {
+ parent.addChild(new TestChild());
+ parent.addChild(new TestChild());
+
+ final TestChild child = new TestChild();
+ assertNull(child.getParent());
+
+ parent.insertChild(1, child);
+ assertSame(parent, child.getParent());
+ }
+
+ @Test
+ public void shouldResetParentOnRemovedChild() throws Exception {
+ final TestChild child = new TestChild();
+ parent.addChild(child);
+ assertSame(parent, child.getParent());
+
+ parent.removeChild(child);
+ assertNull(child.getParent());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void shouldReturnUnmodifiableChildNodesList() throws Exception {
+ parent.addChild(new TestChild());
+ parent.addChild(new TestChild());
+ parent.addChild(new TestChild());
+ final List<Node> childNodes = parent.getChildNodes();
+ childNodes.add(new TestChild());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void shouldReturnUnmodifiableChildNodesIterator() throws Exception {
+ parent.addChild(new TestChild());
+ parent.addChild(new TestChild());
+ parent.addChild(new TestChild());
+ final Iterator<Node> iterator = parent.getChildIterator();
+ iterator.next();
+ iterator.remove();
+ }
+
+ private static class TestParent extends Parent {
+ @Override
+ public String getNodeType() {
+ return "Parent";
+ }
+
+ @Override
+ public String getBaseURI() {
+ return null;
+ }
+ }
+
+ private static class TestChild extends Node {
+ @Override
+ public String getNodeType() {
+ return "Child";
+ }
+
+ @Override
+ public String getBaseURI() {
+ return null;
+ }
+
+ }
+}
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/tests/VEXCoreTestSuite.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/tests/VEXCoreTestSuite.java
index 300a314..a9675bb 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/tests/VEXCoreTestSuite.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/tests/VEXCoreTestSuite.java
@@ -28,6 +28,7 @@
import org.eclipse.vex.core.internal.dom.GapContentTest;
import org.eclipse.vex.core.internal.dom.NamespaceStackTest;
import org.eclipse.vex.core.internal.dom.NamespaceTest;
+import org.eclipse.vex.core.internal.dom.ParentTest;
import org.eclipse.vex.core.internal.dom.SchemaValidatorTest;
import org.eclipse.vex.core.internal.dom.SpaceNormalizerTest;
import org.eclipse.vex.core.internal.dom.TextWrapperTest;
@@ -53,6 +54,7 @@
addTest(new JUnit4TestAdapter(SchemaValidatorTest.class));
addTest(new JUnit4TestAdapter(CssTest.class));
addTest(new JUnit4TestAdapter(BatikBehaviorTest.class));
+ addTest(new JUnit4TestAdapter(ParentTest.class));
addTestSuite(PropertyTest.class);
addTestSuite(RuleTest.class);
addTestSuite(BlockElementBoxTest.class);
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/Rule.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/Rule.java
index 47962b3..f4ddc8f 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/Rule.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/Rule.java
@@ -127,10 +127,10 @@
if (cs.getCondition().getConditionType() == Condition.SAC_PSEUDO_CLASS_CONDITION) {
if (element instanceof PseudoElement) {
final AttributeCondition ac = (AttributeCondition) cs.getCondition();
- return ac.getValue().equals(element.getLocalName()) && matches(cs.getSimpleSelector(), element.getParent());
+ return ac.getValue().equals(element.getLocalName()) && matches(cs.getSimpleSelector(), element.getParentElement());
} else if (element instanceof CommentElement) {
final AttributeCondition ac = (AttributeCondition) cs.getCondition();
- return CommentElement.CSS_RULE_NAME.equals(ac.getValue()) && matches(cs.getSimpleSelector(), element.getParent());
+ return CommentElement.CSS_RULE_NAME.equals(ac.getValue()) && matches(cs.getSimpleSelector(), element.getParentElement());
} else {
return false;
}
@@ -183,11 +183,11 @@
case Selector.SAC_DESCENDANT_SELECTOR:
final DescendantSelector ds = (DescendantSelector) selector;
- return matches(ds.getSimpleSelector(), element) && matchesAncestor(ds.getAncestorSelector(), element.getParent());
+ return matches(ds.getSimpleSelector(), element) && matchesAncestor(ds.getAncestorSelector(), element.getParentElement());
case Selector.SAC_CHILD_SELECTOR:
final DescendantSelector ds2 = (DescendantSelector) selector;
- final Element parent = element.getParent();
+ final Element parent = element.getParentElement();
return matches(ds2.getSimpleSelector(), element) && matches(ds2.getAncestorSelector(), parent);
case Selector.SAC_DIRECT_ADJACENT_SELECTOR:
@@ -197,7 +197,7 @@
if (element != null && element.getParent() != null && matches(ss.getSiblingSelector(), element)) {
// find next sibling
- final Iterator<Element> i = element.getParent().getChildElements().iterator();
+ final Iterator<Element> i = element.getParentElement().getChildElements().iterator();
Element e = null;
Element f = null;
while (i.hasNext() && e != element) {
@@ -227,7 +227,7 @@
if (matches(selector, e)) {
return true;
}
- e = e.getParent();
+ e = e.getParentElement();
}
return false;
}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/StyleSheet.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/StyleSheet.java
index 525f6a5..f3ee679 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/StyleSheet.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/css/StyleSheet.java
@@ -183,7 +183,7 @@
final Styles styles = new Styles();
Styles parentStyles = null;
if (element.getParent() != null) {
- parentStyles = getStyles(element.getParent());
+ parentStyles = getStyles(element.getParentElement());
}
final Map<String, LexicalUnit> decls = getApplicableDeclarations(element);
@@ -207,7 +207,7 @@
break;
case LexicalUnit.SAC_ATTR:
// content: attr(attributeName)
- final String attributeValue = element.getParent().getAttributeValue(lexicalUnit.getStringValue());
+ final String attributeValue = element.getParentElement().getAttributeValue(lexicalUnit.getStringValue());
if (attributeValue != null) {
content.add(attributeValue);
}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java
index 604e917..5bd60f5 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/DocumentFragment.java
@@ -132,7 +132,7 @@
out.write(contentLength);
for (int i = 0; i < contentLength; i++) {
if (content.isElementMarker(i)) {
- out.writeUTF("\0");
+ out.writeUTF("\0"); // This internal representation of element markers has nothing to do with the internal representation in GapContent.
} else {
out.writeUTF(content.getText(i, 1));
}
@@ -170,7 +170,7 @@
final Content result = new GapContent(contentLength);
for (int i = 0; i < contentLength; i++) {
final String input = in.readUTF();
- if ("\0".equals(input)) {
+ if ("\0".equals(input)) { // This internal representation of element markers has nothing to do with the internal representation in GapContent.
result.insertElementMarker(i);
} else {
result.insertText(i, input);
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
index a52d7b9..b375a2a 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
@@ -30,7 +30,7 @@
/**
* Represents a tag in an XML document. Methods are available for managing the element's attributes and children.
*/
-public class Element extends Node implements Cloneable {
+public class Element extends Parent implements Cloneable {
/**
* The xml:base attribute re-defines the base URI for a part of an XML document, according to the XML Base
@@ -42,8 +42,6 @@
private final QualifiedName name;
- private Element parent = null;
- private final List<Node> childNodes = new ArrayList<Node>();
private final Map<QualifiedName, Attribute> attributes = new HashMap<QualifiedName, Attribute>();
private final Map<String, String> namespaceDeclarations = new HashMap<String, String>();
@@ -55,11 +53,6 @@
name = qualifiedName;
}
- public void addChild(final Element child) {
- childNodes.add(child);
- child.setParent(this);
- }
-
@Override
public Element clone() {
try {
@@ -177,10 +170,6 @@
return result;
}
- public Iterator<Node> getChildIterator() {
- return childNodes.iterator();
- }
-
public List<Element> getChildElements() {
final List<Node> nodes = getChildNodes();
final Iterator<Node> iter = nodes.iterator();
@@ -194,17 +183,14 @@
return elements;
}
- public List<Node> getChildNodes() {
- return Document.createNodeList(getContent(), getStartOffset() + 1, getEndOffset(), childNodes);
- }
-
+ @Override
public Document getDocument() {
- Element root = this;
+ Node root = this;
while (root.getParent() != null) {
root = root.getParent();
}
if (root instanceof RootElement) {
- return root.getDocument();
+ return ((Element) root).getDocument();
} else {
return null;
}
@@ -230,19 +216,6 @@
return prefix + ":" + getLocalName();
}
- public Element getParent() {
- return parent;
- }
-
- /**
- * Inserts the given element as a child at the given child index. Sets the parent attribute of the given element to
- * this element.
- */
- public void insertChild(final int index, final Element child) {
- childNodes.add(index, child);
- child.setParent(this);
- }
-
public boolean isEmpty() {
return getStartOffset() + 1 == getEndOffset();
}
@@ -263,22 +236,34 @@
}
sb.append("> (");
- sb.append(getStartPosition());
+ sb.append(getStartOffset());
sb.append(",");
- sb.append(getEndPosition());
+ sb.append(getEndOffset());
sb.append(")");
return sb.toString();
}
- public void setParent(final Element parent) {
- this.parent = parent;
+ public Element getParentElement() {
+ return getParentElement(this);
+ }
+
+ private static Element getParentElement(final Node node) {
+ final Node parent = node.getParent();
+ if (parent == null) {
+ return null;
+ }
+ if (parent instanceof Element) {
+ return (Element) parent;
+ }
+ return getParentElement(parent);
}
public String getNamespaceURI(final String namespacePrefix) {
if (namespaceDeclarations.containsKey(namespacePrefix)) {
return namespaceDeclarations.get(namespacePrefix);
}
+ final Element parent = getParentElement();
if (parent != null) {
return parent.getNamespaceURI(namespacePrefix);
}
@@ -308,6 +293,7 @@
return entry.getKey();
}
}
+ final Element parent = getParentElement();
if (parent != null) {
final String parentPrefix = parent.getNamespacePrefix(namespaceURI);
if (!namespaceDeclarations.containsKey(parentPrefix)) {
@@ -331,6 +317,7 @@
public Collection<String> getNamespacePrefixes() {
final HashSet<String> result = new HashSet<String>();
result.addAll(getDeclaredNamespacePrefixes());
+ final Element parent = getParentElement();
if (parent != null) {
result.addAll(parent.getNamespacePrefixes());
}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java
index 82f1300..c234c99 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Node.java
@@ -15,34 +15,23 @@
*/
public abstract class Node {
+ private Parent parent;
private Content content;
private Position startPosition;
private Position endPosition;
+ public Parent getParent() {
+ return parent;
+ }
+
+ public void setParent(final Parent parent) {
+ this.parent = parent;
+ }
+
public Content getContent() {
return content;
}
- public int getEndOffset() {
- return endPosition.getOffset();
- }
-
- public Position getEndPosition() {
- return endPosition;
- }
-
- public int getStartOffset() {
- return startPosition.getOffset();
- }
-
- public Position getStartPosition() {
- return startPosition;
- }
-
- public String getText() {
- return content.getText(getStartOffset(), getEndOffset() - getStartOffset());
- }
-
/**
* Sets the content of this node
*
@@ -59,6 +48,18 @@
endPosition = content.createPosition(endOffset);
}
+ public int getEndOffset() {
+ return endPosition.getOffset();
+ }
+
+ public int getStartOffset() {
+ return startPosition.getOffset();
+ }
+
+ public String getText() {
+ return content.getText(getStartOffset(), getEndOffset() - getStartOffset());
+ }
+
public abstract String getNodeType();
public abstract String getBaseURI();
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
new file mode 100644
index 0000000..ef389c2
--- /dev/null
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
@@ -0,0 +1,47 @@
+package org.eclipse.vex.core.internal.dom;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+public abstract class Parent extends Node {
+
+ private final List<Node> children = new ArrayList<Node>();
+
+ public void addChild(final Node child) {
+ children.add(child);
+ child.setParent(this);
+ }
+
+ public void insertChild(final int index, final Node child) {
+ children.add(index, child);
+ child.setParent(this);
+ }
+
+ public void removeChild(final Node child) {
+ children.remove(child);
+ child.setParent(null);
+ }
+
+ public List<Node> getChildNodes() {
+ // return Document.createNodeList(getContent(), getStartOffset() + 1, getEndOffset(), childNodes);
+ return Collections.unmodifiableList(children);
+ }
+
+ public Iterator<Node> getChildIterator() {
+ return getChildNodes().iterator();
+ }
+
+ public Node getChildNode(final int index) {
+ return children.get(index);
+ }
+
+ public int getChildCount() {
+ return children.size();
+ }
+
+ public boolean hasChildren() {
+ return !children.isEmpty();
+ }
+}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java
index 374621f..fd1eccc 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/AbstractBlockBox.java
@@ -488,7 +488,7 @@
protected void paintSelectionFrame(final LayoutContext context, final int x, final int y, final boolean selected) {
final Element element = getElement();
- final Element parent = element == null ? null : element.getParent();
+ final Element parent = element == null ? null : element.getParentElement();
final boolean paintFrame = context.isElementSelected(element) && !context.isElementSelected(parent);
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/BlockElementBox.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/BlockElementBox.java
index 9c58ef9..bcff036 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/BlockElementBox.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/BlockElementBox.java
@@ -303,7 +303,7 @@
*/
private int getItemNumber() {
final Element element = getElement();
- final Element parent = element.getParent();
+ final Element parent = element.getParentElement();
if (parent == null) {
return 1;
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/TextBox.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/TextBox.java
index f104ca9..6ce554d 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/TextBox.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/layout/TextBox.java
@@ -146,7 +146,7 @@
}
break;
}
- e = e.getParent();
+ e = e.getParentElement();
}
if (inSelectedBlock) {
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/validator/WTPVEXValidator.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/validator/WTPVEXValidator.java
index 6083eab..4e7025a 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/validator/WTPVEXValidator.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/validator/WTPVEXValidator.java
@@ -180,7 +180,7 @@
if (declarationFromRoot != null) {
return declarationFromRoot;
}
- final CMElementDeclaration parentDeclaration = getElementDeclaration(element.getParent());
+ final CMElementDeclaration parentDeclaration = getElementDeclaration(element.getParentElement());
if (parentDeclaration == null) {
return null;
}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java
index 1c9b2c9..68a35bb 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/VexWidgetImpl.java
@@ -276,7 +276,7 @@
}
final Element element = doc.getElementAt(getCaretOffset());
- final Element parent = element.getParent();
+ final Element parent = element.getParentElement();
if (parent == null) {
// can't unwrap the root
return false;
@@ -616,7 +616,7 @@
}
final Element element = doc.getElementAt(getCaretOffset());
- final Element parent = element.getParent();
+ final Element parent = element.getParentElement();
if (parent == null) {
// can't morph the root
return new ElementName[0];
@@ -864,7 +864,7 @@
caretColor = new Color(red, green, blue);
break;
}
- element = element.getParent();
+ element = element.getParentElement();
}
}
@@ -1160,7 +1160,7 @@
Element element = doc.getElementAt(getCaretOffset());
Styles styles = getStyleSheet().getStyles(element);
while (!styles.isBlock()) {
- element = element.getParent();
+ element = element.getParentElement();
styles = getStyleSheet().getStyles(element);
}
diff --git a/org.eclipse.vex.docbook/src/org/eclipse/vex/docbook/DocBookOutlineProvider.java b/org.eclipse.vex.docbook/src/org/eclipse/vex/docbook/DocBookOutlineProvider.java
index 1d15624..2dbde2c 100644
--- a/org.eclipse.vex.docbook/src/org/eclipse/vex/docbook/DocBookOutlineProvider.java
+++ b/org.eclipse.vex.docbook/src/org/eclipse/vex/docbook/DocBookOutlineProvider.java
@@ -44,7 +44,7 @@
public Element getOutlineElement(final Element child) {
Element element = child;
while (element.getParent() != null && !isTitledElement(element)) {
- element = element.getParent();
+ element = element.getParentElement();
}
return element;
@@ -63,7 +63,7 @@
}
public Object getParent(final Object element) {
- final Element parent = ((Element) element).getParent();
+ final Element parent = ((Element) element).getParentElement();
if (parent == null) {
return element;
} else {
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/editor/VexEditor.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/editor/VexEditor.java
index 72c5e32..2767c7f 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/editor/VexEditor.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/editor/VexEditor.java
@@ -723,7 +723,7 @@
Element element = vexWidget.getCurrentElement();
while (element != null) {
path.add(element.getPrefixedName());
- element = element.getParent();
+ element = element.getParentElement();
}
Collections.reverse(path);
final StringBuilder sb = new StringBuilder(path.size() * 15);
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/SplitBlockElementHandler.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/SplitBlockElementHandler.java
index e83eea0..8130bf1 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/SplitBlockElementHandler.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/SplitBlockElementHandler.java
@@ -38,7 +38,7 @@
Element element = widget.getCurrentElement();
Styles styles = widget.getStyleSheet().getStyles(element);
while (!styles.isBlock()) {
- element = element.getParent();
+ element = element.getParentElement();
if (element == null || element instanceof RootElement) {
return; // we reached the root element which cannot be split
}
@@ -93,7 +93,7 @@
if (child == element) {
break;
}
- child = child.getParent();
+ child = child.getParentElement();
}
for (int i = children.size() - 1; i >= 0; i--) {
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java
index 751d004..d7aba23 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/handlers/VexHandlerUtil.java
@@ -214,7 +214,7 @@
if (ss.getStyles(element).getDisplay().equals(CSS.TABLE_ROW)) {
return element;
}
- element = element.getParent();
+ element = element.getParentElement();
}
return null;
@@ -458,14 +458,14 @@
Element table = doc.getElementAt(offset);
while (table != null && !LayoutUtils.isTableChild(ss, table)) {
- table = table.getParent();
+ table = table.getParentElement();
}
while (table != null && LayoutUtils.isTableChild(ss, table)) {
- table = table.getParent();
+ table = table.getParentElement();
}
- if (table == null || table.getParent() == null) {
+ if (table == null || table.getParentElement() == null) {
return;
}
diff --git a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DefaultOutlineProvider.java b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DefaultOutlineProvider.java
index 66604ee..f3ae7a1 100644
--- a/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DefaultOutlineProvider.java
+++ b/org.eclipse.vex.ui/src/org/eclipse/vex/ui/internal/outline/DefaultOutlineProvider.java
@@ -66,7 +66,7 @@
}
// root?
- final Element parent = element.getParent();
+ final Element parent = element.getParentElement();
if (parent == null) {
return element;
}
diff --git a/org.eclipse.vex.xhtml/src/org/eclipse/vex/xhtml/XhtmlOutlineProvider.java b/org.eclipse.vex.xhtml/src/org/eclipse/vex/xhtml/XhtmlOutlineProvider.java
index bbba6e1..6525085 100644
--- a/org.eclipse.vex.xhtml/src/org/eclipse/vex/xhtml/XhtmlOutlineProvider.java
+++ b/org.eclipse.vex.xhtml/src/org/eclipse/vex/xhtml/XhtmlOutlineProvider.java
@@ -50,7 +50,7 @@
return element;
}
- element = element.getParent();
+ element = element.getParentElement();
}
return element;
}
@@ -70,7 +70,7 @@
}
public Object getParent(final Object element) {
- final Element parent = ((Element) element).getParent();
+ final Element parent = ((Element) element).getParentElement();
if (parent == null) {
return element;
} else {
@@ -123,7 +123,7 @@
// between this element and the next element at the same level
final int level = Integer.parseInt(element.getLocalName().substring(1));
final String childName = "h" + (level + 1);
- final List<Element> childElements = element.getParent().getChildElements();
+ final List<Element> childElements = element.getParentElement().getChildElements();
boolean foundSelf = false;
for (final Element child : childElements) {
if (child == element) {