mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-16 06:05:49 -06:00
113 lines
3.1 KiB
C++
113 lines
3.1 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin III - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
// pgIndexConstraint.h PostgreSQL Index Constraint: PK, Unique
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef __PG_INDEXCONSTRAINT
|
|
#define __PG_INDEXCONSTRAINT
|
|
|
|
#include "pgIndex.h"
|
|
|
|
class pgIndexConstraint : public pgIndexBase
|
|
{
|
|
public:
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
|
|
bool DropObject(wxFrame *frame, ctlTree *browse, bool cascadedr);
|
|
wxString GetDefinition();
|
|
wxString GetCreate();
|
|
wxString GetSql(ctlTree *browser);
|
|
wxString GetHelpPage(bool forCreate) const
|
|
{
|
|
return wxT("pg/sql-altertable");
|
|
}
|
|
OID GetConstraintOid()
|
|
{
|
|
return constraintOid;
|
|
}
|
|
void iSetConstraintOid(const OID o)
|
|
{
|
|
constraintOid = o;
|
|
}
|
|
|
|
protected:
|
|
pgIndexConstraint(pgSchema *newSchema, pgaFactory &factory, const wxString &newName)
|
|
: pgIndexBase(newSchema, factory, newName) {}
|
|
|
|
private:
|
|
OID constraintOid;
|
|
};
|
|
|
|
|
|
class pgPrimaryKeyFactory : public pgIndexBaseFactory
|
|
{
|
|
public:
|
|
pgPrimaryKeyFactory();
|
|
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
|
|
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
|
|
};
|
|
extern pgPrimaryKeyFactory primaryKeyFactory;
|
|
|
|
class pgPrimaryKey : public pgIndexConstraint
|
|
{
|
|
public:
|
|
pgPrimaryKey(pgSchema *newSchema, const wxString &newName = wxT(""))
|
|
: pgIndexConstraint(newSchema, primaryKeyFactory, newName) {}
|
|
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
|
|
bool CanCreate()
|
|
{
|
|
return false;
|
|
}
|
|
};
|
|
|
|
|
|
class pgUniqueFactory : public pgIndexBaseFactory
|
|
{
|
|
public:
|
|
pgUniqueFactory();
|
|
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
|
|
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
|
|
};
|
|
extern pgUniqueFactory uniqueFactory;
|
|
|
|
class pgUnique : public pgIndexConstraint
|
|
{
|
|
public:
|
|
pgUnique(pgSchema *newSchema, const wxString &newName = wxT(""))
|
|
: pgIndexConstraint(newSchema, uniqueFactory, newName) {}
|
|
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
|
|
};
|
|
|
|
|
|
class pgExcludeFactory : public pgIndexBaseFactory
|
|
{
|
|
public:
|
|
pgExcludeFactory();
|
|
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
|
|
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
|
|
};
|
|
extern pgExcludeFactory excludeFactory;
|
|
|
|
class pgExclude : public pgIndexConstraint
|
|
{
|
|
public:
|
|
pgExclude(pgSchema *newSchema, const wxString &newName = wxT(""))
|
|
: pgIndexConstraint(newSchema, excludeFactory, newName) {}
|
|
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
|
|
};
|
|
|
|
|
|
#endif
|