1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// pgForeignDataWrapper.h PostgreSQL Foreign Data Wrapper
//
//////////////////////////////////////////////////////////////////////////
#ifndef PGFOREIGNDATAWRAPPER_H
#define PGFOREIGNDATAWRAPPER_H
#include "pgDatabase.h"
class pgCollection;
class pgForeignDataWrapperFactory : public pgDatabaseObjFactory
{
public:
pgForeignDataWrapperFactory();
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);
};
extern pgForeignDataWrapperFactory foreignDataWrapperFactory;
class pgForeignDataWrapper : public pgDatabaseObject
{
public:
pgForeignDataWrapper(const wxString &newName = wxT(""));
wxString GetTranslatedMessage(int kindOfMessage) const;
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
bool CanDropCascaded()
{
return true;
}
wxMenu *GetNewMenu();
wxString GetHandlerProc() const
{
return handlerProc;
}
void iSetHandlerProc(const wxString &s)
{
handlerProc = s;
}
wxString GetValidatorProc() const
{
return validatorProc;
}
void iSetValidatorProc(const wxString &s)
{
validatorProc = s;
}
wxString GetOptions() const
{
return options;
}
wxString GetCreateOptions();
void iSetOptions(const wxString &s)
{
options = s;
}
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;
}
private:
wxString handlerProc, validatorProc, options;
};
class pgForeignDataWrapperObjFactory : public pgDatabaseObjFactory
{
public:
pgForeignDataWrapperObjFactory(const wxChar *tn, const wxChar *ns, const wxChar *nls, wxImage *img, wxImage *imgSm = 0)
: pgDatabaseObjFactory(tn, ns, nls, img, imgSm) {}
virtual pgCollection *CreateCollection(pgObject *obj);
};
class pgForeignDataWrapperCollection : public pgDatabaseObjCollection
{
public:
pgForeignDataWrapperCollection(pgaFactory *factory, pgDatabase *db);
wxString GetTranslatedMessage(int kindOfMessage) const;
};
// Object that lives in a foreign data wrapper
class pgForeignDataWrapperObject : public pgDatabaseObject
{
public:
pgForeignDataWrapperObject(pgForeignDataWrapper *newForeignDataWrapper, pgaFactory &factory, const wxString &newName = wxEmptyString) : pgDatabaseObject(factory, newName)
{
SetForeignDataWrapper(newForeignDataWrapper);
}
pgForeignDataWrapperObject(pgForeignDataWrapper *newForeignDataWrapper, int newType, const wxString &newName = wxT("")) : pgDatabaseObject(newType, newName)
{
SetForeignDataWrapper(newForeignDataWrapper);
}
bool CanDrop();
bool CanEdit()
{
return true;
}
bool CanCreate();
void SetForeignDataWrapper(pgForeignDataWrapper *newForeignDataWrapper);
virtual pgForeignDataWrapper *GetForeignDataWrapper() const
{
return fdw;
}
pgSet *ExecuteSet(const wxString &sql);
wxString ExecuteScalar(const wxString &sql);
bool ExecuteVoid(const wxString &sql);
protected:
virtual void SetContextInfo(frmMain *form);
pgForeignDataWrapper *fdw;
};
// collection of pgForeignDataWrapperObject
class pgForeignDataWrapperObjCollection : public pgCollection
{
public:
pgForeignDataWrapperObjCollection(pgaFactory *factory, pgForeignDataWrapper *newfdw);
wxString GetTranslatedMessage(int kindOfMessage) const;
virtual bool CanCreate();
};
#endif
|