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

com.hfg.xml.msofficexml.part.SettingsPart Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.xml.msofficexml.part;


import com.hfg.xml.XMLTag;
import com.hfg.xml.msofficexml.OfficeOpenXMLContentType;
import com.hfg.xml.msofficexml.RelationshipType;
import com.hfg.xml.msofficexml.docx.Docx;
import com.hfg.xml.msofficexml.docx.wordprocessingml.WmlXML;

//------------------------------------------------------------------------------
/**
 Represents an Office Open XML settings part.

 @author J. Alex Taylor, hairyfatguy.com
 */
//------------------------------------------------------------------------------
// com.hfg XML/HTML Coding Library
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
// [email protected]
//------------------------------------------------------------------------------

public class SettingsPart extends OfficeXMLPart
{
   //###########################################################################
   // CONSTRUCTORS
   //###########################################################################

   //---------------------------------------------------------------------------
   public SettingsPart(Docx inDocx)
   {
      super(inDocx);

      setFile(WmlXML.SETTINGS_FILE);

      XMLTag rootTag = new XMLTag(WmlXML.SETTINGS);
      rootTag.addXMLNamespaceDeclaration(WmlXML.WORDPROCESSINGML_NAMESPACE);

      setRootNode(rootTag);

      inDocx.getDocumentPart().getRelationshipPart().addRelationship(RelationshipType.SETTINGS, WmlXML.SETTINGS_FILE);
   }

   //###########################################################################
   // PUBLIC METHODS
   //###########################################################################

   //---------------------------------------------------------------------------
   @Override
   public OfficeOpenXMLContentType getContentType()
   {
      return null; // TODO: Is there a value?
   }

   //---------------------------------------------------------------------------
   public SettingsPart setHideGrammaticalErrors(boolean inValue)
   {
      getOrCreateSubtag(WmlXML.HIDE_GRAMMATICAL_ERRORS).setAttribute(WmlXML.VALUE_ATT, inValue);
      return this;
   }

   //---------------------------------------------------------------------------
   public SettingsPart setHideSpellingErrors(boolean inValue)
   {
      getOrCreateSubtag(WmlXML.HIDE_SPELLING_ERRORS).setAttribute(WmlXML.VALUE_ATT, inValue);
      return this;
   }

   //---------------------------------------------------------------------------
   public SettingsPart setCleanSpellingProofState()
   {
      getOrCreateSubtag(WmlXML.PROOF_STATE).setAttribute(WmlXML.SPELLING_ATT, "clean");
      return this;
   }

   //---------------------------------------------------------------------------
   public SettingsPart setDirtySpellingProofState()
   {
      getOrCreateSubtag(WmlXML.PROOF_STATE).setAttribute(WmlXML.SPELLING_ATT, "dirty");
      return this;
   }

   //---------------------------------------------------------------------------
   public SettingsPart setCleanGrammarProofState()
   {
      getOrCreateSubtag(WmlXML.PROOF_STATE).setAttribute(WmlXML.GRAMMAR_ATT, "clean");
      return this;
   }

   //---------------------------------------------------------------------------
   public SettingsPart setDirtyGrammarProofState()
   {
      getOrCreateSubtag(WmlXML.PROOF_STATE).setAttribute(WmlXML.GRAMMAR_ATT, "dirty");
      return this;
   }

   //---------------------------------------------------------------------------
   /**
    Specifies that hosting applications shall remove all personal information of
    document authors upon saving a given WordprocessingML document. The definition
    and extent of personal information is not defined by ECMA-376.
    */
   public SettingsPart setRemovePersonalInfo(boolean inValue)
   {
      getOrCreateSubtag(WmlXML.REMOVE_PERSONAL_INFO).setAttribute(WmlXML.VALUE_ATT, inValue);
      return this;
   }

   //---------------------------------------------------------------------------
   /**
    Specifies if a document's Thumbnail part should be generated for the contents
    of the first page of this document when saved by application which support
    document thumbnail generation.
    */
   public SettingsPart setSavePreviewPicture(boolean inValue)
   {
      getOrCreateSubtag(WmlXML.SAVE_PREVIEW_PICT).setAttribute(WmlXML.VALUE_ATT, inValue);
      return this;
   }

   //---------------------------------------------------------------------------
   /**
    Specifies that applications shall track revisions made to the WordprocessingML
    document. Revisions are changes to a WordprocessingML document which are recorded
    such that they can be viewed independently, accepted or removed, and reverted if
    needed. When revisions are tracked, the resulting WordprocessingML markup in the
    Revisions subclause of this document describes the necessary syntax.
    */
   public SettingsPart setTrackRevisions(boolean inValue)
   {
      getOrCreateSubtag(WmlXML.TRACK_REVISIONS).setAttribute(WmlXML.VALUE_ATT, inValue);
      return this;
   }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy