001package com.hfg.xml.msofficexml.docx.part; 002 003 004import com.hfg.xml.XMLTag; 005import com.hfg.xml.msofficexml.OfficeOpenXmlDocument; 006import com.hfg.xml.msofficexml.OfficeXML; 007import com.hfg.xml.msofficexml.docx.wordprocessingml.WmlXML; 008import com.hfg.xml.msofficexml.part.OfficeXMLPart; 009 010//------------------------------------------------------------------------------ 011/** 012 Represents an Office Open XML VBA data part. 013 014 @author J. Alex Taylor, hairyfatguy.com 015 */ 016//------------------------------------------------------------------------------ 017// com.hfg XML/HTML Coding Library 018// 019// This library is free software; you can redistribute it and/or 020// modify it under the terms of the GNU Lesser General Public 021// License as published by the Free Software Foundation; either 022// version 2.1 of the License, or (at your option) any later version. 023// 024// This library is distributed in the hope that it will be useful, 025// but WITHOUT ANY WARRANTY; without even the implied warranty of 026// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 027// Lesser General Public License for more details. 028// 029// You should have received a copy of the GNU Lesser General Public 030// License along with this library; if not, write to the Free Software 031// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 032// 033// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com 034// jataylor@hairyfatguy.com 035//------------------------------------------------------------------------------ 036/* 037Ex: 038 039<wne:vbaSuppData xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" 040 xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex" 041 xmlns:cx1="http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" 042 xmlns:cx2="http://schemas.microsoft.com/office/drawing/2015/10/21/chartex" 043 xmlns:cx3="http://schemas.microsoft.com/office/drawing/2016/5/9/chartex" 044 xmlns:cx4="http://schemas.microsoft.com/office/drawing/2016/5/10/chartex" 045 xmlns:cx5="http://schemas.microsoft.com/office/drawing/2016/5/11/chartex" 046 xmlns:cx6="http://schemas.microsoft.com/office/drawing/2016/5/12/chartex" 047 xmlns:cx7="http://schemas.microsoft.com/office/drawing/2016/5/13/chartex" 048 xmlns:cx8="http://schemas.microsoft.com/office/drawing/2016/5/14/chartex" 049 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 050 xmlns:aink="http://schemas.microsoft.com/office/drawing/2016/ink" 051 xmlns:am3d="http://schemas.microsoft.com/office/drawing/2017/model3d" 052 xmlns:o="urn:schemas-microsoft-com:office:office" 053 xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" 054 xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" 055 xmlns:v="urn:schemas-microsoft-com:vml" 056 xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" 057 xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" 058 xmlns:w10="urn:schemas-microsoft-com:office:word" 059 xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" 060 xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" 061 xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" 062 xmlns:w16cex="http://schemas.microsoft.com/office/word/2018/wordml/cex" 063 xmlns:w16cid="http://schemas.microsoft.com/office/word/2016/wordml/cid" 064 xmlns:w16="http://schemas.microsoft.com/office/word/2018/wordml" 065 xmlns:w16se="http://schemas.microsoft.com/office/word/2015/wordml/symex" 066 xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" 067 xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" 068 xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" 069 xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 w16se w16cid w16 w16cex wp14"> 070<wne:mcds> 071 <wne:mcd wne:macroName="PROJECT.COM_HFG.AUTOOPEN" wne:name="Project.com_hfg.AutoOpen" wne:bEncrypt="00" wne:cmg="56"/> 072</wne:mcds> 073</wne:vbaSuppData> 074 */ 075 076public class VbaDataPart extends OfficeXMLPart 077{ 078 private XMLTag mMcdsTag; 079 080 //--------------------------------------------------------------------------- 081 public VbaDataPart(OfficeOpenXmlDocument inOfficeDoc) 082 { 083 super(inOfficeDoc); 084 085 setFile(WmlXML.VBA_DATA_FILE); 086 087 XMLTag rootTag = new XMLTag(WmlXML.VBA_SUPPORT_DATA) 088 .setAttribute(OfficeXML.IGNORABLE_ATT, "w14 w15 w16se w16cid w16 w16cex wp14") 089 .addXMLNamespaceDeclaration(WmlXML.WORDPROCESSING_CANVAS_NAMESPACE) 090 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_NAMESPACE) 091 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_1_NAMESPACE) 092 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_2_NAMESPACE) 093 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_3_NAMESPACE) 094 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_4_NAMESPACE) 095 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_5_NAMESPACE) 096 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_6_NAMESPACE) 097 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_7_NAMESPACE) 098 .addXMLNamespaceDeclaration(OfficeXML.CHART_EXTENSIONS_8_NAMESPACE) 099 .addXMLNamespaceDeclaration(OfficeXML.MARKUP_CAPABILITY_NAMESPACE) 100 .addXMLNamespaceDeclaration(OfficeXML.DRAWING_INK_NAMESPACE) 101 .addXMLNamespaceDeclaration(OfficeXML.DRAWING_MODEL_3D_NAMESPACE) 102 .addXMLNamespaceDeclaration(OfficeXML.OFFICE_NAMESPACE) 103 .addXMLNamespaceDeclaration(OfficeXML.RELATIONSHIPS_NAMESPACE) 104 .addXMLNamespaceDeclaration(OfficeXML.MATH_NAMESPACE) 105 .addXMLNamespaceDeclaration(OfficeXML.VML_NAMESPACE) 106 .addXMLNamespaceDeclaration(WmlXML.WORDPROCESSING_DRAWING_NAMESPACE) 107 .addXMLNamespaceDeclaration(WmlXML.WORDPROCESSING_DRAWING_14_NAMESPACE) 108 .addXMLNamespaceDeclaration(WmlXML.WORDML_10_NAMESPACE) 109 .addXMLNamespaceDeclaration(WmlXML.WORDPROCESSINGML_NAMESPACE) 110 .addXMLNamespaceDeclaration(WmlXML.WORDML_14_NAMESPACE) 111 .addXMLNamespaceDeclaration(WmlXML.WORDML_15_NAMESPACE) 112 .addXMLNamespaceDeclaration(WmlXML.WORDML_16_NAMESPACE) 113 .addXMLNamespaceDeclaration(WmlXML.WORDML_16_COMMENTS_EXTENSIBLE_NAMESPACE) 114 .addXMLNamespaceDeclaration(WmlXML.WORDML_16_COMMENTS_IDS_NAMESPACE) 115 .addXMLNamespaceDeclaration(WmlXML.WORDML_16_SYMEX_NAMESPACE) 116 .addXMLNamespaceDeclaration(WmlXML.WORDPROCESSING_GROUP_NAMESPACE) 117 .addXMLNamespaceDeclaration(WmlXML.WORDPROCESSING_INK_NAMESPACE) 118 .addXMLNamespaceDeclaration(WmlXML.WORDPROCESSING_SHAPE_NAMESPACE) 119 .addXMLNamespaceDeclaration(WmlXML.WORDML_NAMESPACE); 120 121 setRootNode(rootTag); 122 123 mMcdsTag = rootTag.addSubtag(WmlXML.MACRO_COLLECTION); 124 } 125 126 //--------------------------------------------------------------------------- 127 public void addMacro(String inMacroName) 128 { 129 XMLTag macroTag = new XMLTag(WmlXML.MACRO) 130 .setAttribute(WmlXML.MACRO_NAME_ATT, inMacroName.toUpperCase()) 131 .setAttribute(WmlXML.NAME_ATT, inMacroName) 132 .setAttribute(WmlXML.HEX_BINARY_ENCRYPT_ATT, "00") 133 .setAttribute(WmlXML.CMG_ATT, "56"); 134 135 mMcdsTag.addSubtag(macroTag); 136 } 137 138}