blob: 3b6d43717aa4cd478630d30890b87bac1e158e4f [file] [log] [blame]
/*****************************************************************************
* Copyright (c) 2020 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Pauline DEVILLE (CEA LIST) pauline.deville@cea.fr - Initial API and implementation
*****************************************************************************/
package org.eclipse.papyrus.model2doc.docx.services;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.eclipse.osgi.util.NLS;
import org.eclipse.papyrus.model2doc.docx.Activator;
import org.eclipse.papyrus.model2doc.docx.internal.util.StyleConstants;
public class StyleServiceImpl implements StyleService {
/**
*
* @see org.eclipse.papyrus.model2doc.docx.services.StyleService#applyDocumentMainTitleStyle(org.apache.poi.xwpf.usermodel.XWPFParagraph)
*
* @param paragraph
* @return
*/
@Override
public boolean applyDocumentMainTitleStyle(XWPFParagraph paragraph) {
String style = getDocumentMainTitleStyle();
return applyStyle(paragraph, style);
}
/**
*
* @see org.eclipse.papyrus.model2doc.docx.services.StyleService#applySectionTitleStyle(org.apache.poi.xwpf.usermodel.XWPFParagraph, int)
*
* @param paragraph
* @param sectionLevel
* @return
*/
@Override
public boolean applySectionTitleStyle(XWPFParagraph paragraph, int sectionLevel) {
String style = getSectionTitleStyle(sectionLevel);
return applyStyle(paragraph, style);
}
/**
* @see org.eclipse.papyrus.model2doc.docx.services.StyleService#applyTableStyle(org.apache.poi.xwpf.usermodel.XWPFTable, XWPFDocument)
*
* @param table
* @return
*/
@Override
public boolean applyTableStyle(XWPFTable table, XWPFDocument document) {
String styleName = StyleConstants.TABLE_STYLE_VALUE;
if (document.getStyles().styleExist(styleName)) {
table.setStyleID(styleName);
return true;
}
Activator.log.warn(NLS.bind("the style {0} does not exist in the template file", styleName)); //$NON-NLS-1$
return false;
}
/**
*
* @see org.eclipse.papyrus.model2doc.docx.services.StyleService#applyStyle(org.apache.poi.xwpf.usermodel.XWPFParagraph, java.lang.String)
*
* @param paragraph
* @param styleName
* @return
*/
@Override
public boolean applyStyle(XWPFParagraph paragraph, String styleName) {
XWPFDocument document = paragraph.getDocument();
if (document.getStyles() != null && document.getStyles().styleExist(styleName)) {
paragraph.setStyle(styleName);
return true;
}
Activator.log.warn(NLS.bind("the style {0} does not exist in the template file", styleName)); //$NON-NLS-1$
return false;
}
/**
*
* @see org.eclipse.papyrus.model2doc.docx.services.StyleService#getDocumentMainTitleStyle()
*
* @return
*/
@Override
public String getDocumentMainTitleStyle() {
return StyleConstants.TITLE_STYLE_VALUE;
}
/**
*
* @see org.eclipse.papyrus.model2doc.docx.services.StyleService#getSectionTitleStyle(int)
*
* @param sectionLevel
* @return
*/
@Override
public String getSectionTitleStyle(int sectionLevel) {
return getHeadingStyleValue() + sectionLevel;
}
/**
*
* @see org.eclipse.papyrus.model2doc.docx.services.StyleService#getHeadingStyleValue()
*
* @return
*/
@Override
public String getHeadingStyleValue() {
return StyleConstants.HEADING_STYLE_VALUE;
}
}