All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.odftoolkit.odfdom.dom.element.text.TextPElement Maven / Gradle / Ivy

Go to download

ODFDOM is an OpenDocument Format (ODF) framework. Its purpose is to provide an easy common way to create, access and manipulate ODF files, without requiring detailed knowledge of the ODF specification. It is designed to provide the ODF developer community with an easy lightwork programming API portable to any object-oriented language. The current reference implementation is written in Java.

There is a newer version: 1.0.0-BETA1
Show newest version
/**
 * **********************************************************************
 *
 * 

DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * *

Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved. * *

Use is subject to license terms. * *

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0. You can also obtain a copy of the License at * http://odftoolkit.org/docs/license.txt * *

Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. * *

See the License for the specific language governing permissions and limitations under the * License. * *

********************************************************************** */ /* * This file is automatically generated. * Don't edit manually. */ package org.odftoolkit.odfdom.dom.element.text; import org.odftoolkit.odfdom.dom.DefaultElementVisitor; import org.odftoolkit.odfdom.dom.OdfDocumentNamespace; import org.odftoolkit.odfdom.dom.element.OdfStylePropertiesBase; import org.odftoolkit.odfdom.dom.element.style.StyleStyleElement; import org.odftoolkit.odfdom.dom.style.OdfStyleFamily; import org.odftoolkit.odfdom.dom.style.props.OdfStylePropertiesSet; import org.odftoolkit.odfdom.incubator.doc.style.OdfStyle; import org.odftoolkit.odfdom.pkg.ElementVisitor; import org.odftoolkit.odfdom.pkg.OdfElement; import org.odftoolkit.odfdom.pkg.OdfFileDom; import org.odftoolkit.odfdom.pkg.OdfName; /** DOM implementation of OpenDocument element {@odf.element text:p}. */ public class TextPElement extends TextParagraphElementBase { public static final OdfName ELEMENT_NAME = OdfName.newName(OdfDocumentNamespace.TEXT, "p"); /** * Create the instance of TextPElement * * @param ownerDoc The type is OdfFileDom */ public TextPElement(OdfFileDom ownerDoc) { super( ownerDoc, ELEMENT_NAME, OdfStyleFamily.Paragraph, OdfName.newName(OdfDocumentNamespace.TEXT, "style-name")); } /** * Get the element name * * @return return OdfName the name of element {@odf.element text:p}. */ public OdfName getOdfName() { return ELEMENT_NAME; } /** * Accept an visitor instance to allow the visitor to do some operations. Refer to visitor design * pattern to get a better understanding. * * @param visitor an instance of DefaultElementVisitor */ @Override public void accept(ElementVisitor visitor) { if (visitor instanceof DefaultElementVisitor) { DefaultElementVisitor defaultVisitor = (DefaultElementVisitor) visitor; defaultVisitor.visit(this); } else { visitor.visit(this); } } /** Add text content. Only elements which are allowed to have text content offer this method. */ public void newTextNode(String content) { if (content != null && !content.equals("")) { this.appendChild(this.getOwnerDocument().createTextNode(content)); } } /** * Replaces all content with given text content. Only elements which are allowed to have text * content offer this method. * * @param new text content to replace the existing children (or removes all if null) */ @Override public void setTextContent(String content) { super.setTextContent(content); ((OdfFileDom) this.ownerDocument).updateInContentMetadataCache(this); } @Override protected void onRemoveNode() { super.onRemoveNode(); ((OdfFileDom) this.ownerDocument).getInContentMetadataCache().remove(this); } @Override protected void onInsertNode() { super.onInsertNode(); ((OdfFileDom) this.ownerDocument).updateInContentMetadataCache(this); } @Override public boolean isComponentRoot() { return true; } /** * Splitting the element at the given position into two halves * *

If the paragraph does have an automatic style with a master-page, which results into a page * break before the paragraph, this page break will be removed for the new second half. For * paragraph containing template styles the follow-up style should be chosen. * * @param posStart The logical position of the first character (or other paragraph child * component) that will be moved to the beginning of the new paragraph. * @return the new created second text container */ @Override public OdfElement split(int posStart) { TextParagraphElementBase newSecondElement = (TextParagraphElementBase) super.split(posStart); OdfStyle autoStyle = newSecondElement.getAutomaticStyle(); if (autoStyle != null) { OdfStylePropertiesBase paragraphProps = autoStyle.getPropertiesElement(OdfStylePropertiesSet.ParagraphProperties); if (autoStyle.getStyleMasterPageNameAttribute() != null || paragraphProps != null) { StyleStyleElement newStyle = newSecondElement.getOrCreateUnqiueAutomaticStyle(); if (autoStyle.getStyleMasterPageNameAttribute() != null) { newStyle.removeAttributeNS(OdfDocumentNamespace.STYLE.getUri(), "master-page-name"); } // overwrite the paragraph properties from the source one, with the cloned element's paragraphProps = newStyle.getPropertiesElement(OdfStylePropertiesSet.ParagraphProperties); // no paragraph page break should be inherited if (paragraphProps != null) { paragraphProps.removeAttributeNS(OdfDocumentNamespace.FO.getUri(), "break-before"); paragraphProps.removeAttributeNS(OdfDocumentNamespace.FO.getUri(), "break-after"); } } } return newSecondElement; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy