internal DefaultInputTool(FlowChartModel model, FlowChartPage view)
        {
            this.Model = model;
            this.View  = view;

            View.MouseDown        += new System.Windows.Forms.MouseEventHandler(View_MouseDown);
            View.MouseUp          += new System.Windows.Forms.MouseEventHandler(View_MouseUp);
            View.MouseMove        += new System.Windows.Forms.MouseEventHandler(View_MouseMove);
            View.KeyDown          += new System.Windows.Forms.KeyEventHandler(View_KeyDown);
            View.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(View_MouseDoubleClick);
            View.MouseWheel       += new MouseEventHandler(View_MouseWheel);
            view.DragMouse        += new Action <float, float>(view_DragMouse);
        }
        public FlowChartController(FlowChartPage view, ViewAbstractFactory viewFactory)
        {
            this.view          = view;
            this.ViewFactory   = viewFactory;
            this.Model         = new FlowChartModel();
            this.inputTool     = new DefaultInputTool(Model, view);
            this.view.Model    = Model;
            this.memoryStorage = new MemoryStorage();

            this.inputTool.Add      += new Action <BaseComponent>(inputTool_Add);
            this.inputTool.DblClick += new Action <float, float>(inputTool_DblClick);
            this.inputTool.Delete   += new Action <BaseComponent>(inputTool_Delete);
            this.inputTool.Scroll   += new Action <float, float, float>(inputTool_Scroll);
            this.inputTool.Zoom     += new Action <float, float, float>(inputTool_Zoom);
            this.inputTool.Select   += new Action <BaseComponent>(inputTool_Select);

            this.ZoomFactor = 1.0f;
        }