protected AdditionalViewControlsProviderDecorator(View view,object control, IAdditionalViewControlsRule controlsRule)
        {
            this.control = control;
            calculator = new AdditionalViewControlsProviderCalculator(controlsRule,view.ObjectTypeInfo.Type);
//            if (view is DetailView)
//                calculator.CurrentViewType = ViewType.DetailView;
//            if (view is ListView)
//                calculator.CurrentViewType = ViewType.ListView;
            calculator.HintChanged += calculator_HintChanged;
//            view.CurrentObjectChanged += View_CurrentObjectChanged;
            calculator.CurrentObject = view.CurrentObject;
        }
 protected AdditionalViewControlsProviderDecorator(View view,object control)
 {
     this.view = view;
     this.control = control;
     calculator = new AdditionalViewControlsProviderCalculator(new AdditionalViewControlsRuleWrapper(view));
     if (view is DetailView)
         calculator.CurrentViewType = ViewType.DetailView;
     if (view is ListView)
         calculator.CurrentViewType = ViewType.ListView;
     calculator.HintChanged += calculator_HintChanged;
     view.CurrentObjectChanged += View_CurrentObjectChanged;
     calculator.CurrentObject = view.CurrentObject;
 }
        public void Dispose()
        {
//            if (view != null)
//            {
//                view.CurrentObjectChanged -= View_CurrentObjectChanged;
//                view = null;
//            }
            if (calculator != null)
            {
                calculator.HintChanged -= calculator_HintChanged;
                calculator.Dispose();
                calculator = null;
            }
        }