///////////////////////////////////////////////////////////////////////////// // Name: dbsgeneric.cpp // Purpose: Database Server - Generic // Author: Daniel Horak // Modified by: // RCS-ID: $Id: dbsgeneric.cc,v 1.4 2004/01/04 18:32:16 horakdan Exp $ // Copyright: (c) Daniel Horak // Licence: GPL ///////////////////////////////////////////////////////////////////////////// // ============================================================================ // declarations // ============================================================================ // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- // For compilers that support precompilation, includes "wx/wx.h". #include #ifdef __BORLANDC__ #pragma hdrstop #endif // for all others, include the necessary headers (this file is usually all you // need because it includes almost all "standard" wxWindows headers #ifndef WX_PRECOMP #include #endif #include "config.h" #include "xml.h" #include "view.h" #include "dbserver.h" #include "dbsgeneric.h" class DBServerGenericSelectDialog: public wxDialog { public: DBServerGenericSelectDialog(int cnt, const wxString servers[]); ~DBServerGenericSelectDialog(); wxChoice *c1; private: DECLARE_EVENT_TABLE(); }; wxString DBServerGeneric::m_types[] = { "bool", "char", "date", "int2", "int4", "int8", "int", "numeric", "real", "text", "time", "timestamp", "varchar" }; wxString DBServerGeneric::m_servers[] = { "PostgreSQL" }; DBServerGenericStyle DBServerGeneric::m_styles[] = { { "gen2pgsql.xsl" } }; int DBServerGeneric::m_typescount = sizeof(DBServerGeneric::m_types) / sizeof(wxString); int DBServerGeneric::m_serverscount = sizeof(DBServerGeneric::m_servers) / sizeof(wxString); DBServerGeneric::DBServerGeneric() : DBServer(DBServerTypeGeneric, "Generic") { #ifdef HAVE_XSLT_SUPPORT int i; for (i = 0; i < m_serverscount; i++) m_styles[i].m_stylesheet = ParseStyle(m_styles[i].m_xslt); #endif } DBServerGeneric::~DBServerGeneric() { } bool DBServerGeneric::ExportDDL(DataDesignerView *view) { wxLogMessage("DBServerGeneric::ExportDDL"); #ifdef HAVE_XSLT_SUPPORT int idx = SelectServer(); if (idx == -1) return TRUE; wxLogMessage("xslt=%s style=%p", m_styles[idx].m_xslt.c_str(), m_styles[idx].m_stylesheet); Transform(view, m_styles[idx].m_stylesheet); #else wxMessageBox(_("Function is not supported in this build."), _("Information"), wxOK | wxICON_INFORMATION); #endif return TRUE; } int DBServerGeneric::SelectServer() { DBServerGenericSelectDialog *d = new DBServerGenericSelectDialog(m_serverscount, m_servers); int res = -1; if (d->ShowModal() == wxID_OK) { res = d->c1->GetSelection(); } d->Destroy(); return res; } BEGIN_EVENT_TABLE(DBServerGenericSelectDialog, wxDialog) END_EVENT_TABLE() DBServerGenericSelectDialog::DBServerGenericSelectDialog(int cnt, const wxString servers[]) : wxDialog(NULL, -1, _("Select server")) { wxBoxSizer *s_top = new wxBoxSizer(wxVERTICAL); wxBoxSizer *s_data = new wxBoxSizer(wxHORIZONTAL); s_top->Add(s_data); s_data->Add(new wxStaticText(this, -1, _("Server:")), 0, wxALL, 10); c1 = new wxChoice(this, -1, wxDefaultPosition, wxDefaultSize, cnt, servers); s_data->Add(c1, 1, wxEXPAND | wxALL, 10); s_top->Add(CreateButtonSizer(wxOK | wxCANCEL), 0, wxALL, 10); SetSizer(s_top); s_top->SetSizeHints(this); } DBServerGenericSelectDialog::~DBServerGenericSelectDialog() { }