popup containing a wxGrid object.
BasePicker : Abstract class adding a popup to wxPickerBase styled with
a wxTextCtrl.
BaseGridPicker : Abstract class adding a wxGrid in the popup.
JsonGridPickerCtrl : UI control storing the tabular data in a JSON
array.
LBoundJsonGridPicker : connect JsonGridPicker to database.
LGridJsonCellEditor : use LBoundJsonGridPicker in other wxGrid objects.
LGridJsonCellRenderer : render cell JSON data.
XmlGridPickerCtrl : UI control storing the tabular data in as XML
document.
LBoundXmlGridPicker : connect XmlGridPicker to database.
LGridXmlCellEditor : grid editor for LBoundXmlGridPicker.
LGridXmlCellRenderer : grid renderer for LBoundXmlGridPicker.
JsonHelper and XmlHelper : for applications to quickly get intent value
from database data..
The structure of managed tabular data :
Column 1 : Intent - this is what we want to store/edit. This can be
telephone numbers, email addresses, instant messaging addresses...
any single line piece of information that can exist many times for one
entity (person, company...).
Column 2 : Type - A short description of the intent : 'Home, Work,
Mobile, Fax, Other...'. It is displayed in a non editable wxComboBox.
Column 3 : Preferred - One line of data can be selected as the preferred
one. It is not mandatory, but it must be a single choice.
Column 4 : Notes - single line notes.
Adjust sql scripts and L7.dox.
Applied ANSI formatting style to all files.
Other changes :
Work around a nasty misbehavior.
Grid columns edited by a translated combobox expect full string
data as cell values. LResultSet::BEData() will report these mapped strings,
instead of database real data. LBoundComboBox::IsDirty() will always be
true even if the editor is unchanged once created.
Simplest workaround : disconnect m_BoundComboBox if unchanged.
LGridTextEditor::ProvideFormEditor() : set the form editor's value
explicitely.; wxTextCtrl does not interpret data it receives
LBoundControl::SetNull must be void.
LBoundGrid : Unbind:: instructions should limit to the widget's id, like Bind::
LConnection::GetReturnedKeys should return NULL.
LConnection::SetData should return void.
Notes : wxJSON must be configured with the same prefix as wxWidgets,
here /usr/local/{wxWidgets,wxWidgets-Release}.
L7
A library aiming to help writing database applications using wxWidgets, PostgreSQL and SQLite.
It's a generic spin-off of a production library I'm using.
Released under the LGPL 2.1 of the Free software Foundation.
Author and copyright : SET, M.D. , nmset@netcourrier.com
Developped with NetBeans.
------Build
wxWidgets is expected in /usr/local/wxWidgets, as referenced in the NetBeans project.libpq and libsqlite3 are expected in the system's library directory.
$ cd L7
$ make clobber
$ make CONF=Debug
$ cd ../L7Test
$ make CONF=Debug
Output will be in dist/Debug/GNU-Linux/ and dist/Release/GNU-Linux/ .
------How to consider the code.
I do not have an academic background in computer science, programming is my hobby.
------How to consider L7.
Use at your own risks. It's free software. Use it or trash it. No warranties. L7 does not claim to be fit for any purpose. L7 does not expect to be used.
------Documentation
$ cd L7
$ doxygen L7.dox
Output will be in docs/ .