We are pleased to announce Dabo 0.5, the fifth 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
Download from http://dabodev.com/download
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/changed in Dabo 0.5:
Added a new class, DataSet, which lets you issue SQL queries against
local Dabo data, not just against the backend. You can query, sort,
and update individual DataSets, and even join multiple DataSets - all
without making a call to the backend database server.
Began the work of making an embedded, internal, database engine
(SQLite). Currently SQLite is an option; starting with future
releases, it will be an integral part of Dabo.
Automatic binding of events to method code! If you have a button
class with an onHit method, it will automatically be bound to the
button's Hit event. Simply by naming your methods 'onBleh()', if
there is a 'Bleh' event that is raised by the object, the onBleh()
method will be bound to it. You can still bind manually using
bindEvent(), of course, but auto-binding of events now works so well
that it is the default.
Added a basic framework for drawing shapes on any window. Once
created, the shapes are accessible with an object reference. This
should make dealing with wx.DC's a thing of the past for most uses.
Sorted out MDI/SDI issues. By default, dForm on Windows MDI children
and dFormMain on Windows will be MDI parents. On other platforms,
both dForm and dFormMain will be SDI by default. The above statement
is true for datanav applications (ones generated by the AppWizard).
The pure-Dabo default is for SDI forms. In any case, you may change
this by setting dabo.MDI.
Improved the datanav Quick Report feature, which can print a list of
the current records, mimicing the browse page, or a whole page of
information on one record, mimicing the edit page. Added the ability
for the user to save the generated report form for editing with the
Report Designer or editing the rfxml directly.
Improved showContextMenu(), and sorted out the difference between
MouseRightClick and ContextMenu events.
dCheckBox now supports 3 state mode, (True, False and None).
dForms now know how to read in cdxml files, created by the upcoming
Improved the handling of broken database connections.
Added middle button and scroll mouse events.
Added some hooks to datanav.Form that allow developers to control the
select options for given fields. This would allow you to put, for
example, a radiogroup with a few choices instead of the default textbox.
Added connection manager to dApp, which maintains a set of open
database connections that your forms can reference by name. Added
Connection property to dForm.
Improved report writer's paragraph handling.
And, of course, more bug fixes than we'd like to say!
Added several small programs to the tutorial section. Instead of
emphasizing actual complex, working apps in Dabo, such as the games,
these show smaller, bite-sized examples of Dabo code.
Began work on a demo app that mirrors the wxPython demo, which
includes all of the controls, some sample code for each along with a
brief explanation of how that control is used. This is the work of
Adi J. Sieker, who has already added several Dabo controls, and who
will be adding more as time goes on.
The Bubblet game has been completely re-written to use the new Draw
objects. This is an excellent way to learn how to control images
drawn on your UI surfaces.
The AppWizard has been overhauled significantly, and now creates apps
that are much more easily customized, and scales much better to non-
The Class Designer has improved greatly - it now supports extremely
complex layouts, such as multiply-nested sizers, paged controls
inside other paged controls, etc. It can save these designs into XML
files that can then be used to create runtime forms that have the
same structure as the original design. The next step will be added
soon: integration of code to bind to events, so that not only will
you be able to control how your forms look, but also how they behave.
The Report Designer continues to improve: it now has an integrated
Property Sheet for altering the appearance of objects, as well as
improved layering. It also supports full 2-way editing: both visual
and XML editing changes are reflected in the other.
-- Ed Leafe