1
//////////////////////////////////////////////////////////////////////////
3
// pgAdmin III - PostgreSQL Tools
4
// RCS-ID: $Id: dlgReassignDropOwned.cpp 7759 2009-03-26 21:24:39Z dpage $
5
// Copyright (C) 2002 - 2009, The pgAdmin Development Team
6
// This software is released under the BSD Licence
8
// dlgReassignDropOwned.cpp - Reassign or drop owned objects
10
//////////////////////////////////////////////////////////////////////////
19
#include "utils/pgDefs.h"
20
#include "frm/frmMain.h"
21
#include "utils/misc.h"
22
#include "schema/pgRole.h"
23
#include "dlg/dlgReassignDropOwned.h"
26
// pointer to controls
27
#define rbReassignTo CTRL_RADIOBUTTON("rbReassignTo")
28
#define rbDrop CTRL_RADIOBUTTON("rbDrop")
29
#define cbRoles CTRL_COMBOBOX("cbRoles")
30
#define cbDatabases CTRL_COMBOBOX("cbDatabases")
32
BEGIN_EVENT_TABLE(dlgReassignDropOwned, pgDialog)
33
EVT_RADIOBUTTON(XRCID("rbReassignTo"), dlgReassignDropOwned::OnChange)
34
EVT_RADIOBUTTON(XRCID("rbDrop"), dlgReassignDropOwned::OnChange)
35
EVT_BUTTON(wxID_OK, dlgReassignDropOwned::OnOK)
39
dlgReassignDropOwned::dlgReassignDropOwned(frmMain *win, pgConn *conn,
40
pgRole *role, wxString dbrestriction)
47
wxWindowBase::SetFont(settings->GetSystemFont());
48
LoadResource(win, wxT("dlgReassignDropOwned"));
51
query = wxT("SELECT rolname FROM pg_roles WHERE rolname<>") + conn->qtDbString(role->GetName()) + wxT(" ORDER BY rolname");
52
pgSetIterator roles(connection, query);
53
while (roles.RowsLeft())
55
cbRoles->Append(roles.GetVal(wxT("rolname")));
57
cbRoles->SetSelection(0);
58
cbRoles->Enable(cbRoles->GetStrings().Count() > 0);
61
query = wxT("SELECT DISTINCT datname FROM pg_database WHERE datallowconn");
62
if (!dbrestriction.IsEmpty())
64
query += wxT(" AND datname NOT IN (") + dbrestriction + wxT(")");
66
query += wxT(" ORDER BY datname");
68
pgSetIterator databases(connection, query);
69
while (databases.RowsLeft())
71
cbDatabases->Append(databases.GetVal(wxT("datname")));
73
cbDatabases->SetSelection(0);
76
dlgReassignDropOwned::~dlgReassignDropOwned()
82
void dlgReassignDropOwned::OnOK(wxCommandEvent& ev)
88
void dlgReassignDropOwned::OnCancel(wxCommandEvent& ev)
90
EndModal(wxID_CANCEL);
93
void dlgReassignDropOwned::OnChange(wxCommandEvent &ev)
95
cbRoles->Enable(rbReassignTo->GetValue() && cbRoles->GetStrings().Count() > 0);
98
wxString dlgReassignDropOwned::GetDatabase()
100
return cbDatabases->GetValue();
103
wxString dlgReassignDropOwned::GetRole()
105
return cbRoles->GetValue();
108
bool dlgReassignDropOwned::IsReassign()
110
return rbReassignTo->GetValue();