/** * {@inheritDoc} * * @see org.xwiki.rendering.block.Block#insertChildAfter(org.xwiki.rendering.block.Block, * org.xwiki.rendering.block.Block) */ public void insertChildAfter(Block blockToInsert, Block previousBlock) { if (previousBlock == null) { insertChildBefore(blockToInsert, null); } else { // If there's a next block to previousBlock then get it to set its previous sibling Block nextBlock = previousBlock.getNextSibling(); if (nextBlock != null) { nextBlock.setPreviousSiblingBlock(blockToInsert); blockToInsert.setNextSiblingBlock(nextBlock); } else { blockToInsert.setNextSiblingBlock(null); } blockToInsert.setPreviousSiblingBlock(previousBlock); previousBlock.setNextSiblingBlock(blockToInsert); this.childrenBlocks.add(indexOfChild(previousBlock) + 1, blockToInsert); } }
Block lastBlock = this.childrenBlocks.get(this.childrenBlocks.size() - 1); blockToInsert.setPreviousSiblingBlock(lastBlock); lastBlock.setNextSiblingBlock(blockToInsert); } else { blockToInsert.setPreviousSiblingBlock(null); blockToInsert.setNextSiblingBlock(null); this.childrenBlocks.add(blockToInsert); } else { previousBlock.setNextSiblingBlock(blockToInsert); blockToInsert.setPreviousSiblingBlock(previousBlock); } else { blockToInsert.setPreviousSiblingBlock(null); blockToInsert.setNextSiblingBlock(nextBlock); nextBlock.setPreviousSiblingBlock(blockToInsert); this.childrenBlocks.add(indexOfChild(nextBlock), blockToInsert);
/** * {@inheritDoc} * * @see org.xwiki.rendering.block.Block#removeBlock(Block) * @since 2.6RC1 */ public void removeBlock(Block childBlockToRemove) { getChildren().remove(childBlockToRemove); if (childBlockToRemove != null) { Block previousBlock = childBlockToRemove.getPreviousSibling(); if (previousBlock != null) { previousBlock.setNextSiblingBlock(childBlockToRemove.getNextSibling()); } Block nextBlock = childBlockToRemove.getNextSibling(); if (nextBlock != null) { nextBlock.setPreviousSiblingBlock(previousBlock); } childBlockToRemove.setNextSiblingBlock(null); childBlockToRemove.setPreviousSiblingBlock(null); } }
previousBlock.setNextSiblingBlock(oldBlock.getNextSibling()); block.setPreviousSiblingBlock(previousBlock); if (previousBlock != null) { previousBlock.setNextSiblingBlock(block); lastBlock.setNextSiblingBlock(nextBlock); oldBlock.setNextSiblingBlock(null); oldBlock.setPreviousSiblingBlock(null);