mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 06:05:49 -06:00
280 lines
5 KiB
C++
280 lines
5 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin III - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
// pgTrigger.h PostgreSQL Trigger
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef PGTRIGGER_H
|
|
#define PGTRIGGER_H
|
|
|
|
#include "pgTable.h"
|
|
|
|
class pgFunction;
|
|
|
|
class pgTriggerObject : public pgSchemaObject
|
|
{
|
|
public:
|
|
pgTriggerObject(pgSchema *newSchema, pgaFactory &factory, const wxString &newName = wxEmptyString) : pgSchemaObject(newSchema, factory, newName) {}
|
|
|
|
wxString GetFormattedDefinition();
|
|
wxString GetDefinition() const
|
|
{
|
|
return definition;
|
|
}
|
|
void iSetDefinition(const wxString &s)
|
|
{
|
|
definition = s;
|
|
}
|
|
|
|
protected:
|
|
wxString definition;
|
|
};
|
|
|
|
|
|
|
|
class pgTriggerFactory : public pgSchemaObjFactory
|
|
{
|
|
public:
|
|
pgTriggerFactory();
|
|
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
|
|
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
|
|
virtual pgCollection *CreateCollection(pgObject *obj);
|
|
|
|
int GetClosedIconId()
|
|
{
|
|
return closedId;
|
|
}
|
|
|
|
protected:
|
|
int closedId;
|
|
};
|
|
extern pgTriggerFactory triggerFactory;
|
|
|
|
|
|
class pgTrigger : public pgTriggerObject
|
|
{
|
|
public:
|
|
pgTrigger(pgSchema *newSchema, const wxString &newName = wxT(""));
|
|
~pgTrigger();
|
|
|
|
int GetIconId();
|
|
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
|
|
bool CanDropCascaded()
|
|
{
|
|
return !GetSystemObject() && pgSchemaObject::CanDrop();
|
|
}
|
|
|
|
wxString GetFireWhen() const;
|
|
wxString GetEvent() const;
|
|
wxString GetForEach() const;
|
|
wxString GetFunction() const
|
|
{
|
|
return function;
|
|
}
|
|
void iSetFunction(const wxString &s)
|
|
{
|
|
function = s;
|
|
}
|
|
void iSetArguments(const wxString &s)
|
|
{
|
|
arguments = s;
|
|
}
|
|
wxString GetArguments() const
|
|
{
|
|
return arguments;
|
|
}
|
|
void iSetWhen(const wxString &s)
|
|
{
|
|
when = s;
|
|
}
|
|
wxString GetWhen() const
|
|
{
|
|
return when;
|
|
}
|
|
bool GetIsConstraint() const
|
|
{
|
|
return isconstraint;
|
|
}
|
|
void SetIsConstraint(const bool b)
|
|
{
|
|
isconstraint = b;
|
|
}
|
|
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 GetLanguage() const
|
|
{
|
|
return language;
|
|
}
|
|
void iSetLanguage(const wxString &s)
|
|
{
|
|
language = s;
|
|
}
|
|
wxString GetSource() const
|
|
{
|
|
return source;
|
|
}
|
|
void iSetSource(const wxString &s)
|
|
{
|
|
source = s;
|
|
}
|
|
wxString GetReferences() const
|
|
{
|
|
return references;
|
|
}
|
|
void iSetReferences(const wxString &s)
|
|
{
|
|
references = s;
|
|
}
|
|
|
|
long GetTriggerType() const
|
|
{
|
|
return triggerType;
|
|
}
|
|
void iSetTriggerType(const long l)
|
|
{
|
|
triggerType = l;
|
|
}
|
|
bool GetEnabled() const
|
|
{
|
|
return enabled;
|
|
}
|
|
void SetEnabled(ctlTree *browser, const bool b);
|
|
void iSetEnabled(const bool b)
|
|
{
|
|
enabled = b;
|
|
}
|
|
void iSetTriggerFunction(pgFunction *fkt)
|
|
{
|
|
triggerFunction = fkt;
|
|
}
|
|
wxString GetQuotedFullTable() const
|
|
{
|
|
return quotedFullTable;
|
|
}
|
|
void iSetQuotedFullTable(const wxString &s)
|
|
{
|
|
quotedFullTable = s;
|
|
}
|
|
OID GetFunctionOid() const
|
|
{
|
|
return functionOid;
|
|
}
|
|
void iSetFunctionOid(const OID d)
|
|
{
|
|
functionOid = d;
|
|
}
|
|
OID GetRelationOid() const
|
|
{
|
|
return relationOid;
|
|
}
|
|
void iSetRelationOid(const OID d)
|
|
{
|
|
relationOid = d;
|
|
}
|
|
wxString GetQuotedColumns() const
|
|
{
|
|
return quotedColumns;
|
|
}
|
|
wxString GetColumns() const
|
|
{
|
|
return columns;
|
|
}
|
|
wxArrayString GetColumnList() const
|
|
{
|
|
return columnList;
|
|
}
|
|
long GetColumnCount() const
|
|
{
|
|
return columnCount;
|
|
}
|
|
void iSetColumnCount(const long l)
|
|
{
|
|
columnCount = l;
|
|
}
|
|
void iSetParentIsTable(const bool b)
|
|
{
|
|
parentistable = b;
|
|
}
|
|
bool GetParentIsTable()
|
|
{
|
|
return parentistable;
|
|
}
|
|
|
|
void SetDirty();
|
|
|
|
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
|
|
wxString GetSql(ctlTree *browser);
|
|
bool CanRestore()
|
|
{
|
|
return true;
|
|
}
|
|
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
|
|
|
|
bool HasStats()
|
|
{
|
|
return false;
|
|
}
|
|
bool HasDepends()
|
|
{
|
|
return true;
|
|
}
|
|
bool HasReferences()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
bool IsUpToDate();
|
|
|
|
protected:
|
|
void ReadColumnDetails();
|
|
|
|
private:
|
|
wxString function, quotedFullTable, arguments, when, language, source, columns, quotedColumns,references;
|
|
wxArrayString columnList;
|
|
long columnCount;
|
|
OID functionOid, relationOid;
|
|
long triggerType;
|
|
bool enabled, parentistable, isconstraint, deferrable, deferred;
|
|
pgFunction *triggerFunction;
|
|
};
|
|
|
|
|
|
class pgTriggerCollection : public pgSchemaObjCollection
|
|
{
|
|
public:
|
|
pgTriggerCollection(pgaFactory *factory, pgSchema *sch);
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
};
|
|
|
|
|
|
class enabledisableTriggerFactory : public contextActionFactory
|
|
{
|
|
public:
|
|
enabledisableTriggerFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
|
|
wxWindow *StartDialog(frmMain *form, pgObject *obj);
|
|
bool CheckEnable(pgObject *obj);
|
|
bool CheckChecked(pgObject *obj);
|
|
};
|
|
|
|
#endif
|