/// <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; }
/// <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; }