1
//////////////////////////////////////////////////////////////////////////
3
// pgAdmin III - PostgreSQL Tools
4
// RCS-ID: $Id: dlgPackage.cpp 7324 2008-05-29 15:58:38Z dpage $
5
// Copyright (C) 2002 - 2008, The pgAdmin Development Team
6
// This software is released under the Artistic Licence
8
// dlgPackage.cpp - EnterpriseDB package Property
10
//////////////////////////////////////////////////////////////////////////
17
#include "utils/misc.h"
19
#include "dlg/dlgPackage.h"
20
#include "schema/edbPackage.h"
22
// pointer to controls
23
#define txtName CTRL_TEXT("txtName")
24
#define txtComment CTRL_TEXT("txtComment")
25
#define txtHeader CTRL_SQLBOX("txtHeader")
26
#define txtBody CTRL_SQLBOX("txtBody")
28
dlgProperty *edbPackageFactory::CreateDialog(frmMain *frame, pgObject *node, pgObject *parent)
30
return new dlgPackage(this, frame, (edbPackage*)node, (pgSchema *)parent);
34
BEGIN_EVENT_TABLE(dlgPackage, dlgSecurityProperty)
35
EVT_STC_MODIFIED(XRCID("txtHeader"), dlgProperty::OnChangeStc)
36
EVT_STC_MODIFIED(XRCID("txtBody"), dlgProperty::OnChangeStc)
40
dlgPackage::dlgPackage(pgaFactory *f, frmMain *frame, edbPackage *node, pgSchema *sch)
41
: dlgSecurityProperty(f, frame, node, wxT("dlgPackage"), wxT("EXECUTE"), "X")
46
txtHeader->SetMarginType(1, wxSTC_MARGIN_NUMBER);
47
txtHeader->SetMarginWidth(1, ConvertDialogToPixels(wxPoint(16, 0)).x);
49
txtBody->SetMarginType(1, wxSTC_MARGIN_NUMBER);
50
txtBody->SetMarginWidth(1, ConvertDialogToPixels(wxPoint(16, 0)).x);
55
pgObject *dlgPackage::GetObject()
61
int dlgPackage::Go(bool modal)
63
if (!connection->EdbMinimumVersion(8, 2))
64
txtComment->Disable();
76
txtHeader->SetText(package->GetHeaderInner());
77
txtBody->SetText(package->GetBodyInner());
85
return dlgSecurityProperty::Go(modal);
89
pgObject *dlgPackage::CreateObject(pgCollection *collection)
93
if (collection->GetConnection()->EdbMinimumVersion(8, 2))
94
obj=packageFactory.CreateObjects(collection, 0,
95
wxT(" AND nspname = ") + qtDbString(GetName()));
97
obj=packageFactory.CreateObjects(collection, 0,
98
wxT(" AND pkgname = ") + qtDbString(GetName()));
104
void dlgPackage::CheckChange()
108
CheckValid(enable, !txtName->GetValue().IsEmpty(), _("Please specify name."));
109
CheckValid(enable, !txtHeader->GetText().IsEmpty(), _("Please specify package header."));
113
if (!(txtBody->GetText() != package->GetBodyInner() ||
114
txtHeader->GetText() != package->GetHeaderInner()))
117
if (txtComment->GetValue() != package->GetComment())
124
bool dlgPackage::IsUpToDate()
126
if (package && !package->IsUpToDate())
133
wxString dlgPackage::GetSql()
136
wxString qtName = schema->GetQuotedSchemaPrefix(schema->GetName()) + qtIdent(txtName->GetValue());
138
if (!package || (package && txtHeader->GetText() != package->GetHeaderInner()))
141
sql = wxT("DROP PACKAGE BODY ") + qtName + wxT(";\n\n");
143
sql += wxT("CREATE OR REPLACE PACKAGE ") + qtName + wxT("\nAS\n");
144
sql += txtHeader->GetText();
145
sql += wxT("\nEND ") + qtIdent(txtName->GetValue()) + wxT(";\n\n");
148
if (!package || (package && txtBody->GetText() != package->GetBodyInner())
149
|| (package && txtHeader->GetText() != package->GetHeaderInner()))
151
if (!txtBody->GetText().IsEmpty())
153
sql += wxT("CREATE OR REPLACE PACKAGE BODY ") + qtName + wxT("\nAS\n");
154
sql += txtBody->GetText();
155
sql += wxT("\nEND ") + qtIdent(txtName->GetValue()) + wxT(";\n\n");
160
sql = wxT("DROP PACKAGE BODY ") + qtName + wxT(";\n\n");
164
sql += GetGrant(wxT("X"), wxT("PACKAGE ") + qtName);
166
AppendComment(sql, wxT("PACKAGE"), schema, package);
1
//////////////////////////////////////////////////////////////////////////
3
// pgAdmin III - PostgreSQL Tools
4
// RCS-ID: $Id: dlgPackage.cpp 7758 2009-03-26 20:49:59Z dpage $
5
// Copyright (C) 2002 - 2009, The pgAdmin Development Team
6
// This software is released under the BSD Licence
8
// dlgPackage.cpp - EnterpriseDB package Property
10
//////////////////////////////////////////////////////////////////////////
17
#include "utils/misc.h"
19
#include "dlg/dlgPackage.h"
20
#include "schema/edbPackage.h"
22
// pointer to controls
23
#define txtName CTRL_TEXT("txtName")
24
#define txtComment CTRL_TEXT("txtComment")
25
#define txtHeader CTRL_SQLBOX("txtHeader")
26
#define txtBody CTRL_SQLBOX("txtBody")
28
dlgProperty *edbPackageFactory::CreateDialog(frmMain *frame, pgObject *node, pgObject *parent)
30
return new dlgPackage(this, frame, (edbPackage*)node, (pgSchema *)parent);
34
BEGIN_EVENT_TABLE(dlgPackage, dlgSecurityProperty)
35
EVT_STC_MODIFIED(XRCID("txtHeader"), dlgProperty::OnChangeStc)
36
EVT_STC_MODIFIED(XRCID("txtBody"), dlgProperty::OnChangeStc)
40
dlgPackage::dlgPackage(pgaFactory *f, frmMain *frame, edbPackage *node, pgSchema *sch)
41
: dlgSecurityProperty(f, frame, node, wxT("dlgPackage"), wxT("EXECUTE"), "X")
46
txtHeader->SetMarginType(1, wxSTC_MARGIN_NUMBER);
47
txtHeader->SetMarginWidth(1, ConvertDialogToPixels(wxPoint(16, 0)).x);
49
txtBody->SetMarginType(1, wxSTC_MARGIN_NUMBER);
50
txtBody->SetMarginWidth(1, ConvertDialogToPixels(wxPoint(16, 0)).x);
55
pgObject *dlgPackage::GetObject()
61
int dlgPackage::Go(bool modal)
63
if (!connection->EdbMinimumVersion(8, 2))
64
txtComment->Disable();
76
txtHeader->SetText(package->GetHeaderInner());
77
txtBody->SetText(package->GetBodyInner());
85
return dlgSecurityProperty::Go(modal);
89
pgObject *dlgPackage::CreateObject(pgCollection *collection)
93
if (collection->GetConnection()->EdbMinimumVersion(8, 2))
94
obj=packageFactory.CreateObjects(collection, 0,
95
wxT(" AND nspname = ") + qtDbString(GetName()));
97
obj=packageFactory.CreateObjects(collection, 0,
98
wxT(" AND pkgname = ") + qtDbString(GetName()));
105
void dlgPackage::OnChangeSize(wxSizeEvent &ev)
107
SetPrivilegesLayout();
116
void dlgPackage::CheckChange()
120
CheckValid(enable, !txtName->GetValue().IsEmpty(), _("Please specify name."));
121
CheckValid(enable, !txtHeader->GetText().IsEmpty(), _("Please specify package header."));
125
if (!(txtBody->GetText() != package->GetBodyInner() ||
126
txtHeader->GetText() != package->GetHeaderInner()))
129
if (txtComment->GetValue() != package->GetComment())
136
bool dlgPackage::IsUpToDate()
138
if (package && !package->IsUpToDate())
145
wxString dlgPackage::GetSql()
148
wxString qtName = schema->GetQuotedSchemaPrefix(schema->GetName()) + qtIdent(txtName->GetValue());
150
if (!package || (package && txtHeader->GetText() != package->GetHeaderInner()))
153
sql = wxT("DROP PACKAGE BODY ") + qtName + wxT(";\n\n");
155
sql += wxT("CREATE OR REPLACE PACKAGE ") + qtName + wxT("\nIS\n");
156
sql += txtHeader->GetText();
157
sql += wxT("\nEND ") + qtIdent(txtName->GetValue()) + wxT(";\n\n");
160
if (!package || (package && txtBody->GetText() != package->GetBodyInner())
161
|| (package && txtHeader->GetText() != package->GetHeaderInner()))
163
if (!txtBody->GetText().IsEmpty())
165
sql += wxT("CREATE OR REPLACE PACKAGE BODY ") + qtName + wxT("\nIS\n");
166
sql += txtBody->GetText();
167
sql += wxT("\nEND ") + qtIdent(txtName->GetValue()) + wxT(";\n\n");
172
sql = wxT("DROP PACKAGE BODY ") + qtName + wxT(";\n\n");
176
sql += GetGrant(wxT("X"), wxT("PACKAGE ") + qtName);
178
AppendComment(sql, wxT("PACKAGE"), schema, package);