Wednesday, May 30, 2007

+ Added forms support for spreadsheets (experimental)
As I have already previously mentioned, one of the problems connected with an export to HTML is a controls positioning.

I've studied the way OpenOffice does this. It uses float:left style. Of course, the controls get mixed up and they are not arranged exactly in the same way they are in the original document...
But nevertheless I have decided to implement the forms HTML export in the same way as OpenOffice does.

Monday, May 28, 2007

From now on, new controls are supported by the AODL:
  • ODFImage
  • ODFImageFrame
  • ODFValueRange
Basically speaking, at present time all the controls that can be found in OpenOffice are implemented :)
I've just finished the most tedious part of the job - adding description to all the members of all the ODF Forms classes!

Saturday, May 26, 2007

I've added some HTML export stuff to the AODL (currently buttons, text areas, check boxes, radio buttons, frames and fixed texts are supported).
There is one thing I'm working on now: positioning.
Currently, css position:absolute is being used but this induces problems if the paragraph contains not only controls, but also text or some other content - it gets mixed on the screen. Hope to fight this problem ;)
The alpha-version is ready and I am going to commit it directly to the CVS repository. This commitment is a little bit delayed because of the fact I still don't have the commit privilege; hope the OpenOffice admins will fix it soon.
At present time I'm going yo add some more controls (more "exotic" and rarely used) and, of course, to document each function and add some comments.
After that I'll switch to HTML export, improving ODF import/export and , surely, fixing bugs :))

Monday, May 21, 2007

- added ODFListBox, ODFComboBox, ODFFile, ODFFrame, ODFHidden controls.
- added ODFItem and ODFOption auxiliary classes that work together with ODFComboBox and ODFListBox respectively.
- fixed some bugs with import/export

Thursday, May 10, 2007

Some new changes since the last version:
- Added form:properties support to all controls
- Added import for form:properties (including controls)
- Added different search methods to look for any property by its name
- changed OO prefix to ODF in all the control classes
I've uploaded a very early preview of Forms support implementation for
AODL library with a small test application.
Currently supported
- Forms, including nested ones. For text documents.
- Auxiliary properties (form:properties)
- Controls for form:textarea and form:button (OOTextArea and
OOButton). Other controls are represented through OOGenericControl
- Synchronization of draw:control with the appropriate form element;
however, I need to work on it more
- Methods to look for a specific control by its name or ID.
- Basic import/export to *.odt

You can download it here:
http://rapidshare.com/files/30019373/AODL_Test_Forms.zip

Thursday, May 3, 2007

I've created a simplified UML diagram for Forms implementation.
NB! Only the most important classes are shown on the diagram; any of their unimportant members are omitted. (private or protected members are also omitted unless they are very important)
Free Image Hosting at www.ImageShack.us
I've created a core Forms implementation following the scheme I've spoken before.
Of course, it is just a sketch but it already has some functionality now.
Currently implemented:
- Complete support for OOForm class that stands for form:form tag. All its attributes are reflected in the appropriated properties.
TextDocument class has Forms property. No nested forms support yet. No support for import, only test support for export (it will be completely rebuilt). Search methods are also not implemented.
- Support for form:properties.
- Basic support for controls (with synchronization). Currently base class OOFormControl with aggregated OOControlRef are done. I have also created working classes OOText and OOButton (form:text and form:button respectively)

I would like to speak a little bit more about form:properties, 'cause I haven't discussed it earlier.
In a nutshell, there are six classes: FormProperty, SingleFormProperty, ListFormPropertyElem, ListFormPropertyElemCollection, ListFormProperty and FormPropertyCollection.
FormProperty is a base class for both kinds of properties: single value and multiple value. SingleFormProperty stands for a single value property(form:property) and has such properties as Name, Value and PropertyValueType.
ListFormProperty : Name, PropertyValueType and PropertyValues.
PropertyValues is a collection (ListFormPropertyElemCollection), each element of which is ListFormPropertyElem.
I think it's quite clear:)

I'm a lazy guy and I haven't drawn a class diagram for all this stuff yet ;)) But I'll do it, I promise :)