///////////////////////////////////////////////////////////////////////////// // 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