Difference between revisions of "BASIC/UNO Object Browser"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Task list)
(Task list)
Line 23: Line 23:
 
* Link methods to interfaces supporting them. <font color="green">(done)</font>.
 
* Link methods to interfaces supporting them. <font color="green">(done)</font>.
  
* Make the output in Basic language. Better even, make this an option.<font color="blue">(partially done)</font>  
+
* Make the output in Basic language. Better even, make this an option.<font color="green">(done)</font>.
   Separate functions for Basic and UNO are already written, including the infrastructure to choose a language at runtime.
+
   There is a user interface for changing the programming language, but not a programming interface.
  However, there is not yet an external interface to choose language.
+
 
* Link interfaces to OpenOffice.org documentation.
 
* Link interfaces to OpenOffice.org documentation.
 
* Implement interface XController for integration into BASIC Ide.
 
* Implement interface XController for integration into BASIC Ide.

Revision as of 08:40, 18 August 2006

The intention of this project is to provide a browser that shows the interfaces, methods and properties of a living object. It will be a component of the BASIC ide debugger, and probably will be invoked from the watch window. It is implemented as a UNO object.

What has been done for now

What I have is a "text mode browser" that accept an object as a parameter and displays the interfaces, methods and properties. The purpose of this step was to learn the Reflection APIs. As a result of this work, some issues with Corereflection and Introspection were filled (bugs 66631 and 66635). The first of these ones was closed by the mentor as invalid, because I had a wrong view about the role of the Introspection interface. Within my time limits, I may try to fix 66635.

Unfortunately plenty of time was lost trying to build OpenOffice.org. After switching to OpenOffice.org SDK, work became more pleasant.

Graphical user interface

Then, a basic graphical user interface was built. It just shows who to use the VCL for showing a tree, applied for displaying the methods and interfaces of this object. Here is a screenshot:

File:ObjectBrowser.png

Task list

This task is roughtly in order of priority.

  • Implement interface XNameContainer instead of its own interface (done).
  • Improve the GUI. Insert proper +/- (done).
  • Information about services (done).
  • Do a portable Makefile and integrate into openoffice. According to the mentor, create a directory similar to the propctlr (done).
  • Link methods to interfaces supporting them. (done).
  • Make the output in Basic language. Better even, make this an option.(done).
 There is a user interface for changing the programming language, but not a programming interface.
  • Link interfaces to OpenOffice.org documentation.
  • Implement interface XController for integration into BASIC Ide.
 Actually, you'd need the Controller service instead of only the interface.
 Also, I suggest moving this down the list. There's additional work involved to finally
 integrate this as pluggable component into the Basic IDE, and given the time line, I'd
 let's say concentrate on the core features of the Object Browser. (fs)

Code

You can fetch the code here.

This code is intended to be extracted in the OpenOffice source tree, and a corresponding solver tree in the solver/ directory. To compile it, go to extensions/source/objectbrowser and run dmake.

That will compile the component, but it will not register it. For registration, customize and run the script register_by_hand.

A test swriter document is included. Open it, and run the macro "Main". It should display something similar to the screenshot.

Personal tools