Difference between revisions of "Porting example"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 13: Line 13:
  
 
=== Step 2 Port the idl files ===
 
=== Step 2 Port the idl files ===
It's worth taking a look at the [[idl]] section in the [[porting notes]]
+
It's worth taking a look at the [[porting notes#Hints for porting idl|idl]] section in the [[porting notes]]
 
and examples of the ported idl files
 
and examples of the ported idl files
 
* [http://vba.openoffice.org/source/browse/*checkout*/vba/src/examples/port_helperapi/vbaapi-port/excel/XAutoFilter.idl XAutoFilter.idl]
 
* [http://vba.openoffice.org/source/browse/*checkout*/vba/src/examples/port_helperapi/vbaapi-port/excel/XAutoFilter.idl XAutoFilter.idl]
Line 22: Line 22:
 
* [http://vba.openoffice.org/source/browse/*checkout*/vba/src/examples/port_helperapi/vbaapi-port/excel/add-new-idl.diff makefile.mk] add new idl file
 
* [http://vba.openoffice.org/source/browse/*checkout*/vba/src/examples/port_helperapi/vbaapi-port/excel/add-new-idl.diff makefile.mk] add new idl file
 
* [http://vba.openoffice.org/source/browse/*checkout*/vba/src/examples/port_helperapi/vbaapi-port/excel/add-new-attribute.diff XWorksheet.idl] add new AutoFilter attribute
 
* [http://vba.openoffice.org/source/browse/*checkout*/vba/src/examples/port_helperapi/vbaapi-port/excel/add-new-attribute.diff XWorksheet.idl] add new AutoFilter attribute
 +
 +
=== Step 3 Prepare and provide implementation code ===
 +
It's probably an idea just start with a stub implementation and then build on that. Thats precisely what I will show here, once the stub implementation is in place you can get deeper into the implementation.

Revision as of 12:47, 23 February 2007

Step 1 Choose an object to port

I randomly picked the Filter object e.g. XFilter in the helperapi ( of course you also want to make sure this object isn't already implemented in oovbaapi ). Browse the helperapi code to find where XFilter is implemented. It's implemented by FilterImpl.java and it expects to be initialised by an XAutoFilter implementation object AutoFilterImpl

so already an implementation not only for XFilter need to be provided but also and implementation for XAutoFilter as well.

looking at XAutoFilter.idl you see that there is a Filters() attribute/method that returns a Collection of Filters, so additionally an implementation of the XFilters object is needed. The XAutoFilter implementation is the key object that the others are accessed/provided from. Searching through the source code you find this is an attribute of the SheetImpl object

so, to summarize, after initially choosing one object to have a crack at porting, you actually need to provide implementations for the following interfaces

  • XFilter
  • XAutoFilter
  • XFilters

and also you need to add a new attribute to return an XAutoFilter implementation

Step 2 Port the idl files

It's worth taking a look at the idl section in the porting notes and examples of the ported idl files

also modifications to existing files

Step 3 Prepare and provide implementation code

It's probably an idea just start with a stub implementation and then build on that. Thats precisely what I will show here, once the stub implementation is in place you can get deeper into the implementation.

Personal tools