Talk:Extensions/Extensions and Apache OpenOffice 4.0

From Apache OpenOffice Wiki
< Talk:Extensions
Revision as of 13:30, 27 July 2013 by Hanya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Here is an example add-on toolbar in old structure:

<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
oor:name="Addons" oor:package="org.openoffice.Office">
  <node oor:name="AddonUI">
    <node oor:name="OfficeToolBar">
      <node oor:name="foo.bar.hoge.addons.ToolbarTest.old" oor:op="replace">
        <node oor:name="button_1" oor:op="replace">
          <prop oor:name="Title" oor:type="xs:string">
            <value xml:lang="en-US">Show All</value>
          </prop>
          <prop oor:name="URL" oor:type="xs:string">
            <value>vnd.sun.star.script:myts?language=Basic&amp;location=application</value>
          </prop>
          <prop oor:name="Target" oor:type="xs:string">
            <value>_self</value>
          </prop>
          <prop oor:name="Context" oor:type="xs:string">
            <value>com.sun.star.sheet.SpreadsheetDocument</value>
          </prop>
        </node>
      </node>
    </node>
  </node>
</oor:component-data>

with its name:

<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
oor:name="CalcWindowState" oor:package="org.openoffice.Office.UI">
  <node oor:name="UIElements">
    <node oor:name="States">
      <node oor:name="private:resource/toolbar/addon_foo.bar.hoge.addons.ToolbarTest.old" oor:op="replace">
        <prop oor:name="UIName" oor:type="xs:string">
          <value xml:lang="en">Toolbar Title</value>
        </prop>
      </node>
    </node>
  </node>
</oor:component-data>

It should be converted into the following structure:

<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
oor:name="Addons" oor:package="org.openoffice.Office">
  <node oor:name="AddonUI">
    <node oor:name="OfficeToolBar">
      <node oor:name="foo.bar.hoge.addons.ToolbarTest.new" oor:op="replace">
        <prop oor:name="Title" oor:type="xs:string">
          <value xml:lang="en-US">Toolbar Title</value>
        </prop>
        <node oor:name="ToolBarItems">
          <node oor:name="button_1" oor:op="replace">
            <prop oor:name="Title" oor:type="xs:string">
              <value xml:lang="en-US">Show All</value>
            </prop>
            <prop oor:name="URL" oor:type="xs:string">
              <value>vnd.sun.star.script:myts?language=Basic&amp;location=application</value>
            </prop>
            <prop oor:name="Target" oor:type="xs:string">
              <value>_self</value>
            </prop>
            <prop oor:name="Context" oor:type="xs:string">
              <value>com.sun.star.sheet.SpreadsheetDocument</value>
            </prop>
          </node>
        </node>
      </node>
    </node>
  </node>
</oor:component-data>

Add Title property in your child node of OfficeToolBar node to specify its title. And create ToolBarItems node in your toolbar node, and move your toolbar entries into it.

In the above example, new one has different toolbar name from the older one. When I put both older one and new one into the same package as the following list of contents, the toolbar of the package is shown on both Apache OpenOffice 3.4 and 4.0 (I testes only OpenOffice.org 3.2 and 3.3, Apache OpenOffice 3.4 and 4.0 on Linux environment. I thought configuration data has been checked to match with installed schema during the installation of the package in the past but I forgot version that has been changed.).

<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest>
    <manifest:file-entry manifest:full-path="Addons_old.xcu" 
     manifest:media-type="application/vnd.sun.star.configuration-data"/>
    <manifest:file-entry manifest:full-path="CalcWindowState.xcu" 
     manifest:media-type="application/vnd.sun.star.configuration-data"/>
    <manifest:file-entry manifest:full-path="Addons_new.xcu" 
     manifest:media-type="application/vnd.sun.star.configuration-data"/>
</manifest:manifest>
Personal tools