/////////////////////////////////////////////////////////////////////////////
// Name: dbattribute.h
// Purpose: Database Objects
// Author: Daniel Horak
// Modified by:
// RCS-ID: $Id: dbattribute.h,v 1.5 2004/01/01 13:56:19 horakdan Exp $
// Copyright: (c) Daniel Horak
// Licence: GPL
/////////////////////////////////////////////////////////////////////////////
#ifndef __DBATTRIBUTE_H
#define __DBATTRIBUTE_H
class DBSimpleAttribute;
class DBEntity;
class DBAttribute : public DBObject
{
public:
DBAttribute(DataDesignerProject *project, DataDesignerContainer *container);
virtual ~DBAttribute();
virtual wxDialog *Editor(bool edit);
virtual void LoadXmlNode(wxXmlNode *node);
virtual wxXmlNode *GetXmlNode();
void AddSimpleAttribute(DBSimpleAttribute *attr);
void DeleteSimpleAttribute(DBSimpleAttribute *attr);
void Copy(DBAttribute *attr);
DBEntity *GetEntity();
wxString m_type;
wxString m_length;
wxString m_decimals;
wxString m_default;
wxString m_check;
bool m_nullable;
bool m_unique;
bool m_primarykey;
bool m_foreignkey;
bool m_array;
bool m_generated; // attr's value is generated from a sequence
bool m_imported; // attr is imported as key from another entity
wxString m_relation;
DBObjectList m_simpleattrs;
};
class DBAttributeEditor : public DBObjectEditor
{
public:
DBAttributeEditor(DBObject *object, bool edit);
virtual ~DBAttributeEditor();
virtual bool TransferDataFromWindow();
virtual bool TransferDataToWindow();
void OnCheckBox(wxCommandEvent& event);
virtual bool Validate();
private:
wxComboBox *c1; // type
wxTextCtrl *t2; // length
wxTextCtrl *t3; // decimals
wxCheckBox *c4; // nullable
wxCheckBox *c5; // primary key
wxTextCtrl *t6; // default
wxTextCtrl *t7; // check
wxCheckBox *c8; // unique
wxCheckBox *c9; // array
wxCheckBox *c10; // generated
DECLARE_EVENT_TABLE()
};
class DBAttributeContainer : public DataDesignerContainer
{
public:
DBAttributeContainer(DataDesignerProject *project, const wxTreeItemId& id);
virtual ~DBAttributeContainer() { }
virtual DBObject *CreateObject();
virtual void ShowList();
};
class DBAttributeListCtrl : public DBObjectListCtrl
{
public:
DBAttributeListCtrl(wxWindow *parent, DataDesignerContainer *container);
virtual ~DBAttributeListCtrl();
virtual void SetObject(long item, DBObject *object);
void OnDelete(wxCommandEvent& event);
private:
DECLARE_EVENT_TABLE()
};
#endif // __DBATTRIBUTE_H
syntax highlighted by Code2HTML, v. 0.9.1