/////////////////////////////////////////////////////////////////////////////
// Name:        dbmodelentity.h
// Purpose:     Database Objects
// Author:      Daniel Horak
// Modified by:
// RCS-ID:      $Id: dbmodelentity.h,v 1.2 2004/01/01 13:56:19 horakdan Exp $
// Copyright:   (c) Daniel Horak
// Licence:     GPL
/////////////////////////////////////////////////////////////////////////////

#ifndef __DBMODELENTITY_H
#define __DBMODELENTITY_H

class DBEntity;

class DBModelEntity : public DBObject
{
public:
	DBModelEntity(DataDesignerProject *project, DataDesignerContainer *container);
	virtual ~DBModelEntity() { }
	
	virtual wxTreeItemId AppendItem();
	
	virtual wxDialog *Editor(bool edit);
	
	virtual void LoadXmlNode(wxXmlNode *node);
	virtual wxXmlNode *GetXmlNode();
	
	virtual void CreateShape();
	
	DBEntity *GetRealEntity() { return m_entity; }
	void SetRealEntity(DBEntity *entity) { m_entity = entity; }
	
	wxCoord		m_xpos;
	wxCoord		m_ypos;
	
protected:
	DBEntity	*m_entity;		// pointer to the real entity
};

class DBModelEntityEditor : public wxDialog
{
public:
	DBModelEntityEditor(DBObject *object, bool edit);
	virtual ~DBModelEntityEditor();
	virtual bool TransferDataFromWindow();
	virtual bool TransferDataToWindow();
	
	DBObject *GetObject() { return m_object; }

private:
	DBObject	*m_object;
	wxPanel		*m_panel_general;
	wxPanel		*m_panel_button;
	wxButton	*m_button_ok;
	wxButton	*m_button_cancel;
	bool		m_edit;
//	wxComboBox	*c1;		// attribute
	wxChoice	*c1;		// attribute
};

class DBModelEntityContainer : public DataDesignerContainer
{
public:
	DBModelEntityContainer(DataDesignerProject *project, const wxTreeItemId& id);
	
	virtual ~DBModelEntityContainer() { }
	
	virtual DBObject *CreateObject();
	virtual void	ShowList();
};

class DBModelEntityListCtrl : public DBObjectListCtrl
{
public:
	DBModelEntityListCtrl(wxWindow *parent, DataDesignerContainer *container);
	
	virtual ~DBModelEntityListCtrl();
	
	virtual void SetObject(long item, DBObject *object);
};

#endif // __DBMODELENTITY_H


syntax highlighted by Code2HTML, v. 0.9.1