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