/////////////////////////////////////////////////////////////////////////////
// Name:        container.h
// Purpose:     Data Designer Project
// Author:      Daniel Horak
// Modified by:
// RCS-ID:      $Id: container.h,v 1.1.1.1 2003/06/06 11:28:04 horakdan Exp $
// Copyright:   (c) Daniel Horak
// Licence:     GPL
/////////////////////////////////////////////////////////////////////////////

#ifndef __CONTAINER_H
#define __CONTAINER_H

class wxXmlNode;
class DBObject;
class DBObjectListCtrl;
class DataDesignerProject;

class DataDesignerContainer {
public:
	DataDesignerContainer(DataDesignerProject *project, const wxTreeItemId& parent, const wxString& name);
	
	virtual ~DataDesignerContainer();

	void			LoadXmlNode(wxXmlNode *node);
	virtual DBObject	*CreateObject();
	wxXmlNode		*GetXmlNode();
	wxString		**ListNames();
	DBObject		*GetObjectByName(const wxString& name);
	
	void			SetList(DBObjectListCtrl *list) { m_list = list; }
	virtual void		ShowList() { }
	void			AddObjectsToListAndShow();
	void			AddObjectsToList();
	void			AddObjectsToSchema();
	
	void			OnDraw(wxDC& dc);

	int			GetChildrenCount();
	DataDesignerProject	*GetProject()	{ return m_project; }
	wxTreeItemId		GetTreeItemId()	{ return m_treeitemid; }
	wxString		GetName()	{ return m_name; }
	wxString		GetShortName()	{ return m_shortname; }
	int			GetNextId()	{ return ++m_lastid; }

private:
	wxString		m_name;
	wxString		m_shortname;
	wxTreeItemId		m_treeitemid;
	bool			m_enabled;
	DataDesignerProject	*m_project;
	DBObjectListCtrl	*m_list;
	int			m_lastid;
};

#endif // __CONTAINER_H


syntax highlighted by Code2HTML, v. 0.9.1