/////////////////////////////////////////////////////////////////////////////
// Name: dbconstraint.h
// Purpose: Database Objects
// Author: Daniel Horak
// Modified by:
// RCS-ID: $Id: dbconstraint.h,v 1.2 2004/01/01 13:56:19 horakdan Exp $
// Copyright: (c) Daniel Horak
// Licence: GPL
/////////////////////////////////////////////////////////////////////////////
#ifndef __DBCONSTRAINT_H
#define __DBCONSTRAINT_H
class DBSimpleAttributeContainer;
class DBSimpleAttributeListCtrl;
class DBAttribute;
#define DBO_CONSTRAINT_TYPE_PRIMARY_KEY 0
#define DBO_CONSTRAINT_TYPE_FOREIGN_KEY 1
#define DBO_CONSTRAINT_TYPE_UNIQUE 2
#define DBO_CONSTRAINT_TYPE_CHECK 3
class DBConstraint : public DBObject
{
public:
DBConstraint(DataDesignerProject *project, DataDesignerContainer *container);
virtual ~DBConstraint();
virtual wxTreeItemId AppendItem();
virtual wxDialog *Editor(bool edit);
virtual void LoadXmlNode(wxXmlNode *node);
virtual wxXmlNode *GetXmlNode();
DBSimpleAttributeContainer *GetAttributes() { return m_attrs; }
void AddAttribute(const wxString &name);
void AddAttribute(DBAttribute *attr);
void DeleteAttribute(const wxString &name);
int m_type; // primary/foreign/unique/check/...
bool m_deferrable; // deferrable/not deferrable
bool m_immediate; // initially immediate or deferred
wxString m_relation; // relation name, iff type is foreign key
DBSimpleAttributeContainer *m_attrs;
static wxString m_type_val[];
};
class DBConstraintEditor : public DBObjectEditor
{
public:
DBConstraintEditor(DBObject *object, bool edit);
virtual ~DBConstraintEditor();
virtual bool TransferDataFromWindow();
virtual bool TransferDataToWindow();
void OnApply(wxCommandEvent& event);
protected:
wxPanel *m_page_attrs;
DBSimpleAttributeListCtrl *m_list_attrs;
private:
wxComboBox *c1; // type
wxCheckBox *c2; // deferrable
wxCheckBox *c3; // immediate
wxTextCtrl *t4; // relation
static wxString m_type_str[]; // values showed for combobox
static int m_types_count;
DECLARE_EVENT_TABLE()
};
class DBConstraintContainer : public DataDesignerContainer
{
public:
DBConstraintContainer(DataDesignerProject *project, const wxTreeItemId& id);
virtual ~DBConstraintContainer() { }
virtual DBObject *CreateObject();
virtual void ShowList();
};
class DBConstraintListCtrl : public DBObjectListCtrl
{
public:
DBConstraintListCtrl(wxWindow *parent, DataDesignerContainer *container);
virtual ~DBConstraintListCtrl();
virtual void SetObject(long item, DBObject *object);
};
#endif // __DBCONSTRAINT_H
syntax highlighted by Code2HTML, v. 0.9.1