public static ComponentControlWrapper CreateFolder( ComponentControlWrapper parent, GetOrCreateFolderData getOrCreateFolder) { if (parent == null) { throw new ArgumentNullException("parent"); } if (getOrCreateFolder == null) { throw new ArgumentNullException("getOrCreateFolder"); } var folderType = parent.Client.GetFolderComponentTypeControl(); var getOrCreateComponentData = new GetOrCreateComponentData(getOrCreateFolder.SystemName, folderType) { DisplayName = getOrCreateFolder.DisplayName, Version = null }; var controlData = new GetOrCreateComponentControlData(parent, getOrCreateComponentData); var wrapper = new ComponentControlWrapper( controlData.Parent.ClientInternal, controlData.Data.ComponentTypeControl); wrapper.GetOrCreateComponentData = controlData; wrapper.ControlActivator = new ControlActivator <IComponentControl>( wrapper.CreateFolderOnline, wrapper.CreateFolderOffline); return(wrapper); }
public IComponentControl GetComponentControl(Guid id) { var wrapper = ComponentControlWrapper.GetById(this, id); //todo не понятно как вести кэш по ИД //return ComponentCache.Add(wrapper); return(wrapper); }
public static ComponentControlWrapper GetById(Client client, Guid id) { var type = new ComponentTypeControlOffline(client, "fake"); var wrapper = new ComponentControlWrapper(client, type); wrapper.ControlActivator = new ControlActivator <IComponentControl>( () => wrapper.GetByIdOnline(id), () => wrapper.GetByIdOffline(id)); return(wrapper); }
public static ComponentControlWrapper GetDefault(Client client) { var type = new ComponentTypeControlOffline(client, "fake"); var wrapper = new ComponentControlWrapper(client, type); wrapper.ControlActivator = new ControlActivator <IComponentControl>( wrapper.GetDefaultControlOnline, () => wrapper.GetByIdOffline(Guid.Empty)); return(wrapper); }
public static ComponentControlWrapper CreateRoot(Client client) { var getTypeData = new GetOrCreateComponentTypeData(SystemComponentType.Root.SystemName); var type = client.GetOrCreateComponentTypeControl(getTypeData); var wrapper = new ComponentControlWrapper(client, type); wrapper.ControlActivator = new ControlActivator <IComponentControl>( wrapper.CreateRootOnline, wrapper.CreateRootOffline); return(wrapper); }
public GetOrCreateComponentControlData(ComponentControlWrapper parent, GetOrCreateComponentData data) { if (parent == null) { throw new ArgumentNullException("parent"); } if (data == null) { throw new ArgumentNullException("data"); } Parent = parent; Data = data; }
public IComponentControl GetDefaultComponentControl() { if (_defaultComponentControl == null) { lock (typeof(Client)) { if (_defaultComponentControl == null) { _defaultComponentControl = ComponentControlWrapper.GetDefault(this); } } } return(_defaultComponentControl); }
public IComponentControl GetRootComponentControl() { if (_rootComponentControl == null) { lock (typeof(Client)) { if (_rootComponentControl == null) { _rootComponentControl = ComponentControlWrapper.CreateRoot(this); } } } return(_rootComponentControl); }
internal UnitTestControlWrapper( ComponentControlWrapper component, IUnitTestTypeControl type, string systemName, GetOrCreateUnitTestControlData createData) : base(component, type, systemName) { if (createData == null) { throw new ArgumentNullException("createData"); } CreateData = createData; ControlActivator = new ControlActivator <IUnitTestControl>(CreateOnlineControlOrNull, CreateOfflineControl); }
internal GetOrCreateUnitTestControlData( ComponentControlWrapper component, GetOrCreateUnitTestData data) { if (component == null) { throw new ArgumentNullException("component"); } if (data == null) { throw new ArgumentNullException("data"); } Component = component; Data = data; }
internal override IComponentControl GetOrCreateChildComponentControl(GetOrCreateComponentControlData data) { if (data == null) { throw new ArgumentNullException("data"); } lock (this) { var wrapper = new ComponentControlWrapper(data.Parent.ClientInternal, data.Data.ComponentTypeControl); wrapper.GetOrCreateComponentData = data; wrapper.ControlActivator = new ControlActivator <IComponentControl>( wrapper.CreateComponentOnline, wrapper.CreateComponentOffline); return(wrapper); } }