示例#1
0
        /// <summary>
        /// Действия при удалении компонента на стороне модели
        /// </summary>
        /// <param name="parTargetComponent">Компонент на стороне модели</param>
        public void OnComponentRemoved(ViewProviderComponent parTargetComponent)
        {
            ViewRenderableComponent targetRenderableComponent = _activeRenderableComponents[parTargetComponent];

            if (targetRenderableComponent.IsUpdatable())
            {
                _updatableRenderableComponents.Remove(targetRenderableComponent);
            }

            targetRenderableComponent.DisableAndSendToPool();
            _activeRenderableComponents.Remove(parTargetComponent);

            RendereringDataWasUpdatedFlag = true;
        }
示例#2
0
        /// <summary>
        /// Действия при создании компонента на стороне модели
        /// </summary>
        /// <param name="parTargetComponent">Компонент на стороне модели</param>
        public void OnComponentCreated(ViewProviderComponent parTargetComponent)
        {
            CheckSubassetsDataLibrary();

            Type renderableComponentType = TypesLinker.GetLinkedViewComponentType(parTargetComponent.GetType());

            ViewRenderableComponent newRenderableComponent =
                (ViewRenderableComponent)OpenTkViewComponentsPoolManager.GetObject(renderableComponentType);

            _activeRenderableComponents.Add(parTargetComponent, newRenderableComponent);

            if (newRenderableComponent.IsUpdatable())
            {
                _updatableRenderableComponents.Add(newRenderableComponent);
            }

            newRenderableComponent.InitAndLink(parTargetComponent, this);

            newRenderableComponent.UpdateRenderingData();

            RendereringDataWasUpdatedFlag = true;
        }