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
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// pgForeignServer.h PostgreSQL Foreign Server
//
//////////////////////////////////////////////////////////////////////////
#ifndef PGFOREIGNSERVER_H
#define PGFOREIGNSERVER_H
#include "pgForeignDataWrapper.h"
class pgCollection;
class pgForeignServerFactory : public pgForeignDataWrapperObjFactory
{
public:
pgForeignServerFactory();
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
};
extern pgForeignServerFactory foreignServerFactory;
class pgForeignServer : public pgForeignDataWrapperObject
{
public:
pgForeignServer(pgForeignDataWrapper *newForeignDataWrapper, const wxString &newName = wxT(""));
wxString GetTranslatedMessage(int kindOfMessage) const;
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
wxMenu *GetNewMenu();
bool CanDropCascaded()
{
return true;
}
bool CanCreate()
{
return true;
}
wxString GetType() const
{
return type;
}
void iSetType(const wxString &s)
{
type = s;
}
wxString GetVersion() const
{
return version;
}
void iSetVersion(const wxString &s)
{
version = 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 type, version, options;
};
class pgForeignServerObjFactory : public pgForeignDataWrapperObjFactory
{
public:
pgForeignServerObjFactory(const wxChar *tn, const wxChar *ns, const wxChar *nls, wxImage *img, wxImage *imgSm = 0)
: pgForeignDataWrapperObjFactory(tn, ns, nls, img, imgSm) {}
virtual pgCollection *CreateCollection(pgObject *obj);
};
// Object that lives in a foreign server
class pgForeignServerObject : public pgForeignDataWrapperObject
{
public:
pgForeignServerObject(pgForeignServer *newForeignServer, pgaFactory &factory, const wxString &newName = wxEmptyString) : pgForeignDataWrapperObject(newForeignServer->GetForeignDataWrapper(), factory, newName)
{
SetForeignServer(newForeignServer);
}
pgForeignServerObject(pgForeignServer *newForeignServer, int newType, const wxString &newName = wxT("")) : pgForeignDataWrapperObject(newForeignServer->GetForeignDataWrapper(), newType, newName)
{
SetForeignServer(newForeignServer);
}
bool CanDrop();
bool CanEdit()
{
return true;
}
bool CanCreate();
void SetForeignServer(pgForeignServer *newForeignServer);
virtual pgForeignServer *GetForeignServer() const
{
return srv;
}
pgSet *ExecuteSet(const wxString &sql);
wxString ExecuteScalar(const wxString &sql);
bool ExecuteVoid(const wxString &sql);
protected:
virtual void SetContextInfo(frmMain *form);
pgForeignServer *srv;
};
class pgForeignServerObjCollection : public pgCollection
{
public:
pgForeignServerObjCollection(pgaFactory *factory, pgForeignServer *newsrv);
wxString GetTranslatedMessage(int kindOfMessage) const;
};
#endif
|