/////////////////////////////////////////////////////////////////////////////
// Name:        project.h
// Purpose:     Data Designer Project
// Author:      Daniel Horak
// Modified by:
// RCS-ID:      $Id: project.h,v 1.4 2004/01/04 18:32:16 horakdan Exp $
// Copyright:   (c) Daniel Horak
// Licence:     GPL
/////////////////////////////////////////////////////////////////////////////

#ifndef __PROJECT_H
#define __PROJECT_H

#include <wx/treectrl.h>
#include "itemdata.h"
#include "container.h"

class DBServer;
class DBProject;
class DataDesignerSchema;
class DataDesignerSplitter;

class DataDesignerProject : public wxTreeCtrl
{
public:
	DataDesignerProject(DataDesignerSplitter *splitter);
	~DataDesignerProject();
	
	bool Open(wxInputStream& stream);
	bool Save(wxOutputStream& stream);
	
	void DeleteAllObjects();
	bool NewObject(DataDesignerContainer *top);
	void SwapItems(wxTreeItemId item1, wxTreeItemId item2);
	
	void OnItemRightClick(wxTreeEvent& event);
	void OnItemActivated(wxTreeEvent& event);
	void OnItemSelected(wxTreeEvent& event);
	void OnItemBeginLabelEdit(wxTreeEvent& event);
	void OnItemEndLabelEdit(wxTreeEvent& event);
	void OnItemKeyDown(wxTreeEvent& event);
	
	DataDesignerSplitter *GetSplitter() { return m_splitter; }
	DataDesignerSchema *GetSchema() { return m_schema; }
	DBServer *GetServer()	{ return m_server; }
	bool IsInitialized()	{ return m_initialized; }

	DataDesignerContainer	*m_top_domains,
				*m_top_entities,
				*m_top_views,
				*m_top_sequences,
				*m_top_relations,
				*m_top_procedures,
				*m_top_models;

private:
	wxTreeItemId		m_projectid;
	DBProject		*m_dbproject;
	wxTreeItemId		m_schemaid;
	DataDesignerSplitter	*m_splitter;
	DataDesignerSchema	*m_schema;
	bool			m_initialized;
	DBServer		*m_server;
	
	DECLARE_EVENT_TABLE()
};

#endif // __PROJECT_H


syntax highlighted by Code2HTML, v. 0.9.1