- // FIXME inefficient
- public final Box nextSibling() {
- int index = parent.indexNode(this);
- if (index >= parent.treeSize() - 1) return null;
- return parent.getChild(index + 1);
- }
-
- // FIXME inefficient
- public final Box prevSibling() {
- int index = parent.indexNode(this);
- if (index <= 0) return null;
- return parent.getChild(index - 1);
- }
-
+ public final int getIndexInParent() { return parent == null ? 0 : parent.indexNode(this); }
+ public final Box nextSibling() { return parent.getChild(parent.indexNode(this) + 1); }
+ public final Box prevSibling() { return parent.getChild(parent.indexNode(this) - 1); }