pgadmin3/include/schema/edbPackage.h
levinsv 4af765213c support PG11
Поддержка PostgreSQL 11 только для Windows
2018-10-10 22:59:25 +05:00

189 lines
3.6 KiB
C++

//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// edbPackage.h - EnterpriseDB Package class
//
//////////////////////////////////////////////////////////////////////////
#ifndef EDBPACKAGE_H
#define EDBPACKAGE_H
// App headers
#include "pgDatabase.h"
#include "pgSchema.h"
class pgCollection;
class edbPackageFactory : public pgSchemaObjFactory
{
public:
edbPackageFactory();
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
pgCollection *CreateCollection(pgObject *obj);
};
extern edbPackageFactory packageFactory;
class edbPackage : public pgSchemaObject
{
public:
edbPackage(pgSchema *newSchema, const wxString &newName = wxT(""));
wxString GetTranslatedMessage(int kindOfMessage) const;
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
bool GetSystemObject() const
{
return GetOid() <= GetConnection()->GetLastSystemOID();
}
void iSetHeader(const wxString &data)
{
header = data;
};
wxString GetHeader()
{
return header;
};
void iSetBody(const wxString &data)
{
body = data;
};
wxString GetBody()
{
return body;
};
wxString GetHeaderInner();
wxString GetBodyInner();
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
wxString GetSql(ctlTree *browser);
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
bool HasStats()
{
return false;
}
bool HasDepends()
{
return true;
}
bool HasReferences()
{
return true;
}
bool IsUpToDate();
wxString GetHelpPage(bool forCreate) const
{
return wxT("pg/packages-create");
}
private:
wxString GetInner(const wxString &def);
long numProcedures, numFunctions, numVariables;
wxString body, header;
};
class edbPackageObject : public pgSchemaObject
{
public:
edbPackageObject(edbPackage *newPackage, pgaFactory &factory, const wxString &newName = wxT(""))
: pgSchemaObject(newPackage->GetSchema(), factory, newName)
{
package = newPackage;
}
virtual edbPackage *GetPackage() const
{
return package;
}
OID GetPackageOid() const
{
return package->GetOid();
}
wxString GetPackageOidStr() const
{
return NumToStr(package->GetOid()) + wxT("::oid");
}
bool CanCreate()
{
return false;
}
bool CanEdit()
{
return false;
}
bool CanDrop()
{
return false;
}
bool CanDropCascaded()
{
return false;
}
bool HasStats()
{
return false;
}
bool HasDepends()
{
return false;
}
bool HasReferences()
{
return false;
}
protected:
edbPackage *package;
};
class edbPackageCollection : public pgSchemaObjCollection
{
public:
edbPackageCollection(pgaFactory *factory, pgSchema *sch);
wxString GetTranslatedMessage(int kindOfMessage) const;
};
class edbPackageObjCollection : public pgSchemaObjCollection
{
public:
edbPackageObjCollection(pgaFactory *factory, edbPackage *_package)
: pgSchemaObjCollection(factory, _package->GetSchema())
{
iSetOid(_package->GetOid());
package = _package;
}
virtual edbPackage *GetPackage() const
{
return package;
}
virtual bool CanCreate()
{
return false;
}
protected:
edbPackage *package;
};
class edbPackageObjFactory : public pgSchemaObjFactory
{
public:
edbPackageObjFactory(const wxChar *tn, const wxChar *ns, const wxChar *nls, wxImage *img, wxImage *imgSm = 0)
: pgSchemaObjFactory(tn, ns, nls, img, imgSm) {}
virtual pgCollection *CreateCollection(pgObject *obj);
};
#endif