Huge cleanup of the code. Reformatting, spelling fixes, standardizing on wxWindows conventions, etc.

Changed the couple lines of code required to work with checkins of the new ODBC classes that use wxStrings.
Fixed a ton of memory leaks
Demo still crashes on exit though - this problem has exited for nearly a year though.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
George Tasker
2001-02-01 20:24:44 +00:00
parent 4fdae9972d
commit 645889ad25
17 changed files with 3157 additions and 2979 deletions

View File

@@ -32,385 +32,403 @@
//-- all #includes that every .cpp needs --- 19990807.mj10777 ----------------
//----------------------------------------------------------------------------------------
#include "std.h" // sorgsam Pflegen !
//----------------------------------------------------------------------------------------
//-- Global functions --------------------------------------------------------------------
//----------------------------------------------------------------------------------------
static inline const char *bool2String(bool b)
{
return b ? "" : "not ";
return b ? "" : "not ";
}
//----------------------------------------------------------------------------------------
BEGIN_EVENT_TABLE(DBTree, wxTreeCtrl)
EVT_MOTION (DBTree::OnMouseMove)
EVT_TREE_SEL_CHANGED(TREE_CTRL_DB, DBTree::OnSelChanged)
EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_DB,DBTree::OnRightSelect)
EVT_MENU(DATA_SHOW,DBTree::OnDBGrid)
EVT_MENU(DATA_DB,DBTree::OnDBClass)
EVT_MENU(DATA_TABLE,DBTree::OnTableClass)
EVT_MENU(DATA_TABLE_ALL,DBTree::OnTableClassAll)
EVT_MOTION (DBTree::OnMouseMove)
EVT_TREE_SEL_CHANGED(TREE_CTRL_DB, DBTree::OnSelChanged)
EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_DB,DBTree::OnRightSelect)
EVT_MENU(DATA_SHOW,DBTree::OnDBGrid)
EVT_MENU(DATA_DB,DBTree::OnDBClass)
EVT_MENU(DATA_TABLE,DBTree::OnTableClass)
EVT_MENU(DATA_TABLE_ALL,DBTree::OnTableClassAll)
END_EVENT_TABLE()
//----------------------------------------------------------------------------------------
// DBTree implementation
//----------------------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(DBTree, wxTreeCtrl)
//----------------------------------------------------------------------------------------
DBTree::DBTree(wxWindow *parent) : wxTreeCtrl(parent)
{
}
//----------------------------------------------------------------------------------------
DBTree::DBTree(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size, long style)
: wxTreeCtrl(parent, id, pos, size, style)
: wxTreeCtrl(parent, id, pos, size, style)
{
// Make an image list containing small icons
p_imageListNormal = new wxImageList(16, 16, TRUE);
// should correspond to TreeIc_xxx enum
// Make an image list containing small icons
p_imageListNormal = new wxImageList(16, 16, TRUE);
// should correspond to TreeIc_xxx enum
#if !defined(__WXMSW__)
#include "bitmaps/logo.xpm"
#include "bitmaps/dsnclose.xpm"
#include "bitmaps/dsnopen.xpm"
#include "bitmaps/tab.xpm"
#include "bitmaps/view.xpm"
#include "bitmaps/col.xpm"
#include "bitmaps/key.xpm"
#include "bitmaps/keyf.xpm"
#include "bitmaps/d_open.xpm"
#include "bitmaps/d_closed.xpm"
#include "bitmaps/logo.xpm"
#include "bitmaps/dsnclose.xpm"
#include "bitmaps/dsnopen.xpm"
#include "bitmaps/tab.xpm"
#include "bitmaps/view.xpm"
#include "bitmaps/col.xpm"
#include "bitmaps/key.xpm"
#include "bitmaps/keyf.xpm"
#include "bitmaps/d_open.xpm"
#include "bitmaps/d_closed.xpm"
#endif
p_imageListNormal->Add(wxICON(aLogo));
p_imageListNormal->Add(wxICON(DsnClosed));
p_imageListNormal->Add(wxICON(DsnOpen));
p_imageListNormal->Add(wxICON(TAB));
p_imageListNormal->Add(wxICON(VIEW));
p_imageListNormal->Add(wxICON(COL));
p_imageListNormal->Add(wxICON(KEY));
p_imageListNormal->Add(wxICON(KEYF));
p_imageListNormal->Add(wxICON(DocOpen));
p_imageListNormal->Add(wxICON(DocOpen));
SetImageList(p_imageListNormal);
ct_BrowserDB = NULL;
popupMenu1 = NULL;
popupMenu2 = NULL;
p_imageListNormal->Add(wxICON(aLogo));
p_imageListNormal->Add(wxICON(DsnClosed));
p_imageListNormal->Add(wxICON(DsnOpen));
p_imageListNormal->Add(wxICON(TAB));
p_imageListNormal->Add(wxICON(VIEW));
p_imageListNormal->Add(wxICON(COL));
p_imageListNormal->Add(wxICON(KEY));
p_imageListNormal->Add(wxICON(KEYF));
p_imageListNormal->Add(wxICON(DocOpen));
p_imageListNormal->Add(wxICON(DocOpen));
SetImageList(p_imageListNormal);
ct_BrowserDB = NULL;
popupMenu1 = NULL;
popupMenu2 = NULL;
}
//----------------------------------------------------------------------------------------
DBTree::~DBTree()
{
// delete (pDoc->db_Br+i_Which);
// wxLogMessage("DBTree::~DBTree() - Vor OnCloseDB()");
(pDoc->db_Br+i_Which)->OnCloseDB(FALSE);
// wxLogMessage("DBTree::~DBTree() - Nach OnCloseDB()");
(pDoc->db_Br+i_Which)->db_BrowserDB = NULL;
(pDoc->db_Br+i_Which)->ct_BrowserDB = NULL;
(pDoc->db_Br+i_Which)->cl_BrowserDB = NULL;
delete ct_BrowserDB;
delete ct_BrowserDB;
delete p_imageListNormal;
if (popupMenu1) // If the DSN has no Tables, then no delete should be done !
delete popupMenu1;
if (popupMenu1) // If the DSN has no Tables, then no delete should be done !
delete popupMenu2;
// delete (pDoc->db_Br+i_Which);
// wxLogMessage("DBTree::~DBTree() - Vor OnCloseDB()");
(pDoc->db_Br+i_Which)->OnCloseDB(FALSE);
// wxLogMessage("DBTree::~DBTree() - Nach OnCloseDB()");
(pDoc->db_Br+i_Which)->db_BrowserDB = NULL;
(pDoc->db_Br+i_Which)->ct_BrowserDB = NULL;
(pDoc->db_Br+i_Which)->cl_BrowserDB = NULL;
delete p_imageListNormal;
if (popupMenu1) // If the DSN has no Tables, then no delete should be done !
delete popupMenu1;
if (popupMenu1) // If the DSN has no Tables, then no delete should be done !
delete popupMenu2;
}
//----------------------------------------------------------------------------------------
#undef TREE_EVENT_HANDLER
//----------------------------------------------------------------------------------------
int DBTree::OnPopulate()
int DBTree::OnPopulate()
{
wxTreeItemId Root, Folder, Docu, Funkt;
int i,x,y,z=0, TableType;
wxString SQL_TYPE, DB_TYPE;
SetFont(* pDoc->ft_Doc);
//---------------------------------------------------------------------------------------
if ((pDoc->db_Br+i_Which)->Initialize(FALSE))
{
wxStopWatch sw;
wxBeginBusyCursor();
ct_BrowserDB = (pDoc->db_Br+i_Which)->OnGetCatalog(FALSE);
if (ct_BrowserDB)
{ // Use the wxDatabase Information
Temp0.Printf("%s - (%s) (%s)", s_DSN.c_str(),ct_BrowserDB->catalog, ct_BrowserDB->schema);
Root = AddRoot(Temp0,TreeIc_DsnOpen,TreeIc_DsnOpen,new DBTreeData("Root"));
for (x=0;x<ct_BrowserDB->numTables;x++)
{
wxYield();
TableType = 0; // TABLE = 1 ; VIEW = 2 ; 0 We are not interested in
if (!wxStrcmp((ct_BrowserDB->pTableInf+x)->tableType,"TABLE")) // only TABLES
TableType = 1;
if (!wxStrcmp((ct_BrowserDB->pTableInf+x)->tableType,"VIEW")) // and VIEWS
TableType = 2;
if (TableType) // only TABLES or Views
wxTreeItemId Root, Folder, Docu, Funkt;
int i,x,y,z=0, TableType;
wxString SQL_TYPE, DB_TYPE;
SetFont(* pDoc->ft_Doc);
//---------------------------------------------------------------------------------------
if ((pDoc->db_Br+i_Which)->Initialize(FALSE))
{
Temp1.Printf("TN(%s",(ct_BrowserDB->pTableInf+x)->tableName);
//----
(ct_BrowserDB->pTableInf+x)->pColInf = (pDoc->db_Br+i_Which)->OnGetColumns((ct_BrowserDB->pTableInf+x)->tableName,(ct_BrowserDB->pTableInf+x)->numCols,FALSE);
//----
if ((ct_BrowserDB->pTableInf+x)->pColInf)
{
if (TableType == 1) // Table
{
Temp0.Printf(_("Table-Name(%s) with (%d)Columns ; Remarks(%s)"), (ct_BrowserDB->pTableInf+x)->tableName,
(ct_BrowserDB->pTableInf+x)->numCols,(ct_BrowserDB->pTableInf+x)->tableRemarks);
Folder = AppendItem(Root,Temp0,TreeIc_TAB,TreeIc_TAB, new DBTreeData(Temp1));
}
if (TableType == 2) // View
{
Temp0.Printf(_("View-Name(%s) with (%d)Columns ; Remarks(%s)"), (ct_BrowserDB->pTableInf+x)->tableName,
(ct_BrowserDB->pTableInf+x)->numCols,(ct_BrowserDB->pTableInf+x)->tableRemarks);
Folder = AppendItem(Root,Temp0,TreeIc_VIEW,TreeIc_VIEW, new DBTreeData(Temp1));
}
for (y=0;y<(ct_BrowserDB->pTableInf+x)->numCols;y++)
{
Temp1.Printf("FN(%s",((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName);
// Here is where we find out if the Column is a Primary / Foreign Key
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->PkCol != 0) // Primary Key
{
Temp2.Printf("(%d) - %s",((ct_BrowserDB->pTableInf+x)->pColInf+y)->PkCol,((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName);
Docu = AppendItem(Folder,Temp2,TreeIc_KEY,TreeIc_KEY,new DBTreeData(Temp1));
Temp2 = ((ct_BrowserDB->pTableInf+x)->pColInf+y)->PkTableName;
if (Temp2 == "")
Temp2 = _("None");
Temp2.Printf(_("This Primary Key is used in the following Tables : %s"),Temp2.c_str());
Funkt = AppendItem(Docu,Temp2,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData("KEY"));
}
else
{
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->FkCol != 0) // Foreign Key
{
Temp2.Printf("(%d) - %s",((ct_BrowserDB->pTableInf+x)->pColInf+y)->FkCol,((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName);
Docu = AppendItem(Folder,Temp2,TreeIc_KEYF,TreeIc_KEYF,new DBTreeData(Temp1));
Temp2.Printf(_("This Foreign Key comes from the following Table : %s"),((ct_BrowserDB->pTableInf+x)->pColInf+y)->FkTableName);
Funkt = AppendItem(Docu,Temp2,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData("KEYF"));
}
wxStopWatch sw;
wxBeginBusyCursor();
ct_BrowserDB = (pDoc->db_Br+i_Which)->OnGetCatalog(FALSE);
if (ct_BrowserDB)
{ // Use the wxDatabase Information
Temp0.Printf("%s - (%s) (%s)", s_DSN.c_str(),ct_BrowserDB->catalog, ct_BrowserDB->schema);
Root = AddRoot(Temp0,TreeIc_DsnOpen,TreeIc_DsnOpen,new DBTreeData("Root"));
for (x=0;x<ct_BrowserDB->numTables;x++)
{
wxYield();
TableType = 0; // TABLE = 1 ; VIEW = 2 ; 0 We are not interested in
if (!wxStrcmp((ct_BrowserDB->pTableInf+x)->tableType,"TABLE")) // only TABLES
TableType = 1;
if (!wxStrcmp((ct_BrowserDB->pTableInf+x)->tableType,"VIEW")) // and VIEWS
TableType = 2;
if (TableType) // only TABLES or Views
{
Temp1.Printf("TN(%s",(ct_BrowserDB->pTableInf+x)->tableName);
//----
(ct_BrowserDB->pTableInf+x)->pColInf = (pDoc->db_Br+i_Which)->OnGetColumns((ct_BrowserDB->pTableInf+x)->tableName,(ct_BrowserDB->pTableInf+x)->numCols,FALSE);
//----
if ((ct_BrowserDB->pTableInf+x)->pColInf)
{
if (TableType == 1) // Table
{
Temp0.Printf(_("Table-Name(%s) with (%d)Columns ; Remarks(%s)"), (ct_BrowserDB->pTableInf+x)->tableName,
(ct_BrowserDB->pTableInf+x)->numCols,(ct_BrowserDB->pTableInf+x)->tableRemarks);
Folder = AppendItem(Root,Temp0,TreeIc_TAB,TreeIc_TAB, new DBTreeData(Temp1));
}
if (TableType == 2) // View
{
Temp0.Printf(_("View-Name(%s) with (%d)Columns ; Remarks(%s)"), (ct_BrowserDB->pTableInf+x)->tableName,
(ct_BrowserDB->pTableInf+x)->numCols,(ct_BrowserDB->pTableInf+x)->tableRemarks);
Folder = AppendItem(Root,Temp0,TreeIc_VIEW,TreeIc_VIEW, new DBTreeData(Temp1));
}
for (y=0;y<(ct_BrowserDB->pTableInf+x)->numCols;y++)
{
Temp1.Printf("FN(%s",((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName);
// Here is where we find out if the Column is a Primary / Foreign Key
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->PkCol != 0) // Primary Key
{
Temp2.Printf("(%d) - %s",((ct_BrowserDB->pTableInf+x)->pColInf+y)->PkCol,((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName);
Docu = AppendItem(Folder,Temp2,TreeIc_KEY,TreeIc_KEY,new DBTreeData(Temp1));
Temp2 = ((ct_BrowserDB->pTableInf+x)->pColInf+y)->PkTableName;
if (Temp2 == "")
Temp2 = _("None");
Temp2.Printf(_("This Primary Key is used in the following Tables : %s"),Temp2.c_str());
Funkt = AppendItem(Docu,Temp2,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData("KEY"));
}
else
{
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->FkCol != 0) // Foreign Key
{
Temp2.Printf("(%d) - %s",((ct_BrowserDB->pTableInf+x)->pColInf+y)->FkCol,((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName);
Docu = AppendItem(Folder,Temp2,TreeIc_KEYF,TreeIc_KEYF,new DBTreeData(Temp1));
Temp2.Printf(_("This Foreign Key comes from the following Table : %s"),((ct_BrowserDB->pTableInf+x)->pColInf+y)->FkTableName);
Funkt = AppendItem(Docu,Temp2,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData("KEYF"));
}
else
Docu = AppendItem(Folder,((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName,TreeIc_COL,TreeIc_COL,new DBTreeData(Temp1));
}
SQL_TYPE.Printf("SQL_C_???? (%d)",((ct_BrowserDB->pTableInf+x)->pColInf+y)->sqlDataType);
DB_TYPE.Printf("DB_DATA_TYPE_???? (%d)",((ct_BrowserDB->pTableInf+x)->pColInf+y)->dbDataType);
for (i=1;i<=(pDoc->db_Br+i_Which)->i_SqlTyp[0];i++)
{
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->sqlDataType == (pDoc->db_Br+i_Which)->i_SqlTyp[i])
{
SQL_TYPE.Printf("%s(%d) ; ",(pDoc->db_Br+i_Which)->s_SqlTyp[i].c_str(),(pDoc->db_Br+i_Which)->i_SqlTyp[i]);
}
} // for (i=1;i<=i_SqlTyp[0];i++)
wxYield();
for (i=1;i<=(pDoc->db_Br+i_Which)->i_dbTyp[0];i++)
{
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->dbDataType == (pDoc->db_Br+i_Which)->i_dbTyp[i])
{
DB_TYPE.Printf("%s(%d)",(pDoc->db_Br+i_Which)->s_dbTyp[i].c_str(),(pDoc->db_Br+i_Which)->i_dbTyp[i]);
}
} // for (i=1;i<=i_dbTyp[0];i++)
wxYield();
SQL_TYPE += DB_TYPE;
Funkt = AppendItem(Docu,SQL_TYPE,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData(SQL_TYPE));
SQL_TYPE.Printf("%10s %d,%d",((ct_BrowserDB->pTableInf+x)->pColInf+y)->typeName,
((ct_BrowserDB->pTableInf+x)->pColInf+y)->columnSize,((ct_BrowserDB->pTableInf+x)->pColInf+y)->decimalDigits);
Funkt = AppendItem(Docu,SQL_TYPE,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData(SQL_TYPE));
} // for (y=0;y<(ct_BrowserDB->pTableInf+x)->numCols;y++)
} // if ((ct_BrowserDB->pTableInf+x)->pColInf)
else
Folder = AppendItem(Root,Temp0,TreeIc_FolderClosed,TreeIc_FolderOpen, new DBTreeData(Temp1));
z++;
// if (z % 10 == 0)
{
Temp0.Printf(_("-I-> DBTree::OnPopulate(%s) - Table %6d (from %d) has been read."),(ct_BrowserDB->pTableInf+x)->tableName,z,ct_BrowserDB->numTables);
pDoc->p_MainFrame->SetStatusText(Temp0, 0);
}
wxYield();
} // if ((ct_BrowserDB->pTableInf+x)->tableType == "TABLE" or VIEW)
// else
// wxLogMessage(_("\n-I-> if ! TABLE or VIEW >%s<"),(ct_BrowserDB->pTableInf+x)->tableType);
} // for (x=0;x<ct_BrowserDB->numTables;x++)
} // if (ct_BrowserDB)
else
Docu = AppendItem(Folder,((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName,TreeIc_COL,TreeIc_COL,new DBTreeData(Temp1));
}
SQL_TYPE.Printf("SQL_C_???? (%d)",((ct_BrowserDB->pTableInf+x)->pColInf+y)->sqlDataType);
DB_TYPE.Printf("DB_DATA_TYPE_???? (%d)",((ct_BrowserDB->pTableInf+x)->pColInf+y)->dbDataType);
for (i=1;i<=(pDoc->db_Br+i_Which)->i_SqlTyp[0];i++)
{
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->sqlDataType == (pDoc->db_Br+i_Which)->i_SqlTyp[i])
{
SQL_TYPE.Printf("%s(%d) ; ",(pDoc->db_Br+i_Which)->s_SqlTyp[i].c_str(),(pDoc->db_Br+i_Which)->i_SqlTyp[i]);
}
} // for (i=1;i<=i_SqlTyp[0];i++)
for (i=1;i<=(pDoc->db_Br+i_Which)->i_dbTyp[0];i++)
{
if (((ct_BrowserDB->pTableInf+x)->pColInf+y)->dbDataType == (pDoc->db_Br+i_Which)->i_dbTyp[i])
{
DB_TYPE.Printf("%s(%d)",(pDoc->db_Br+i_Which)->s_dbTyp[i].c_str(),(pDoc->db_Br+i_Which)->i_dbTyp[i]);
}
} // for (i=1;i<=i_dbTyp[0];i++)
SQL_TYPE += DB_TYPE;
Funkt = AppendItem(Docu,SQL_TYPE,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData(SQL_TYPE));
SQL_TYPE.Printf("%10s %d,%d",((ct_BrowserDB->pTableInf+x)->pColInf+y)->typeName,
((ct_BrowserDB->pTableInf+x)->pColInf+y)->columnSize,((ct_BrowserDB->pTableInf+x)->pColInf+y)->decimalDigits);
Funkt = AppendItem(Docu,SQL_TYPE,TreeIc_DocClosed,TreeIc_DocOpen,new DBTreeData(SQL_TYPE));
} // for (y=0;y<(ct_BrowserDB->pTableInf+x)->numCols;y++)
} // if ((ct_BrowserDB->pTableInf+x)->pColInf)
else
Folder = AppendItem(Root,Temp0,TreeIc_FolderClosed,TreeIc_FolderOpen, new DBTreeData(Temp1));
z++;
if (z % 10 == 0)
{
Temp0.Printf(_("-I-> DBTree::OnPopulate(%s) - Table %6d (from %d) has been read."),(ct_BrowserDB->pTableInf+x)->tableName,z,ct_BrowserDB->numTables);
pDoc->p_MainFrame->SetStatusText(Temp0, 0);
}
} // if ((ct_BrowserDB->pTableInf+x)->tableType == "TABLE" or VIEW)
// else
// wxLogMessage(_("\n-I-> if ! TABLE or VIEW >%s<"),(ct_BrowserDB->pTableInf+x)->tableType);
} // for (x=0;x<ct_BrowserDB->numTables;x++)
} // if (ct_BrowserDB)
else
wxLogMessage(_("\n-E-> DBTree::OnPopulate() : Invalid Catalog Pointer : Failed"));
wxEndBusyCursor();
Temp0.Printf(_("-I-> DBTree::OnPopulate() - %6d Tables have been read. - Time needed : %ld ms"),z,sw.Time());
wxLogMessage(Temp0);
pDoc->p_MainFrame->SetStatusText(Temp0, 0);
} // if((pDoc->db_Br+i_Which)->Initialize(FALSE))
else
{
wxLogMessage(_("\n-E-> DBTree::OnPopulate() : A valid Pointer could not be created : Failed"));
return 0;
}
//---------------------------------------------------------------------------------------
Expand(Root);
//---------------------------------------------------------------------------------------
popupMenu1 = NULL;
popupMenu1 = new wxMenu("");
popupMenu1->Append(DATA_DB, _("Make wxDB.cpp/h "));
popupMenu1->AppendSeparator();
popupMenu1->Append(DATA_TABLE_ALL, _("Make all wxTable.cpp/h classes"));
popupMenu2 = NULL;
popupMenu2 = new wxMenu("");
popupMenu2->Append(DATA_SHOW, _("Show Data"));
popupMenu2->AppendSeparator();
popupMenu2->Append(DATA_TABLE, _("Make wxTable.cpp/h "));
//---------------------------------------------------------------------------------------
return 0;
}
wxLogMessage(_("\n-E-> DBTree::OnPopulate() : Invalid Catalog Pointer : Failed"));
wxEndBusyCursor();
Temp0.Printf(_("-I-> DBTree::OnPopulate() - %6d Tables have been read. - Time needed : %ld ms"),z,sw.Time());
wxLogMessage(Temp0);
pDoc->p_MainFrame->SetStatusText(Temp0, 0);
} // if((pDoc->db_Br+i_Which)->Initialize(FALSE))
else
{
wxLogMessage(_("\n-E-> DBTree::OnPopulate() : A valid Pointer could not be created : Failed"));
return 0;
}
//---------------------------------------------------------------------------------------
Expand(Root);
//---------------------------------------------------------------------------------------
popupMenu1 = NULL;
popupMenu1 = new wxMenu("");
popupMenu1->Append(DATA_DB, _("Make wxDB.cpp/h "));
popupMenu1->AppendSeparator();
popupMenu1->Append(DATA_TABLE_ALL, _("Make all wxTable.cpp/h classes"));
popupMenu2 = NULL;
popupMenu2 = new wxMenu("");
popupMenu2->Append(DATA_SHOW, _("Show Data"));
popupMenu2->AppendSeparator();
popupMenu2->Append(DATA_TABLE, _("Make wxTable.cpp/h "));
//---------------------------------------------------------------------------------------
return 0;
} // DBTree::OnPopulate()
//----------------------------------------------------------------------------------------
void DBTree::OnSelChanged(wxTreeEvent& WXUNUSED(event))
{
int i;
Temp0.Empty();
pDoc->p_MainFrame->SetStatusText(Temp0,0);
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
int Treffer = 0;
Temp1.Printf("%s",item->m_desc.c_str());
//-------------------------------------------------------------------------------------
if (Temp1.Contains("ODBC-"))
{
Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
for (i=0;i<pDoc->i_DSN;i++)
int i;
Temp0.Empty();
pDoc->p_MainFrame->SetStatusText(Temp0,0);
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
if (Temp1 == (pDoc->p_DSN+i)->Dsn)
{
// pDoc->OnChosenDSN(i);
int Treffer = 0;
Temp1.Printf("%s",item->m_desc.c_str());
//-------------------------------------------------------------------------------------
if (Temp1.Contains("ODBC-"))
{
Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
for (i=0;i<pDoc->i_DSN;i++)
{
if (Temp1 == (pDoc->p_DSN+i)->Dsn)
{
// pDoc->OnChosenDSN(i);
}
}
Treffer++;
}
//--------------------------------------------------------------------------------------
if (Treffer == 0)
{
//-------------------------------------------------------------------------------------
/*
Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
"%u children (%u immediately under this item)."),
item->m_desc.c_str(),
bool2String(IsSelected(itemId)),
bool2String(IsExpanded(itemId)),
bool2String(IsBold(itemId)),
GetChildrenCount(itemId),
GetChildrenCount(itemId));
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
wxLogMessage( "%s", LogBuf.c_str() );
*/
//-------------------------------------------------------------------------------------
}
}
}
Treffer++;
}
//--------------------------------------------------------------------------------------
if (Treffer == 0)
{
//-------------------------------------------------------------------------------------
/*
Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
"%u children (%u immediately under this item)."),
item->m_desc.c_str(),
bool2String(IsSelected(itemId)),
bool2String(IsExpanded(itemId)),
bool2String(IsBold(itemId)),
GetChildrenCount(itemId),
GetChildrenCount(itemId));
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
wxLogMessage( "%s", LogBuf.c_str() );
*/
//-------------------------------------------------------------------------------------
}
}
}
//----------------------------------------------------------------------------------------
void DBTree::OnRightSelect(wxTreeEvent& WXUNUSED(event))
{
int i;
Temp0.Empty();
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
int Treffer = 0;
Temp1.Printf("%s",item->m_desc.c_str());
//--------------------------------------------------------------------------------------
if (!wxStrcmp("Root",Temp1))
{
PopupMenu(popupMenu1,TreePos.x,TreePos.y);
Treffer++;
}
for (i=0;i<ct_BrowserDB->numTables;i++)
{
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
if (!wxStrcmp(Temp2,Temp1))
{
PopupMenu(popupMenu2,TreePos.x,TreePos.y);
Treffer++;
}
}
//--------------------------------------------------------------------------------------
if (Treffer == 0)
{
//-------------------------------------------------------------------------------------
/*
Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
"%u children (%u immediately under this item)."),
item->m_desc.c_str(),
bool2String(IsSelected(itemId)),
bool2String(IsExpanded(itemId)),
bool2String(IsBold(itemId)),
GetChildrenCount(itemId),
GetChildrenCount(itemId));
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
wxLogMessage( "%s", LogBuf.c_str() );
*/
//-------------------------------------------------------------------------------------
}
}
int i;
Temp0.Empty();
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
int Treffer = 0;
Temp1.Printf("%s",item->m_desc.c_str());
//--------------------------------------------------------------------------------------
if (!wxStrcmp("Root",Temp1))
{
PopupMenu(popupMenu1,TreePos.x,TreePos.y);
Treffer++;
}
for (i=0;i<ct_BrowserDB->numTables;i++)
{
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
if (!wxStrcmp(Temp2,Temp1))
{
PopupMenu(popupMenu2,TreePos.x,TreePos.y);
Treffer++;
}
}
//--------------------------------------------------------------------------------------
if (Treffer == 0)
{
//-------------------------------------------------------------------------------------
/*
Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
"%u children (%u immediately under this item)."),
item->m_desc.c_str(),
bool2String(IsSelected(itemId)),
bool2String(IsExpanded(itemId)),
bool2String(IsBold(itemId)),
GetChildrenCount(itemId),
GetChildrenCount(itemId));
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
wxLogMessage( "%s", LogBuf.c_str() );
*/
//-------------------------------------------------------------------------------------
}
}
}
//----------------------------------------------------------------------------------------
void DBTree::OnDBGrid(wxCommandEvent& event)
{
int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp1.Printf("%s",item->m_desc.c_str());
for (i=0;i<ct_BrowserDB->numTables;i++)
{
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
if (!wxStrcmp(Temp2,Temp1))
{
// Temp0.Printf("(%d) Here is where a GridCtrl for >%s< will be called! ",i,(ct_BrowserDB->pTableInf+i)->tableName);
pDoc->OnChosenTbl(1,(ct_BrowserDB->pTableInf+i)->tableName);
// wxMessageBox(Temp0);
}
}
}
int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp1.Printf("%s",item->m_desc.c_str());
for (i=0;i<ct_BrowserDB->numTables;i++)
{
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
if (!wxStrcmp(Temp2,Temp1))
{
// Temp0.Printf("(%d) Here is where a GridCtrl for >%s< will be called! ",i,(ct_BrowserDB->pTableInf+i)->tableName);
pDoc->OnChosenTbl(1,(ct_BrowserDB->pTableInf+i)->tableName);
// wxMessageBox(Temp0);
}
}
}
}
//----------------------------------------------------------------------------------------
void DBTree::OnDBClass(wxCommandEvent& event)
{
// int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp0.Printf(_("Here is where a wxDB Class for >%s< will be made! "),s_DSN.c_str());
wxMessageBox(Temp0);
}
// int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp0.Printf(_("Here is where a wxDB Class for >%s< will be made! "),s_DSN.c_str());
wxMessageBox(Temp0);
}
}
//----------------------------------------------------------------------------------------
void DBTree::OnTableClass(wxCommandEvent& event)
{
int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp1.Printf("%s",item->m_desc.c_str());
for (i=0;i<ct_BrowserDB->numTables;i++)
{
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
if (!wxStrcmp(Temp2,Temp1))
{
Temp0.Printf(_("(%d) Here is where a wxTable Class for >%s< will be made! "),i,(ct_BrowserDB->pTableInf+i)->tableName);
wxMessageBox(Temp0);
}
}
}
int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp1.Printf("%s",item->m_desc.c_str());
for (i=0;i<ct_BrowserDB->numTables;i++)
{
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
if (!wxStrcmp(Temp2,Temp1))
{
Temp0.Printf(_("(%d) Here is where a wxTable Class for >%s< will be made! "),i,(ct_BrowserDB->pTableInf+i)->tableName);
wxMessageBox(Temp0);
}
}
}
}
//----------------------------------------------------------------------------------------
void DBTree::OnTableClassAll(wxCommandEvent& event)
{
// int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp0.Printf(_("Here is where all wxTable Classes in >%s< will be made! "),s_DSN.c_str());
wxMessageBox(Temp0);
}
// int i;
// Get the Information that we need
wxTreeItemId itemId = GetSelection();
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
if ( item != NULL )
{
Temp0.Printf(_("Here is where all wxTable Classes in >%s< will be made! "),s_DSN.c_str());
wxMessageBox(Temp0);
}
}
//----------------------------------------------------------------------------------------
void DBTree::OnMouseMove(wxMouseEvent &event)
{
TreePos = event.GetPosition();
TreePos = event.GetPosition();
}
//----------------------------------------------------------------------------------------