| /******************************************************************************* |
| * Copyright (c) 2013 Obeo. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Obeo - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.emf.compare.doc; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import org.eclipse.mylyn.internal.wikitext.mediawiki.core.block.TableOfContentsBlock; |
| import org.eclipse.mylyn.wikitext.core.parser.markup.Block; |
| import org.eclipse.mylyn.wikitext.core.parser.markup.MarkupLanguage; |
| import org.eclipse.mylyn.wikitext.mediawiki.core.MediaWikiLanguage; |
| |
| /** |
| * @author <a href="mailto:mikael.barbero@obeo.fr">Mikael Barbero</a> |
| */ |
| public class CustomMediaWikiLanguage extends MediaWikiLanguage { |
| |
| public CustomMediaWikiLanguage() { |
| super(); |
| setName("CustomMediaWikiLanguage"); |
| } |
| |
| @Override |
| protected void addStandardBlocks(List<Block> blocks, List<Block> paragraphBreakingBlocks) { |
| super.addStandardBlocks(blocks, paragraphBreakingBlocks); |
| CustomTableOfContentsBlock customTOCBlock = new CustomTableOfContentsBlock(); |
| replaceTOCBlock(blocks, customTOCBlock); |
| replaceTOCBlock(paragraphBreakingBlocks, customTOCBlock); |
| } |
| |
| private void replaceTOCBlock(List<Block> blocksList, CustomTableOfContentsBlock customTOCBlock) { |
| for (Block block : new ArrayList<>(blocksList)) { |
| if (block instanceof TableOfContentsBlock) { |
| |
| blocksList.set(blocksList.indexOf(block), customTOCBlock); |
| } |
| } |
| } |
| |
| @Override |
| public MarkupLanguage clone() { |
| return (CustomMediaWikiLanguage)super.clone(); |
| } |
| } |