mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-16 06:05:49 -06:00
189 lines
4.1 KiB
C++
189 lines
4.1 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin III - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
// slSet.h PostgreSQL Slony-I Set
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef SLSET_H
|
|
#define SLSET_H
|
|
|
|
#include "slony/slCluster.h"
|
|
|
|
|
|
class slSetFactory : public slObjFactory
|
|
{
|
|
public:
|
|
slSetFactory();
|
|
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 GetExportedIconId()
|
|
{
|
|
return exportedIconId;
|
|
}
|
|
|
|
protected:
|
|
int exportedIconId;
|
|
};
|
|
extern slSetFactory setFactory;
|
|
|
|
|
|
class slSet : public slObject
|
|
{
|
|
public:
|
|
slSet(slCluster *_cluster, const wxString &newName = wxT(""));
|
|
|
|
int GetIconId();
|
|
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
|
|
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
|
|
bool CanDrop();
|
|
bool RequireDropConfirm()
|
|
{
|
|
return true;
|
|
}
|
|
bool WantDummyChild()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
long GetOriginId() const
|
|
{
|
|
return originId;
|
|
}
|
|
void iSetOriginId(long l)
|
|
{
|
|
originId = l;
|
|
}
|
|
wxString GetOriginNode() const
|
|
{
|
|
return originNode;
|
|
}
|
|
void iSetOriginNode(const wxString s)
|
|
{
|
|
originNode = s;
|
|
}
|
|
long GetSubscriptionCount()
|
|
{
|
|
return subscriptionCount;
|
|
}
|
|
void iSetSubscriptionCount(long l)
|
|
{
|
|
subscriptionCount = l;
|
|
}
|
|
|
|
wxString GetLockXXID();
|
|
bool Lock();
|
|
bool Unlock();
|
|
|
|
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
|
|
wxMenu *GetNewMenu();
|
|
wxString GetSql(ctlTree *browser);
|
|
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
|
|
|
|
void ShowDependents(frmMain *form, ctlListView *referencedBy, const wxString &wh);
|
|
void ShowDependencies(frmMain *form, ctlListView *Dependencies, const wxString &wh);
|
|
void ShowStatistics(pgCollection *collection, ctlListView *statistics);
|
|
|
|
private:
|
|
long subscriptionCount;
|
|
long originId;
|
|
wxString originNode;
|
|
};
|
|
|
|
|
|
class slSetCollection : public slObjCollection
|
|
{
|
|
public:
|
|
slSetCollection(pgaFactory *factory, slCluster *cl) : slObjCollection(factory, cl) {}
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
};
|
|
|
|
// Object in a Slony-I set
|
|
class slSetObject : public slObject
|
|
{
|
|
public:
|
|
slSetObject(slSet *s, pgaFactory &factory, const wxString &newName = wxT(""));
|
|
slSet *GetSet()
|
|
{
|
|
return set;
|
|
}
|
|
|
|
bool CanDrop();
|
|
bool CanCreate();
|
|
|
|
private:
|
|
slSet *set;
|
|
};
|
|
|
|
|
|
// Collection of set objects
|
|
class slSubscription;
|
|
class slSetObjCollection : public slObjCollection
|
|
{
|
|
public:
|
|
slSetObjCollection(pgaFactory *factory, slSet *_set);
|
|
bool CanCreate();
|
|
|
|
slSet *GetSet()
|
|
{
|
|
return set;
|
|
}
|
|
|
|
private:
|
|
slSet *set;
|
|
slSubscription *subscription;
|
|
};
|
|
|
|
|
|
class slSetObjFactory : public slObjFactory
|
|
{
|
|
public:
|
|
slSetObjFactory(const wxChar *tn, const wxChar *ns, const wxChar *nls, wxImage *img, wxImage *imgSm = 0) : slObjFactory(tn, ns, nls, img, imgSm) {}
|
|
virtual pgCollection *CreateCollection(pgObject *obj);
|
|
};
|
|
|
|
class slonyMoveSetFactory : public contextActionFactory
|
|
{
|
|
public:
|
|
slonyMoveSetFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
|
|
wxWindow *StartDialog(frmMain *form, pgObject *obj);
|
|
bool CheckEnable(pgObject *obj);
|
|
};
|
|
|
|
|
|
class slonyMergeSetFactory : public contextActionFactory
|
|
{
|
|
public:
|
|
slonyMergeSetFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
|
|
wxWindow *StartDialog(frmMain *form, pgObject *obj);
|
|
bool CheckEnable(pgObject *obj);
|
|
};
|
|
|
|
|
|
class slonyLockSetFactory : public contextActionFactory
|
|
{
|
|
public:
|
|
slonyLockSetFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
|
|
wxWindow *StartDialog(frmMain *form, pgObject *obj);
|
|
bool CheckEnable(pgObject *obj);
|
|
};
|
|
|
|
|
|
class slonyUnlockSetFactory : public contextActionFactory
|
|
{
|
|
public:
|
|
slonyUnlockSetFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
|
|
wxWindow *StartDialog(frmMain *form, pgObject *obj);
|
|
bool CheckEnable(pgObject *obj);
|
|
};
|
|
|
|
#endif
|
|
|
|
|