Commit Graph

4 Commits

Author SHA1 Message Date
SET
444e7ddf20 Clear buffer in Json and Xml grid editors when resultset data has changed.
Else, the last buffer will populate the popup grid.

Added LResultSetEvent::DataChanged, LResultSet::InformDataChanged,
JsonGridEditorRsEVH::DataChanged and XmlGridEditorRsEVH::DataChanged.
2020-01-04 16:39:15 +01:00
SET
eb2036acbe Override wxApp::OnAssertFailure in L7Test.
We do nothing in this override.

wxASSERT_MSG would fail in LGridJsonCellRenderer::ProcessJsonValue and
in XmlHelper::ValidateXmlValue called by
LGridXmlCellRenderer::ProcessXmlValue. This happens with postgresql
only, when the corresponding database value is empty. The cell value
is set to [Invalid], and next rendering leads to a crash in debug build
only.
Why does wxASSERT_MSG fail? Why with postgresql and not with sqlite?
2019-12-23 17:21:00 +01:00
SET
aaacf88071 Added classes to manage simple tabular data of known structure using a
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}.
2019-12-23 08:12:01 +01:00
nmset
428cc9099e Add files via upload 2018-04-25 20:43:41 +02:00