1
//////////////////////////////////////////////////////////////////////////
3
// pgAdmin III - PostgreSQL Tools
4
// RCS-ID: $Id: pgCollection.cpp,v 1.35 2004/07/25 20:33:51 andreas Exp $
5
// Copyright (C) 2002 - 2004, The pgAdmin Development Team
6
// This software is released under the Artistic Licence
8
// pgCollection.cpp - Simple object for use with 'collection' nodes
10
//////////////////////////////////////////////////////////////////////////
18
#include "pgCollection.h"
22
#include "pgLanguage.h"
23
#include "pgTablespace.h"
24
#include "pgAggregate.h"
26
#include "pgConversion.h"
28
#include "pgFunction.h"
29
#include "pgOperator.h"
30
#include "pgOperatorClass.h"
31
#include "pgSequence.h"
38
#include "pgTrigger.h"
42
pgCollection::pgCollection(int newType, pgServer *sv)
43
: pgObject(newType, typesList[newType].typName)
45
wxLogInfo(wxT("Creating a pgCollection object"));
52
pgCollection::pgCollection(int newType, pgDatabase *db)
53
: pgObject(newType, typesList[newType].typName)
55
wxLogInfo(wxT("Creating a pgCollection object"));
58
server= database->GetServer();
62
pgCollection::pgCollection(int newType, pgSchema *sch)
63
: pgObject(newType, typesList[newType].typName)
65
wxLogInfo(wxT("Creating a pgCollection object"));
67
database = sch->GetDatabase();
68
server= database->GetServer();
72
pgCollection::~pgCollection()
74
wxLogInfo(wxT("Destroying a pgCollection object"));
78
void pgCollection::ShowList(const wxString& name, wxTreeCtrl *browser, ctlListView *properties)
82
// Display the properties.
87
CreateListColumns(properties, wxGetTranslation(name), _("Comment"));
89
wxTreeItemId item = browser->GetFirstChild(GetId(), cookie);
93
data = (pgObject *)browser->GetItemData(item);
94
if (IsCollectionForType(data->GetType()))
96
properties->InsertItem(pos, data->GetFullName(), data->GetIcon());
97
properties->SetItem(pos, 1, data->GetComment());
100
item = browser->GetNextChild(GetId(), cookie);
108
void pgCollection::UpdateChildCount(wxTreeCtrl *browser, int substract)
111
label.Printf(wxString(wxGetTranslation(GetName())) + wxT(" (%d)"), browser->GetChildrenCount(GetId(), FALSE) -substract);
112
browser->SetItemText(GetId(), label);
116
bool pgCollection::CanCreate()
123
return GetServer()->GetSuperUser();
125
return GetServer()->GetCreatePrivilege();
129
return GetDatabase()->GetCreatePrivilege();
134
case PG_TRIGGERFUNCTIONS:
144
return GetSchema()->GetCreatePrivilege();
145
case PG_OPERATORCLASSES:
152
int pgCollection::GetIcon()
156
case PG_SERVERS: return PGICON_SERVER;
157
case PG_USERS: return PGICON_USER;
158
case PG_GROUPS: return PGICON_GROUP;
159
case PG_DATABASES: return PGICON_DATABASE;
160
case PG_CASTS: return PGICON_CAST;
161
case PG_LANGUAGES: return PGICON_LANGUAGE;
162
case PG_SCHEMAS: return PGICON_SCHEMA;
163
case PG_TABLESPACES: return PGICON_TABLESPACE;
164
case PG_AGGREGATES: return PGICON_AGGREGATE;
165
case PG_CONVERSIONS: return PGICON_CONVERSION;
166
case PG_DOMAINS: return PGICON_DOMAIN;
167
case PG_FUNCTIONS: return PGICON_FUNCTION;
168
case PG_TRIGGERFUNCTIONS: return PGICON_TRIGGERFUNCTION;
169
case PG_OPERATORS: return PGICON_OPERATOR;
170
case PG_OPERATORCLASSES: return PGICON_OPERATORCLASS;
171
case PG_SEQUENCES: return PGICON_SEQUENCE;
172
case PG_TABLES: return PGICON_TABLE;
173
case PG_TYPES: return PGICON_TYPE;
174
case PG_VIEWS: return PGICON_VIEW;
175
case PG_COLUMNS: return PGICON_COLUMN;
176
case PG_INDEXES: return PGICON_INDEX;
177
case PG_RULES: return PGICON_RULE;
178
case PG_TRIGGERS: return PGICON_TRIGGER;
184
pgObject *pgCollection::FindChild(wxTreeCtrl *browser, int index)
189
wxTreeItemId item = browser->GetFirstChild(GetId(), cookie);
191
while (item && index >= 0)
193
data = (pgObject *)browser->GetItemData(item);
194
if (data && IsCollectionForType(data->GetType()))
201
item = browser->GetNextChild(GetId(), cookie);
208
void pgCollection::ShowTreeDetail(wxTreeCtrl *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane)
210
if (browser->GetChildrenCount(GetId(), FALSE) == 0)
215
pgDatabase::ReadObjects(this, browser);
218
pgGroup::ReadObjects(this, browser);
221
pgUser::ReadObjects(this, browser);
224
pgLanguage::ReadObjects(this, browser);
227
pgSchema::ReadObjects(this, browser);
230
pgTablespace::ReadObjects(this, browser);
233
pgAggregate::ReadObjects(this, browser);
236
pgCast::ReadObjects(this, browser);
239
pgConversion::ReadObjects(this, browser);
242
pgDomain::ReadObjects(this, browser);
245
pgFunction::ReadObjects(this, browser);
247
case PG_TRIGGERFUNCTIONS:
248
pgTriggerFunction::ReadObjects(this, browser);
251
pgOperator::ReadObjects(this, browser);
253
case PG_OPERATORCLASSES:
254
pgOperatorClass::ReadObjects(this, browser);
257
pgSequence::ReadObjects(this, browser);
260
pgTable::ReadObjects(this, browser);
263
pgType::ReadObjects(this, browser);
266
pgView::ReadObjects(this, browser);
269
pgColumn::ReadObjects(this, browser);
272
pgIndex::ReadObjects(this, browser);
275
pgRule::ReadObjects(this, browser);
278
pgTrigger::ReadObjects(this, browser);
285
UpdateChildCount(browser);
287
ShowList(typesList[GetType()+1].typName, browser, properties);
291
void pgCollection::ShowStatistics(frmMain *form, ctlListView *statistics)
296
pgDatabase::ShowStatistics(this, statistics);
299
pgTable::ShowStatistics(this, statistics);
302
pgTablespace::ShowStatistics(this, statistics);
b'\\ No newline at end of file'