mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-09-05 22:02:38 -06:00
support PG11
Поддержка PostgreSQL 11 только для Windows
This commit is contained in:
commit
4af765213c
1765 changed files with 407959 additions and 0 deletions
147
schema/pgCollection.cpp
Normal file
147
schema/pgCollection.cpp
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// pgAdmin III - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
// pgCollection.cpp - Simple object for use with 'collection' nodes
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// wxWindows headers
|
||||
#include <wx/wx.h>
|
||||
|
||||
// App headers
|
||||
#include "pgAdmin3.h"
|
||||
#include "frm/menu.h"
|
||||
#include "utils/misc.h"
|
||||
#include "agent/pgaJob.h"
|
||||
#include "schema/pgSchema.h"
|
||||
#include "schema/pgTable.h"
|
||||
#include "frm/frmMain.h"
|
||||
#include "frm/frmReport.h"
|
||||
|
||||
pgCollection::pgCollection(pgaFactory *factory)
|
||||
: pgObject(*factory)
|
||||
{
|
||||
um = 0;
|
||||
fsrv = 0;
|
||||
fdw = 0;
|
||||
job = 0;
|
||||
schema = 0;
|
||||
database = 0;
|
||||
server = 0;
|
||||
}
|
||||
|
||||
bool pgCollection::IsCollectionFor(pgObject *obj)
|
||||
{
|
||||
if (!obj)
|
||||
return false;
|
||||
pgaFactory *f = obj->GetFactory();
|
||||
if (!f)
|
||||
return false;
|
||||
return GetFactory() == f->GetCollectionFactory();
|
||||
}
|
||||
|
||||
|
||||
bool pgCollection::IsCollectionForType(const int type)
|
||||
{
|
||||
if (GetFactory())
|
||||
{
|
||||
pgaFactory *f = pgaFactory::GetFactoryByMetaType(type);
|
||||
return (f && f->GetCollectionFactory() == GetFactory());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void pgCollection::ShowList(ctlTree *browser, ctlListView *properties)
|
||||
{
|
||||
ShowList(((pgaCollectionFactory *)GetFactory())->GetItemTypeName(), browser, properties);
|
||||
}
|
||||
|
||||
void pgCollection::ShowList(const wxString &name, ctlTree *browser, ctlListView *properties)
|
||||
{
|
||||
if (properties)
|
||||
{
|
||||
// Display the properties.
|
||||
wxCookieType cookie;
|
||||
pgObject *data;
|
||||
|
||||
// Setup listview
|
||||
CreateList3Columns(properties, wxGetTranslation(name), _("Owner"), _("Comment"));
|
||||
|
||||
wxTreeItemId item = browser->GetFirstChild(GetId(), cookie);
|
||||
long pos = 0;
|
||||
while (item)
|
||||
{
|
||||
data = browser->GetObject(item);
|
||||
if (IsCollectionFor(data))
|
||||
{
|
||||
properties->InsertItem(pos, data->GetFullName(), data->GetIconId());
|
||||
properties->SetItem(pos, 1, data->GetOwner());
|
||||
properties->SetItem(pos, 2, firstLineOnly(data->GetComment()));
|
||||
pos++;
|
||||
}
|
||||
// Get the next item
|
||||
item = browser->GetNextChild(GetId(), cookie);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void pgCollection::UpdateChildCount(ctlTree *browser, int substract)
|
||||
{
|
||||
wxString label;
|
||||
label.Printf(wxString(wxGetTranslation(GetName())) + wxT(" (%d)"), (int)browser->GetChildrenCount(GetId(), false) - substract);
|
||||
browser->SetItemText(GetId(), label);
|
||||
}
|
||||
|
||||
|
||||
int pgCollection::GetIconId()
|
||||
{
|
||||
pgaFactory *objFactory = pgaFactory::GetFactory(GetType());
|
||||
if (objFactory)
|
||||
return objFactory->GetIconId();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
pgObject *pgCollection::FindChild(ctlTree *browser, const int index)
|
||||
{
|
||||
wxCookieType cookie;
|
||||
pgObject *data;
|
||||
|
||||
wxTreeItemId item = browser->GetFirstChild(GetId(), cookie);
|
||||
long pos = 0;
|
||||
while (item && index >= 0)
|
||||
{
|
||||
data = browser->GetObject(item);
|
||||
if (data && IsCollectionFor(data))
|
||||
{
|
||||
if (index == pos)
|
||||
return data;
|
||||
|
||||
pos++;
|
||||
}
|
||||
item = browser->GetNextChild(GetId(), cookie);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void pgCollection::ShowTreeDetail(ctlTree *browser, frmMain *form, ctlListView *properties, ctlSQLBox *sqlPane)
|
||||
{
|
||||
if (browser->GetChildrenCount(GetId(), false) == 0)
|
||||
{
|
||||
if (GetFactory())
|
||||
GetFactory()->CreateObjects(this, browser);
|
||||
}
|
||||
|
||||
UpdateChildCount(browser);
|
||||
if (properties)
|
||||
{
|
||||
ShowList(browser, properties);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue