mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 06:05:49 -06:00
248 lines
4.5 KiB
C++
248 lines
4.5 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin III - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
// pgForeignKey.h PostgreSQL ForeignKey
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef PGFOREIGNKEY_H
|
|
#define PGFOREIGNKEY_H
|
|
|
|
#include "pgIndex.h"
|
|
|
|
class pgForeignKeyFactory : public pgSchemaObjFactory
|
|
{
|
|
public:
|
|
pgForeignKeyFactory();
|
|
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
|
|
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
|
|
|
|
int GetClosedIconId()
|
|
{
|
|
return closedId;
|
|
}
|
|
|
|
protected:
|
|
int closedId;
|
|
};
|
|
extern pgForeignKeyFactory foreignKeyFactory;
|
|
|
|
class pgForeignKey : public pgSchemaObject
|
|
{
|
|
public:
|
|
pgForeignKey(pgSchema *newSchema, const wxString &newName = wxT(""));
|
|
~pgForeignKey();
|
|
|
|
int GetIconId();
|
|
|
|
wxString GetDefinition(int metatype);
|
|
wxString GetFullName();
|
|
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
|
|
|
|
wxString GetOnUpdate() const
|
|
{
|
|
return onUpdate;
|
|
}
|
|
void iSetOnUpdate(const wxString &s)
|
|
{
|
|
onUpdate = s;
|
|
}
|
|
wxString GetOnDelete() const
|
|
{
|
|
return onDelete;
|
|
}
|
|
void iSetOnDelete(const wxString &s)
|
|
{
|
|
onDelete = s;
|
|
}
|
|
|
|
wxString GetFkTable() const
|
|
{
|
|
return fkTable;
|
|
}
|
|
void iSetFkTable(const wxString &s)
|
|
{
|
|
fkTable = s;
|
|
}
|
|
wxString GetFkSchema() const
|
|
{
|
|
return fkSchema;
|
|
}
|
|
void iSetFkSchema(const wxString &s)
|
|
{
|
|
fkSchema = s;
|
|
}
|
|
wxString GetReferences() const
|
|
{
|
|
return references;
|
|
}
|
|
void iSetReferences(const wxString &s)
|
|
{
|
|
references = s;
|
|
}
|
|
wxString GetRefSchema() const
|
|
{
|
|
return refSchema;
|
|
}
|
|
void iSetRefSchema(const wxString &s)
|
|
{
|
|
refSchema = s;
|
|
}
|
|
wxString GetConkey() const
|
|
{
|
|
return conkey;
|
|
}
|
|
void iSetConkey(const wxString &s)
|
|
{
|
|
conkey = s;
|
|
}
|
|
wxString GetConfkey() const
|
|
{
|
|
return confkey;
|
|
}
|
|
void iSetConfkey(const wxString &s)
|
|
{
|
|
confkey = s;
|
|
}
|
|
wxString GetConfdelsetcols() const
|
|
{
|
|
return confdelsetcols;
|
|
}
|
|
wxString GetQuotedConfdelsetcols() const
|
|
{
|
|
return quotedFkDelColumns;
|
|
}
|
|
|
|
void iSetConfdelsetcols(const wxString& s)
|
|
{
|
|
confdelsetcols = s;
|
|
}
|
|
|
|
bool GetDeferrable() const
|
|
{
|
|
return deferrable;
|
|
}
|
|
void iSetDeferrable(const bool b)
|
|
{
|
|
deferrable = b;
|
|
}
|
|
bool GetDeferred() const
|
|
{
|
|
return deferred;
|
|
}
|
|
void iSetDeferred(const bool b)
|
|
{
|
|
deferred = b;
|
|
}
|
|
wxString GetMatch() const
|
|
{
|
|
return match;
|
|
}
|
|
void iSetMatch(const wxString &s)
|
|
{
|
|
match = s;
|
|
}
|
|
bool GetValid() const
|
|
{
|
|
return valid;
|
|
}
|
|
void iSetValid(const bool b)
|
|
{
|
|
valid = b;
|
|
}
|
|
bool GetEnforced() const
|
|
{
|
|
return enforced;
|
|
}
|
|
void iSetEnforced(const bool b)
|
|
{
|
|
enforced = b;
|
|
}
|
|
wxString GetRelTableOidStr() const
|
|
{
|
|
return NumToStr(relTableOid) + wxT("::oid");
|
|
}
|
|
OID GetRelTableOid() const
|
|
{
|
|
return relTableOid;
|
|
}
|
|
void iSetRelTableOid(const OID d)
|
|
{
|
|
relTableOid = d;
|
|
}
|
|
|
|
wxString GetFkColumns() const
|
|
{
|
|
return fkColumns;
|
|
}
|
|
wxString GetRefColumns() const
|
|
{
|
|
return refColumns;
|
|
}
|
|
wxString GetQuotedFkColumns() const
|
|
{
|
|
return quotedFkColumns;
|
|
}
|
|
wxString GetQuotedRefColumns() const
|
|
{
|
|
return quotedRefColumns;
|
|
}
|
|
wxString GetCoveringIndex() const
|
|
{
|
|
return coveringIndex;
|
|
}
|
|
|
|
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
|
|
wxString GetConstraint();
|
|
wxString GetSql(ctlTree *browser);
|
|
wxString GetHelpPage(bool forCreate) const
|
|
{
|
|
return wxT("pg/sql-altertable");
|
|
}
|
|
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
|
|
|
|
bool HasStats()
|
|
{
|
|
return false;
|
|
}
|
|
bool HasDepends()
|
|
{
|
|
return true;
|
|
}
|
|
bool HasReferences()
|
|
{
|
|
return true;
|
|
}
|
|
void Validate(frmMain *form);
|
|
|
|
private:
|
|
wxString onUpdate, onDelete, conkey, confkey, confdelsetcols,
|
|
fkTable, fkSchema, references, refSchema;
|
|
wxString fkColumns, refColumns, quotedFkColumns, quotedRefColumns, coveringIndex, match;
|
|
wxString fkDelColumns, quotedFkDelColumns;
|
|
bool deferrable, deferred, valid, enforced;
|
|
OID relTableOid;
|
|
};
|
|
|
|
class pgForeignKeyCollection : public pgSchemaObjCollection
|
|
{
|
|
public:
|
|
pgForeignKeyCollection(pgaFactory *factory, pgSchema *sch);
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
};
|
|
|
|
class validateForeignKeyFactory : public contextActionFactory
|
|
{
|
|
public:
|
|
validateForeignKeyFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
|
|
wxWindow *StartDialog(frmMain *form, pgObject *obj);
|
|
bool CheckEnable(pgObject *obj);
|
|
};
|
|
|
|
#endif
|