ObjectFactory

All objects are created through here. At the moment it's overly verbose. I basically "designed it" by throwing in a creation function every time I needed one. At some point it should be compressed down to a more reasonable size. It's also currently a compilation bottleneck, if you touch it everything will recompile.

public:

ObjectFactory( KlassModelerApp& App)

~ObjectFactory( )

GroupObjectPtr CreateBaseGroup( )

void CreateChildWindow( wxWindow* pParent, MainView* pMainView, XMLReader& Reader)

ChildWindowClass* CreateChildWindowClass( ClassObjectPtr pClass, wxWindow* pParent, MainView* pMainView, const wxPoint& ActualPos, const wxSize& ActualSize)

ObjectPtr CreateObject( XMLReader& Reader)

void CreateGroup( wxWindow* pParent, MainView* pMainView, const wxPoint& ActualPos, const wxSize& ActualSize)

void CreateGroup( wxWindow* pParent, MainView* pMainView, XMLReader& Reader)

ChildWindowClass* CreateClass( wxWindow* pParent, MainView* pMainView, const wxPoint& ActualPos, const wxSize& ActualSize)

void CreateClass( wxWindow* pParent, MainView* pMainView, XMLReader& Reader)

ClassObjectPtr CreateClass( ClassObjectPtr pClass, ClassObject::AccessType Access, bool AddToFront=true)

ClassObjectPtr CreateClass( XMLReader& Reader)

VariableObjectPtr CreateVariable( ClassObjectPtr pClass, ClassObject::AccessType Access, bool AddToFront=true)

VariableObjectPtr CreateVariable( MethodObjectPtr pMethod, bool AddToFront=true)

VariableObjectPtr CreateVariable( XMLReader& Reader)

MethodObjectPtr CreateMethod( ClassObjectPtr pClass, ClassObject::AccessType Access, bool AddToFront=true)

MethodObjectPtr CreateMethod( XMLReader& Reader)

OtherObjectPtr CreateOther( ClassObjectPtr pClass, ClassObject::AccessType Access, bool AddToFront=true)

OtherObjectPtr CreateOther( XMLReader& Reader)

TreeView* CreateTreeView( ClassTree* pTree, const std::string& StringData)

void CreateClassTreeView( ClassTree* pTree, const wxTreeItemId& NodeId, ClassObjectPtr pClass) const

void CreateVariableTreeView( ClassTree* pTree, const wxTreeItemId& NodeId, VariableObjectPtr pVariable) const

void CreateMethodTreeView( ClassTree* pTree, const wxTreeItemId& NodeId, MethodObjectPtr pMethod) const

void CreateOtherTreeView( ClassTree* pTree, const wxTreeItemId& NodeId, OtherObjectPtr pOther) const

ClassNotebookViewPtr CreateClassNotebookView( wxNotebook* pNotebook, ClassObjectPtr pClass, ClassTreeView* pTreeView) const

VariableNotebookViewPtr CreateVariableNotebookView( wxNotebook* pNotebook, VariableObjectPtr pVariable, VariableTreeView* pTreeView) const

MethodNotebookViewPtr CreateMethodNotebookView( wxNotebook* pNotebook, MethodObjectPtr pMethod, MethodTreeView* pTreeView) const

OtherNotebookViewPtr CreateOtherNotebookView( wxNotebook* pNotebook, OtherObjectPtr pOther, OtherTreeView* pTreeView) const

void CreateInheritance( XMLReader& Reader, MainView* pView)

InheritancePtr CreateInheritance( const std::string& ChildName, const std::string& ParentName, MainView* pView)

void CreateInternalInheritance( XMLReader& Reader, MainView* pView)

void CreateExternalInheritance( XMLReader& Reader, MainView* pView)

InheritanceInternalPtr CreateInternalInheritance( ChildWindowClass* pChild, ChildWindowClass* pParent)

InheritanceExternalPtr CreateExternalInheritance( ClassObjectPtr pClass, const std::string& Parent)


protected:


private:

KlassModelerApp& m_App