We are pleased to announce the 0.4.2 release of Dabo, the 3-tier application framework for Python.
The primary focus of our work for this release has been a tightening up of the various properties of many of the UI controls to create a more consistent interface. Since these controls were developed one at a time as needed, they had some subtle but significant differences in the way they worked. This release addresses a lot of those concerns. We've also added auto-binding of methods to events. For example, if you want to have your code react to MouseEnter event, all you need to do is add a method named onMouseEnter(), and Dabo will bind it to that event. Thanks to the PythonCard folks for this idea! Work on the Report Writer continues to proceed; it now supports groups and report variables. These improvements have been integrated it into the wizard-generated apps, too. Needless to say, there have also been a few bug fixes. A list of all the changes follows my sig. You can grab the latest, as always, from http://dabodev.com/download. -- Ed Leafe -- http://leafe.com -- http://dabodev.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dabo-0.4.2 (2005-10-07) (Revision 1418): Added PrimaryBizobj property to dForm, which can replace calls to getPrimaryBizobj(). Added Accepted property to dOkCancelDialog, which gets set automatically if the user pressed "OK". Added AutoSQL, UserSQL, CurrentSQL, LastSQL properties to dCursor and dBizobj. When time to requery, the SQL will come from UserSQL if set, or AutoSQL will be regenerated. Fixed a bug that kept changes to a new record from getting committed. Added DefaultValues property to bizobj. Added ListSelection and ListDeselection events to dListControl. Added properties MultipleSelect, HitIndex, LastSelectedIndex, HeaderVisible, HorizontalRules, and VerticalRules. Changed the behavior of both dListControl and dListBox so that merely selecting an item doesn't raise the Hit event; instead, it raises a ListSelection event, and if another item had been previously selected, it raises a ListDeselection event. Hit is only raised from double-clicking on an item, or by pressing Enter. Added new property to dTextBox: StrictDateEntry. Changed the code for interpreting dates entered by the user to allow for some less explicit formats (YYYYMMDD, YYMMDD, and MMDD). If StrictDateEntry is False (the default), these other formats will be used when interpreting dates entered by the user. Added field-level validation to the framework. Improved support for decimal.Decimal, both at the database level and in dTextBox. Added new auto event binding, which automatically binds events based on any defined callback functions. For example, if you have a method onMouseEnter() defined, the dEvents.MouseEnter will automatically be bound to that method. Inspired by PythonCard. Added RegID property to forms, that allows for object registration with the form. Not all objects require RegIDs, but if they have one, they must be unique among all objects in a form. A reference to that object can then be gotten from any other object by calling 'self.Form.getObjectByRegID(<regid>)'. Linked RegID to the auto event binding, so that if a form has a method of onHit_cmdOK(), and has a button with a RegID of 'cmdOK', the cmdOk's Hit will get bound to the form's callback, automatically. Improved dGrid and dColumn. Many properties added, and you are now in much finer control over the display of grid column headers, grid cell attributes, grid cell editors and renderers, and the grid itself. Began work of allowing case-insensitive property values for properties that take string values, and for properties that take a limited number of values where the first letter is unique, you can set the property by just using the first letter. dTextBox.Alignment = "c" sets the property to "Center", for example. Modified dBizobj, dCursorMixin, and dBackend so that the user can specify the Unicode Encoding to use. Changed the default encoding from latin-1 to utf-8. Added feature to optionally draw sizer outlines on any form that uses dSizers. This is currently accessible via an option in the View menu when the base menu bar is in use, or you can turn it on/off programatically. Grids now remember the column that is sorted, and resort when next instantiated. Added support in dReportWriter for report groups and report variables, and dynamic band heights (based on the height of contained objects). Added showExpr, which is an expression that evaluates at runtime and if true, shows the object in the report, and not if false. Improved the automatic print preview report format in datanav. It now: + prints column headers + mirrors the font size, column width, cell vertical and horizontal alignment, and column height of the grid + mirrors the font size, header height, vertical and horizontal alignment of the grid headers + automatically reorients to landscape if the detail flows beyond the width of portrait + stops printing more columns if doing so would result in overflowing the right margin Key bindings are now case-insensitive. Improved docstrings and API documentation. -- http://mail.python.org/mailman/listinfo/python-list