[ANN] Dabo 0.4 Released

Ed Leafe ed at leafe.com
Tue Aug 9 09:25:29 EDT 2005


We are pleased to announce Dabo 0.4, the fourth major release of our data 
application framework. The Dabo framework is a true 3-tier design, with data 
access and UI code separated from your business logic. And since it's Python, 
and uses wxPython for its UI, it is completely cross-platform, having been 
tested on Linux, Windows and OS X.

Download from http://dabodev.com/download

This is the first major release of Dabo that doesn't involve major changes to 
the way things work; nearly all the changes were bugfixes and 
'under-the-hood' tightening up of the code. I suppose that this is a good 
sign, and indicates that we have progressed further than a '0.4' version 
indicates, but we are being deliberately conservative with our version 
numbering. Nearly all the changes involve the UI layer, demonstrating both 
the complexity of wrapping a UI toolkit as well as the maturity and stability 
of our business object and database layers.

Anyone interested in contributing to Dabo, or who just want to find out what 
it is all about is encouraged to join our mailing lists:
dabo-users: for those interested in learning how to work with Dabo to create 
applications, and for general help with Dabo. 
http://leafe.com/mailman/listinfo/dabo-users
dabo-dev: for those interested in the ongoing development of Dabo. This list 
contains lots of lively discussion on design issues, as well as notices of 
all commits to the code repository.
http://leafe.com/mailman/listinfo/dabo-dev


Here is a brief summary of what's new in Dabo 0.4:

The dGrid class has been re-written. It allows you to directly work with 
Column and Header objects, where setting properties of these objects changes 
the appearance and behavior of the grid. It also has several convenience 
methods, such as 'buildFromDataSet()', which allows you to pass it a set of 
data, and have the grid construct itself to properly display that data. Added 
the property 'HeaderBackgroundColor' to the Column class to control the 
background color of that column's header.

Added the ability to edit values in a grid, which is toggled by a single 
boolean property of the grid named 'Editable'. Created basic renderer and 
editor classes for various data types that allow you to control how values 
are displayed and edited, respectively.

Created several visual variations of the 'pageframe' object (called a 
'Notebook' in wxPython). The standard 'dPageFrame' uses tabs to select the 
various pages, but now there are also 'dPageList', which uses a listbox to 
select its pages, and 'dPageSelect', which uses a dropdown list. There is 
also a new class 'dPageNoTabs', which, as its name suggests, has no visible 
means of changing pages. This class is used for those situations where you 
only want to change pages programmatically (e.g., a wizard form).

Updated the DataNav framework to take advantage of these pageframe changes. 
The Form class has two new attributes: 'pageFrameStyle', which is one of 
'Tabs', 'List' or 'Select'; and 'tabPosition', which is one of 'Top', 
'Bottom', 'Left' or 'Right'.

Simplified many of the functions that previously required creating instances 
of the various dialog types, showing them, and then later destroying them. 
Now, instead of going through all that, simply make a call such as 
'dabo.ui.getColor("green")', and Dabo will display a Color Selection dialog, 
default to the color you specified, and then return the color the user 
selected, or None if they canceled. The new functions (all part of dabo.ui) 
are: getFont(), getColor(), getString(), getFile(), getSaveAs() and 
getFolder(). Also moved the common informational dialogs here: areYourSure(), 
info() and stop().

Added the 'fontMetric()' method to the UI module. Specify a string, as well as 
the font properties you want to use to display that string, and it returns a 
(width, height) tuple for that string in that font.

Added two properties to all controls that allow you to programmatically 
interact with the sizers that determine how that control appears: 
ControllingSizer and ControllingSizerItem.

Added support for the Decimal class that was added in Python 2.4. Code written 
to run in Python 2.3 will still work, though.

Created the dToolBar class for displaying toolbars associated with forms. 
We're still working on creating independent floating toolbars.

And, of course, lots of bug fixes and code tweaks!


The Dabo Demo project is largely unchanged, although the demos have been 
updated to take advantage of changes to the underlying framework. There are 
now three basic demos in the 'tutorial' directory that help to demonstrate 
the basics of creating applications in Dabo.


The Dabo IDE project has also been updated to version 0.2, and I feel that 
this version number is accurate. We're still exploring the best way to create 
Dabo classes visually, and have made some great progress, but this is still 
very much an unfinished product. 

The Class Designer has progressed to the point where you can lay out a form 
using a sizer-centric approach, modify the properties of controls and their 
sizers from a simple property sheet, save your design to a file, and then 
later re-edit that design from that file. And the nascent Report Designer is 
also progressing, but like all early efforts, is still subject to major API 
changes.

-- 

-- Ed Leafe
-- http://leafe.com
-- http://dabodev.com



More information about the Python-list mailing list