/** * @param block the block to filter out * @return the next sibling that is not a protected block or null if not found */ public Block getNextSibling(Block block) { Block sibling = block.getNextSibling(); while (sibling != null && isProtectedBlock(sibling)) { sibling = sibling.getNextSibling(); } return sibling; }
/** * {@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()); lastBlock = block; Block nextBlock = oldBlock.getNextSibling(); if (nextBlock != null) { nextBlock.setPreviousSiblingBlock(lastBlock);
/** * {@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); } }
wikiMacroBlock.setNextSiblingBlock(syncMetaDataBlock.getNextSibling()); wikiMacroBlock.setPreviousSiblingBlock(syncMetaDataBlock.getPreviousSibling());