public ModuleNodeViewModel(ViewTestClassesModule model) { // Setup initial conditions. this.model = model; classes = new ObservableCollectionWrapper<ViewTestClass, ClassNodeViewModel>(model.Classes, item => new ClassNodeViewModel(item)); if (IsRecentSelections) IsOpen = true; // Create commands. RemoveCommand = new DelegateCommand<Button>(button => RemoveModule()); ClickCommand = new DelegateCommand<Button>(button => { if (!IsLoading) IsOpen = !IsOpen; }); // Wire up events. if (AssemblyModel != null) { AssemblyModel.AssemblyLoadStarted += delegate { LoadStart(); }; AssemblyModel.AssemblyLoadComplete += delegate { LoadComplete(); }; } model.PropertyChanged += (s, e) => { if (e.PropertyName == ViewTestClassesModule.PropDisplayName) { UpdateDisplayName(); OnPropertyChanged<T>(m => m.DisplayName); } }; // Finish up. UpdateDisplayName(); }
public PropertyGridPrimitiveViewModel(ObservableCollection<PropertyModel> model) { this.model = model; properties = new ObservableCollectionWrapper<PropertyModel, PropertyViewModel>( model, item => new PropertyViewModel(item)); }
private IEnumerable <Point> BuildData(int dataSourceNumber) { ObservableCollectionWrapper <Point> collection = new ObservableCollectionWrapper <Point>(new ObservableCollection <Point>()); FillCollection(dataSourceNumber, collection, startTime); return(collection); }
private IEnumerable<Point> BuildData(int dataSourceNumber) { ObservableCollectionWrapper<Point> collection = new ObservableCollectionWrapper<Point>(new ObservableCollection<Point>()); FillCollection(dataSourceNumber, collection, startTime); return collection; }
/// <summary>Constructor.</summary> public SelectionListViewModel() { // Setup initial conditions. Items = new ObservableCollection<object>(); ItemsWrapper = new ObservableCollectionWrapper<object, ItemViewModel>(Items, o => new ItemViewModel(this, o)); templates = Templates.Instance.Dictionary; // Wire up events. Items.CollectionChanged += delegate { OnPropertyChanged<T>(m => m.IsItemsVisible); }; }
private void FillCollection(int dataSourceNumber, ObservableCollectionWrapper<Point> collection, int time) { for (int i = 0; i < count; i++) { double x = i / (double)count; collection.Add(new Point(x, 0.1 * dataSourceNumber + 0.06 * Math.Sin(10 * x + Math.Sqrt(dataSourceNumber + 1) * 0.0005 * (time - startTime)))); } if (time == startTime) { collections.Add(collection); } }
private void FillCollection(int dataSourceNumber, ObservableCollectionWrapper <Point> collection, int time) { for (int i = 0; i < count; i++) { double x = i / (double)count; collection.Add(new Point(x, 0.1 * dataSourceNumber + 0.06 * Math.Sin(10 * x + Math.Sqrt(dataSourceNumber + 1) * 0.0005 * (time - startTime)))); } if (time == startTime) { collections.Add(collection); } }
public DisplayContainerViewModel(ViewTestClass model) { // Setup initial conditions. this.model = model; // Create wrapper collection. CurrentControls = new ObservableCollectionWrapper<object, DisplayItemViewModel>( model.CurrentControls, control => new DisplayItemViewModel(this, control as UIElement)); // Wire up events. modelObserver = new PropertyObserver<ViewTestClass>(model) .RegisterHandler(m => m.CurrentViewTest, m => OnCurrentViewTestChanged()); }
public SelectorPanelViewModel(RootViewModel parent) { // Setup initial conditions. this.parent = parent; model = TestHarnessModel.Instance; modules = new ObservableCollectionWrapper<ViewTestClassesModule, ModuleNodeViewModel>(model.Modules, item => new ModuleNodeViewModel(item)); Strings = new StringLibrary(); // Create commands. AddAssemblyCommand = new DelegateCommand<Button>(param => OnAddAssemblyClick()); AutoRunTestsCommand = new DelegateCommand<Button>(param => OnAutoRunTestsClick()); RunUnitTests = new DelegateCommand<Button>(param => OnRunUnitTests()); // Wire up events. model.PropertyChanged += (sender, e) => { if (e.PropertyName == TestHarnessModel.PropCurrentClass) UpdateTestSelectorModel(); }; }
public void ShouldAddWrapperItemsInCorrectPosition() { var collectionA = new ObservableCollection<Model>(); var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); var item1 = new Model(); var item2 = new Model(); var item3 = new Model(); collectionA.Add(item1); wrapper.Count.ShouldBe(1); wrapper[0].Source.ShouldBe(item1); wrapper.ContainsWrapper(item1).ShouldBe(true); collectionA.Add(item2); wrapper.Count.ShouldBe(2); wrapper[1].Source.ShouldBe(item2); wrapper.ContainsWrapper(item2).ShouldBe(true); collectionA.Insert(1, item3); wrapper.Count.ShouldBe(3); wrapper[1].Source.ShouldBe(item3); wrapper.ContainsWrapper(item3).ShouldBe(true); }
public async Task <ObservableCollectionWrapper <Facility> > GetFacilitiesVenue() { try { // HTTP GET var response = await client.GetAsync(String.Format("api/condos/{0}/condo-facilities?isActive=true&viewFormat=EXTMAX", GlobalConstants.WebApiCondoId)); if (response.IsSuccessStatusCode) { string data = await response.Content.ReadAsStringAsync(); var facilitiesResult = JsonConvert.DeserializeObject <GetFacilitiesResult>(data); if (facilitiesResult == null || facilitiesResult.entities == null) { return(null); } var facilities = new ObservableCollectionWrapper <Facility>(); foreach (var entity in facilitiesResult.entities) { facilities.Add(entity); } return(facilities); } } catch (Exception ex) { return(null); } return(null); }
public void ShouldWorkNormallyAfterClearing() { var collectionA = new ObservableCollection<Model> { new Model(), new Model(), new Model() }; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.AllowClearing = true; collectionA.Clear(); // --- var item1 = new Model(); var item2 = new Model(); collectionA.Add(item1); wrapper.Count.ShouldBe(1); wrapper[0].Source.ShouldBe(item1); wrapper.ContainsWrapper(item1).ShouldBe(true); collectionA.Add(item2); wrapper.Count.ShouldBe(2); wrapper[1].Source.ShouldBe(item2); wrapper.ContainsWrapper(item2).ShouldBe(true); collectionA.Remove(item1); wrapper.Count.ShouldBe(1); wrapper[0].Source.ShouldBe(item2); wrapper.ContainsWrapper(item2).ShouldBe(true); }
public void ShouldReportRemovedItems() { // Setup initial conditions. var item1 = new Model { Name = "One" }; var collectionA = new ObservableCollection<Model>(); var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); // Wire up events. var events = new List<ObservableCollectionWrapperEventArgs<Model, ModelWrapper>>(); wrapper.ItemRemoved += (s, e) => events.Add(e); // Setup collection. collectionA.Add(item1); var wrapper1 = wrapper.GetWrapper(item1); // Alter collection. collectionA.Remove(item1); // Ensure event fired. events.ElementAt(0).Source.ShouldBe(item1); events.ElementAt(0).Wrapper.ShouldBe(wrapper1); }
public void ShouldExposeSourceCollection() { var collectionA = new ObservableCollection<Model>(); var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.Source.ShouldBe(collectionA); }
public void ShouldThrowWhenCreateWrapperPropertySetToNull() { var collectionA = new ObservableCollection<Model>(); var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); Should.Throw<ArgumentNullException>(() => wrapper.CreateWrapper = null); }
public void ShouldBeAbleToChangeCreateWrapperFunction() { var wrapper1 = new ModelWrapper(new Model { Name = "One" }); var wrapper2 = new ModelWrapper(new Model { Name = "Two" }); var collectionA = new ObservableCollection<Model>(); var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => wrapper1); collectionA.Add(wrapper1.Source); wrapper.Contains(wrapper1).ShouldBe(true); // --- wrapper.CreateWrapper = item => wrapper2; collectionA.Add(wrapper2.Source); wrapper.Contains(wrapper2).ShouldBe(true); }
public void ShouldNotDisposeOfItemOnRemoval() { var item1 = new Model { Name = "One" }; var item2 = new Model { Name = "Two" }; var collectionA = new ObservableCollection<Model> { item1, item2 }; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.DisposeOfWrapperOnRemoval = false; // Turn off auto destruction of wrappers. var wrapped1 = wrapper.GetWrapper(item1); wrapped1.IsDisposed.ShouldBe(false); collectionA.Remove(item1); wrapped1.IsDisposed.ShouldBe(false); }
public void ShouldReplaceWrapperItems() { var item1 = new Model { Name = "One" }; var item2 = new Model { Name = "Two" }; var item3 = new Model { Name = "Three" }; var item4 = new Model { Name = "Four" }; var collectionA = new ObservableCollection<Model> { item1, item2, item3 }; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.Count.ShouldBe(3); collectionA[1] = item4; wrapper[1].Source.ShouldBe(item4); collectionA[0] = item4; wrapper[0].Source.ShouldBe(item4); collectionA[2] = item4; wrapper[2].Source.ShouldBe(item4); }
public async Task <ObservableCollectionWrapper <TimeSlot> > GetTimeSlots(int facilityId, long fromTicks, long toTicks) { try { // First, try getting timeslots from cache ObjectCache cache = MemoryCache.Default; string cacheKey = string.Format(GlobalConstants.TimeSlotCacheKey, facilityId, fromTicks, toTicks); if (cache.Contains(cacheKey)) { var result = (ObservableCollectionWrapper <TimeSlot>)cache.Get(cacheKey); if (result != null && result.Count > 0) { return(result); } } // HTTP GET var response = await client.GetAsync(String.Format("api/condos/{0}/condo-facilities/{1}/timeslots?from={2}&to={3}&viewFormat=EXTMAX", GlobalConstants.WebApiCondoId, facilityId, fromTicks, toTicks)); if (response.IsSuccessStatusCode) { string data = await response.Content.ReadAsStringAsync(); var timeslotsResult = JsonConvert.DeserializeObject <GetTimeslotsResult>(data); if (timeslotsResult == null || timeslotsResult.entities == null) { return(null); } var timeslots = new ObservableCollectionWrapper <TimeSlot>(); foreach (var entity in timeslotsResult.entities) { timeslots.Add(entity); } // Store data in the cache CacheItemPolicy cacheItemPolicy = new CacheItemPolicy(); cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddHours(1.0); cache.Add(cacheKey, timeslots, cacheItemPolicy); return(timeslots); } } catch (Exception ex) { return(null); } return(null); }
public void ShouldAddWrapperItemsInCorrectPositionFromConstructor() { var list = new List<string> { "item1", "Clown", "item1", "Zebra", "apple", "item1", "apple" }; var collectionA = new ObservableCollection<string>(); collectionA.AddRange(list); collectionA[0].ShouldBe("item1"); collectionA[1].ShouldBe("Clown"); collectionA[2].ShouldBe("item1"); collectionA[3].ShouldBe("Zebra"); collectionA[4].ShouldBe("apple"); collectionA[5].ShouldBe("item1"); collectionA[6].ShouldBe("apple"); var wrapper = new ObservableCollectionWrapper<string, StringWrapper>(collectionA, item => new StringWrapper(item)); wrapper.Count.ShouldBe(7); wrapper[0].Source.ShouldBe(list[0]); wrapper[1].Source.ShouldBe(list[1]); wrapper[2].Source.ShouldBe(list[2]); wrapper[3].Source.ShouldBe(list[3]); wrapper[4].Source.ShouldBe(list[4]); wrapper[5].Source.ShouldBe(list[5]); wrapper[6].Source.ShouldBe(list[6]); }
public void ShouldNotAllowClearingByDefault() { var collectionA = new ObservableCollection<Model> { new Model(), new Model(), new Model() }; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.AllowClearing.ShouldBe(false); }
public void ShouldThrowWhenCleared() { var collectionA = new ObservableCollection<Model>(); var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); Should.Throw<NotSupportedException>(collectionA.Clear); }
public void ShouldBeAbleToAddSameItemMultipleTimes() { var item1 = new Model(); var collectionA = new ObservableCollection<Model> { item1, item1, item1 }; var wrappersA = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrappersA.GetSource(wrappersA[0]).ShouldBe(item1); wrappersA.GetSource(wrappersA[1]).ShouldBe(item1); wrappersA.GetSource(wrappersA[2]).ShouldBe(item1); wrappersA.GetWrapper(item1).ShouldBe(wrappersA[0]); }
public void ShouldGetWrapper() { var item1 = new Model { Name = "One" }; var item2 = new Model { Name = "Two" }; var collectionA = new ObservableCollection<Model> { item1, item2}; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.GetWrapper(item2).ShouldBe(wrapper[1]); wrapper.GetWrapper(new Model()).ShouldBe(null); wrapper.GetWrapper(null).ShouldBe(null); }
public void ShouldAddInitialItems() { var collectionA = new ObservableCollection<Model>{new Model(), new Model(), new Model()}; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.Count.ShouldBe(3); wrapper[0].Source.ShouldBe(collectionA[0]); wrapper[1].Source.ShouldBe(collectionA[1]); wrapper[2].Source.ShouldBe(collectionA[2]); }
public void ShouldRemoveAll() { var collectionA = new ObservableCollection<Model>(); var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); collectionA.Add(new Model()); collectionA.Add(new Model()); collectionA.Add(new Model()); wrapper.Count.ShouldBe(3); collectionA.RemoveAll(); wrapper.Count.ShouldBe(0); }
public ModuleSelectorViewModel() { var model = TestHarnessModel.Instance; modules = new ObservableCollectionWrapper<ViewTestClassesModule, ModuleNodeViewModel>(model.Modules, item => new ModuleNodeViewModel(item)); }
public void ShouldRemoveStringWrapperItems() { var list = new List<string> { "item1", "Clown", "item1", "Zebra"}; var collectionA = new ObservableCollection<string>(); collectionA.AddRange(list); var wrappers = new ObservableCollectionWrapper<string, StringWrapper>(collectionA, item => new StringWrapper(item)); wrappers.Count.ShouldBe(4); var wrapper1 = wrappers[0]; var wrapper2 = wrappers[1]; var wrapper3 = wrappers[2]; var wrapper4 = wrappers[3]; collectionA.RemoveAt(2); wrappers.Count.ShouldBe(3); wrappers.Contains(wrapper1).ShouldBe(true); wrappers.Contains(wrapper3).ShouldBe(false); // Should remove the 3rd item, not the 1st item (of the same string value). }
public void ShouldBeDisposable() { var item1 = new Model(); var collectionA = new ObservableCollection<Model> { item1}; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); var wrappedModel = wrapper.GetWrapper(item1); wrapper.Dispose(); wrappedModel.IsDisposed.ShouldBe(true); }
public void ShouldRemoveWrapperItems() { var item1 = new Model { Name = "One" }; var item2 = new Model { Name = "Two" }; var item3 = new Model { Name = "Three" }; var collectionA = new ObservableCollection<Model> { item1, item2, item3 }; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); collectionA.Remove(item2); wrapper.Count.ShouldBe(2); }
public void ShouldAllowClearing() { var collectionA = new ObservableCollection<Model> { new Model(), new Model(), new Model() }; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.Count.ShouldBe(3); wrapper.AllowClearing = true; collectionA.Clear(); wrapper.Count.ShouldBe(0); }
public void ShouldDisposeOfItemOnRemoval() { var item1 = new Model { Name = "One" }; var item2 = new Model { Name = "Two" }; var collectionA = new ObservableCollection<Model> { item1, item2}; var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item)); wrapper.DisposeOfWrapperOnRemoval.ShouldBe(true); // Default value. var wrapped1 = wrapper.GetWrapper(item1); collectionA.Remove(item1); wrapped1.IsDisposed.ShouldBe(true); }