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.
This commit is contained in:
SET
2020-01-04 16:39:15 +01:00
parent eb2036acbe
commit 444e7ddf20
10 changed files with 35 additions and 9 deletions

View File

@@ -63,6 +63,7 @@ bool LPQResultSet::RunSQL()
m_initialised = true; m_initialised = true;
InformInitialised(); InformInitialised();
} }
InformDataChanged();
return true; return true;
} }
else else

View File

@@ -203,6 +203,16 @@ void LResultSet::InformInitialised()
} }
} }
void LResultSet::InformDataChanged()
{
for (int i = 0; i < m_evtHandlers.GetCount(); i++)
{
void * p = m_evtHandlers.Item(i);
LResultSetEvent * evh = static_cast<LResultSetEvent*> (p);
if (evh != NULL) evh->DataChanged(this);
}
}
void LResultSet::InformBeforeSave() void LResultSet::InformBeforeSave()
{ {
for (int i = 0; i < m_evtHandlers.GetCount(); i++) for (int i = 0; i < m_evtHandlers.GetCount(); i++)
@@ -390,6 +400,10 @@ void LResultSetEvent::Initialised(LResultSet* caller)
{ {
} }
void LResultSetEvent::DataChanged(LResultSet* caller)
{
}
void LResultSetEvent::BeforeSave(LResultSet * caller) void LResultSetEvent::BeforeSave(LResultSet * caller)
{ {
} }

View File

@@ -217,6 +217,7 @@ protected:
wxArrayPtrVoid m_evtHandlers; wxArrayPtrVoid m_evtHandlers;
void InformInitialised(); void InformInitialised();
void InformDataChanged();
void InformBeforeSave(); void InformBeforeSave();
void InformBeforeInsert(); void InformBeforeInsert();
void InformBeforeUpdate(); void InformBeforeUpdate();
@@ -253,6 +254,7 @@ public:
ACTION_ADDNEW = 0, ACTION_SAVE, ACTION_CANCEL, ACTION_REFRESH, ACTION_DELETE ACTION_ADDNEW = 0, ACTION_SAVE, ACTION_CANCEL, ACTION_REFRESH, ACTION_DELETE
}; };
virtual void Initialised(LResultSet * caller); virtual void Initialised(LResultSet * caller);
virtual void DataChanged(LResultSet * caller);
virtual void BeforeSave(LResultSet * caller); virtual void BeforeSave(LResultSet * caller);
virtual void BeforeInsert(LResultSet * caller); virtual void BeforeInsert(LResultSet * caller);
virtual void BeforeUpdate(LResultSet * caller); virtual void BeforeUpdate(LResultSet * caller);

View File

@@ -67,6 +67,7 @@ bool LSQResultSet::RunSQL()
m_initialised = true; m_initialised = true;
InformInitialised(); InformInitialised();
} }
InformDataChanged();
return true; return true;
} }
else else

View File

@@ -7,11 +7,8 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group> <group>
<file>file:/home/user/Documents/published/L7/L7/special/XmlHelper.cpp</file> <file>file:/home/user/Documents/published/L7/L7/LBoundGrid.cpp</file>
<file>file:/home/user/Documents/published/L7/L7/special/XmlGridPickerCtrl.cpp</file> <file>file:/home/user/Documents/published/L7/L7/LBoundGrid.h</file>
<file>file:/home/user/Documents/published/L7/L7/special/LGridXmlCellRenderer.cpp</file>
<file>file:/home/user/Documents/published/L7/L7/special/LGridJsonCellRenderer.h</file>
<file>file:/home/user/Documents/published/L7/L7/special/LGridJsonCellRenderer.cpp</file>
</group> </group>
</open-files> </open-files>
</project-private> </project-private>

View File

@@ -142,3 +142,9 @@ void JsonGridEditorRsEVH::AfterAction(LResultSet * caller, ACTIONS action)
m_owner->m_jsonBuffer.MakeNull(); m_owner->m_jsonBuffer.MakeNull();
} }
} }
void JsonGridEditorRsEVH::DataChanged(LResultSet* caller)
{
m_rs = caller;
m_owner->m_jsonBuffer.MakeNull();
}

View File

@@ -110,6 +110,7 @@ private:
JsonGridEditorRsEVH(LGridJsonCellEditor * owner); JsonGridEditorRsEVH(LGridJsonCellEditor * owner);
virtual ~JsonGridEditorRsEVH(); virtual ~JsonGridEditorRsEVH();
virtual void AfterAction(LResultSet * caller, ACTIONS action); virtual void AfterAction(LResultSet * caller, ACTIONS action);
virtual void DataChanged(LResultSet* caller);
void SetResultSet(LResultSet * caller) void SetResultSet(LResultSet * caller)
{ {

View File

@@ -141,3 +141,9 @@ void XmlGridEditorRsEVH::AfterAction(LResultSet * caller, ACTIONS action)
m_owner->m_xmlBuffer.MakeNull(); m_owner->m_xmlBuffer.MakeNull();
} }
} }
void XmlGridEditorRsEVH::DataChanged(LResultSet* caller)
{
m_rs = caller;
m_owner->m_xmlBuffer.MakeNull();
}

View File

@@ -109,6 +109,7 @@ private:
XmlGridEditorRsEVH(LGridXmlCellEditor * owner); XmlGridEditorRsEVH(LGridXmlCellEditor * owner);
virtual ~XmlGridEditorRsEVH(); virtual ~XmlGridEditorRsEVH();
virtual void AfterAction(LResultSet * caller, ACTIONS action); virtual void AfterAction(LResultSet * caller, ACTIONS action);
virtual void DataChanged(LResultSet* caller);
void SetResultSet(LResultSet * caller) void SetResultSet(LResultSet * caller)
{ {

View File

@@ -9,9 +9,6 @@
</data> </data>
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group> <group/>
<file>file:/home/user/Documents/published/L7/L7Test/L7Test.h</file>
<file>file:/home/user/Documents/published/L7/L7Test/L7Test.cpp</file>
</group>
</open-files> </open-files>
</project-private> </project-private>