protected override void Initialize(bool initData)
        {
            base.Initialize(initData);

            if (initData)
            {
                _imageProxyController = new Main.InstancePropertyController()
                {
                    UseDocumentCopy = UseDocument.Directly
                };
                _imageProxyController.MadeDirty += EhAdditionalPropertiesChanged;
                _imageProxyController.InitializeDocument(_doc.TextureImage);

                _textureScalingController = new TextureScalingController()
                {
                    UseDocumentCopy = UseDocument.Directly
                };
                _textureScalingController.MadeDirty += EhTextureScalingChanged;
                _textureScalingController.InitializeDocument(_doc.TextureScale);
                if (null != _doc.TextureImage)
                {
                    _textureScalingController.SourceTextureSize = GetSizeOfImageProxy(_doc.TextureImage);
                }
            }

            if (null != _view)
            {
                _view.RestrictBrushColorToPlotColorsOnly = _restrictBrushColorToPlotColorsOnly;

                _view.BrushType = _doc.BrushType;
                InitializeViewElementsWhenBrushTypeChanged();

                _imageProxyController.ViewObject     = _view.AdditionalPropertiesView;
                _textureScalingController.ViewObject = _view.TextureScalingView;

                EnableElementsInDependenceOnBrushType();
                _view.UpdatePreview(_doc);
            }
        }
        public override IEnumerable <ControllerAndSetNullMethod> GetSubControllers()
        {
            yield return(new ControllerAndSetNullMethod(_imageProxyController, () => _imageProxyController = null));

            yield return(new ControllerAndSetNullMethod(_textureScalingController, () => _textureScalingController = null));
        }