Example #1
0
 public FlipCardController(UITableView tableView, ObservableSortedList <Verse> verses, List <Verse> versesForReview)
 {
     table            = tableView;
     data             = verses;
     reviewableVerses = versesForReview;
     position         = 0;
 }
Example #2
0
        public void EventAddMany()
        {               //****************************************
            var MySeed     = Environment.TickCount;
            var MyRandom   = new Random(MySeed);
            var MyRecords  = new ObservableSortedList <int, int>(1024);
            var EventCount = 0;

            //****************************************

            MyRecords.CollectionChanged += (sender, e) => { if (e.Action == NotifyCollectionChangedAction.Add)
                                                            {
                                                                EventCount++;
                                                            }
            };

            for (var Index = 0; Index < 1024; Index++)
            {
                MyRecords.Add(MyRandom.Next(), MyRandom.Next());
            }

            //****************************************

            Assert.AreEqual(1024, MyRecords.Count, "Item count does not match");
            Assert.AreEqual(1024, EventCount, "Event Count does not match");
        }
        public VersesTableViewController() : base("Verses")
        {
            Current = this;

            Verses     = new ObservableSortedList <Verse> (AppDelegate.Current.Database.GetVerses());
            DataSource = Verses;
        }
Example #4
0
        public ProjectViewModel(BaseViewModel parent)
            : base(parent)
        {
            _First = new Services.ObservableSortedList <ProjectItemViewModel>(
                new ProjectItemViewModel[] { },
                new Comparers.ProjectItemComparer()
                );

            _SearchCommand = new Commands.DelegateCommand(PerformSearch);

            _AddCommand           = new Commands.DelegateCommand(PerformAddFile);
            _AddReferenceCommand  = new Commands.DelegateCommand(PerformAddReference);
            _AddBlueprintsCommand = new Commands.DelegateCommand(PerformAddBlueprints);
            _AddExistingCommand   = new Commands.DelegateCommand(PerformAddExistingFile);
            _AddFolderCommand     = new Commands.DelegateCommand(PerformAddFolder);
            _AddCollectionCommand = new Commands.DelegateCommand(PerformAddCollection);

            _RemoveReferenceCommand = new Commands.DelegateCommand(PerformRemoveReference);

            _OpenProjectCommand  = new Commands.DelegateCommand(PerformOpenProject);
            _NewProjectCommand   = new Commands.DelegateCommand(PerformNewProject);
            _CloseProjectCommand = new Commands.DelegateCommand(PerformCloseProject);

            _ViewCodeCommand = new Commands.DelegateCommand(PerformViewCode);

            _RenameCommand = new Commands.DelegateCommand(PerformRename);
            _DeleteCommand = new Commands.DelegateCommand(PerformDelete);
        }
Example #5
0
        public void EventClear()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();
            NotifyCollectionChangedEventArgs MyEventArgs = null, MyKeyEventArgs = null, MyValueEventArgs = null;

            //****************************************

            MyRecords[10] = 42;

            MyRecords.CollectionChanged        += (sender, e) => MyEventArgs = e;
            MyRecords.Keys.CollectionChanged   += (sender, e) => MyKeyEventArgs = e;
            MyRecords.Values.CollectionChanged += (sender, e) => MyValueEventArgs = e;

            MyRecords.Clear();

            //****************************************

            Assert.AreEqual(0, MyRecords.Count, "Items not cleared");

            Assert.IsNotNull(MyEventArgs, "No Event Raised");
            Assert.AreEqual(NotifyCollectionChangedAction.Reset, MyEventArgs.Action);

            Assert.IsNotNull(MyKeyEventArgs, "No Key Event Raised");
            Assert.AreEqual(NotifyCollectionChangedAction.Reset, MyKeyEventArgs.Action);

            Assert.IsNotNull(MyValueEventArgs, "No Value Event Raised");
            Assert.AreEqual(NotifyCollectionChangedAction.Reset, MyEventArgs.Action);
        }
 public FlipCardController(UITableView tableView, ObservableSortedList<Verse> verses, List<Verse> versesForReview)
 {
     table = tableView;
     data = verses;
     reviewableVerses = versesForReview;
     position = 0;
 }
Example #7
0
        public void AddCollide()
        {               //****************************************
            var MySeed    = Environment.TickCount;
            var MyRandom  = new Random(MySeed);
            var MyRecords = new ObservableSortedList <CollideStruct, int>();

            var MyDictionary = new Dictionary <CollideStruct, int>(64);

            //****************************************

            for (var Index = 0; Index < 64; Index++)
            {
                CollideStruct Key;
                int           Value;

                do
                {
                    Key = new CollideStruct(MyRandom.Next());
                } while (MyDictionary.ContainsKey(Key));

                Value = MyRandom.Next();

                MyDictionary.Add(Key, Value);
                MyRecords.Add(Key, Value);
            }

            //****************************************

            Assert.AreEqual(64, MyRecords.Count, "Count incorrect. Bad Seed was {0}", MySeed);

            CollectionAssert.AreEquivalent(MyDictionary, MyRecords, "Collections don't match. Bad Seed was {0}", MySeed);

            Thread.Sleep(1);
        }
        public MemorizationViewController()
            : base("Memorization")
        {
            verses = VersesTableViewController.Current.Verses;
            verses.CollectionChanged += delegate(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) {
                if (tableView != null) {
                    var newItems = e.NewItems;
                    var oldItems = e.OldItems;

                    if (newItems != null) {
                        foreach (Verse verse in newItems) {
                            if (verse.Category == categoryToFilter)
                            {
                                filteredVerses.Add (verse);
                                Console.WriteLine(verse.Title);
                            }
                        }
                    }

                    if (oldItems != null) {
                        foreach (Verse verse in oldItems) {
                            if (filteredVerses.Any (item => item.Id == verse.Id))
                            {
                                filteredVerses.Remove (verse);
                                Console.WriteLine (verse.Title);
                            }
                        }
                    }
                }
            };
        }
Example #9
0
        public void GetIndexOutOfRange()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();

            //****************************************

            MyRecords[10] = 42;

            //****************************************

            try
            {
                var Pair = ((IList <KeyValuePair <int, int> >)MyRecords)[1];

                Assert.Fail("Key found");
            }
            catch (ArgumentOutOfRangeException)
            {
            }

            try
            {
                var Pair = ((IList <KeyValuePair <int, int> >)MyRecords)[-1];

                Assert.Fail("Key found");
            }
            catch (ArgumentOutOfRangeException)
            {
            }
        }
Example #10
0
        public ProjectViewModel(BaseViewModel parent)
            : base(parent)
        {
            _First = new Services.ObservableSortedList<ProjectItemViewModel>(
                new ProjectItemViewModel[] { },
                new Comparers.ProjectItemComparer()
            );

            _SearchCommand = new Commands.DelegateCommand(PerformSearch);

            _AddCommand = new Commands.DelegateCommand(PerformAddFile);
            _AddReferenceCommand = new Commands.DelegateCommand(PerformAddReference);
            _AddBlueprintsCommand = new Commands.DelegateCommand(PerformAddBlueprints);
            _AddExistingCommand = new Commands.DelegateCommand(PerformAddExistingFile);
            _AddFolderCommand = new Commands.DelegateCommand(PerformAddFolder);
            _AddCollectionCommand = new Commands.DelegateCommand(PerformAddCollection);

            _RemoveReferenceCommand = new Commands.DelegateCommand(PerformRemoveReference);

            _OpenProjectCommand = new Commands.DelegateCommand(PerformOpenProject);
            _NewProjectCommand = new Commands.DelegateCommand(PerformNewProject);
            _CloseProjectCommand = new Commands.DelegateCommand(PerformCloseProject);

            _ViewCodeCommand = new Commands.DelegateCommand(PerformViewCode);

            _RenameCommand = new Commands.DelegateCommand(PerformRename);
            _DeleteCommand = new Commands.DelegateCommand(PerformDelete);
        }
Example #11
0
        public void PrePopulate()
        {               //****************************************
            var MySeed   = Environment.TickCount;
            var MyRandom = new Random(MySeed);

            var MyDictionary = new Dictionary <int, int>(1024);
            var MySortedList = new SortedList <int, int>(1024);

            //****************************************

            while (MyDictionary.Count < 1024)
            {
                MyDictionary[MyRandom.Next()] = MyRandom.Next();
            }

            foreach (var MyPair in MyDictionary)
            {
                MySortedList.Add(MyPair.Key, MyPair.Value);
            }

            var MyRecords = new ObservableSortedList <int, int>(MyDictionary);

            //****************************************

            Assert.AreEqual(1024, MyRecords.Count, "Count incorrect. Bad Seed was {0}", MySeed);

            CollectionAssert.AreEqual(MySortedList, MyRecords, "Collections don't match. Bad Seed was {0}", MySeed);

            Thread.Sleep(1);
        }
Example #12
0
        public MemorizationViewController() : base("Memorization")
        {
            verses = VersesTableViewController.Current.Verses;
            verses.CollectionChanged += delegate(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) {
                if (tableView != null)
                {
                    var newItems = e.NewItems;
                    var oldItems = e.OldItems;

                    if (newItems != null)
                    {
                        foreach (Verse verse in newItems)
                        {
                            if (verse.Category == categoryToFilter)
                            {
                                filteredVerses.Add(verse);
                                Console.WriteLine(verse.Title);
                            }
                        }
                    }

                    if (oldItems != null)
                    {
                        foreach (Verse verse in oldItems)
                        {
                            if (filteredVerses.Any(item => item.Id == verse.Id))
                            {
                                filteredVerses.Remove(verse);
                                Console.WriteLine(verse.Title);
                            }
                        }
                    }
                }
            };
        }
Example #13
0
        public void EventReplace()
        {               //****************************************
            var MySeed = Environment.TickCount;
            var MyRandom = new Random(MySeed);
            var MyRecords = new ObservableSortedList <int, int>(1);
            NotifyCollectionChangedEventArgs MyEventArgs = null, MyKeyEventArgs = null, MyValueEventArgs = null;

            //****************************************

            MyRecords.Add(42, 10);

            MyRecords.CollectionChanged        += (sender, e) => MyEventArgs = e;
            MyRecords.Keys.CollectionChanged   += (sender, e) => MyKeyEventArgs = e;
            MyRecords.Values.CollectionChanged += (sender, e) => MyValueEventArgs = e;

            MyRecords[42] = 84;

            //****************************************

            Assert.AreEqual(1, MyRecords.Count, "Item count does not match");
            Assert.IsNotNull(MyEventArgs, "No Event Raised");
            Assert.AreEqual(NotifyCollectionChangedAction.Replace, MyEventArgs.Action);

            Assert.IsNotNull(MyEventArgs.OldItems, "No Old Items");
            Assert.AreEqual(0, MyEventArgs.OldStartingIndex, "Starting Index incorrect");
            Assert.AreEqual(1, MyEventArgs.OldItems.Count, "Old Items Count incorrect");
            Assert.AreEqual(new KeyValuePair <int, int>(42, 10), MyEventArgs.OldItems[0], "Old Items Value incorrect");

            Assert.IsNotNull(MyEventArgs.NewItems, "No New Items");
            Assert.AreEqual(0, MyEventArgs.NewStartingIndex, "Starting Index incorrect");
            Assert.AreEqual(1, MyEventArgs.NewItems.Count, "New Items Count incorrect");
            Assert.AreEqual(new KeyValuePair <int, int>(42, 84), MyEventArgs.NewItems[0], "New Items Value incorrect");
        }
Example #14
0
        public void EventReplaceUnchanged()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();
            NotifyCollectionChangedEventArgs MyEventArgs = null, MyKeyEventArgs = null, MyValueEventArgs = null;

            //****************************************

            MyRecords[9]  = 1;
            MyRecords[12] = 2;
            MyRecords[10] = 3;
            MyRecords[11] = 4;

            MyRecords.CollectionChanged        += (sender, e) => MyEventArgs = e;
            MyRecords.Keys.CollectionChanged   += (sender, e) => MyKeyEventArgs = e;
            MyRecords.Values.CollectionChanged += (sender, e) => MyValueEventArgs = e;

            MyRecords[10] = 3;

            //****************************************

            Assert.AreEqual(3, MyRecords[10]);

            Assert.IsNull(MyEventArgs, "Event Raised");
            Assert.IsNull(MyKeyEventArgs, "Event Raised");
            Assert.IsNull(MyValueEventArgs, "Event Raised");
        }
Example #15
0
        public void AddRangeDuplicateInDictionary()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>(64);

            //****************************************

            MyRecords[9]  = 1;
            MyRecords[10] = 2;
            MyRecords[11] = 3;
            MyRecords[12] = 4;

            try
            {
                MyRecords.AddRange(new[] { new KeyValuePair <int, int>(1, 1), new KeyValuePair <int, int>(2, 2), new KeyValuePair <int, int>(3, 3), new KeyValuePair <int, int>(9, 4) });

                Assert.Fail("Range succeeded");
            }
            catch (ArgumentException)
            {
            }

            //****************************************

            Assert.AreEqual(4, MyRecords.Count, "Items were added");
        }
        /// <summary>
        /// Handle changes to the collection of tags in the underlying model
        /// </summary>
        /// <param name="sender">collection of sorted tags</param>
        /// <param name="e">event details</param>
        private void OnTagCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            ObservableSortedList <TagModelKey, string, SimpleTagButtonModel> sortedTags = sender as ObservableSortedList <TagModelKey, string, SimpleTagButtonModel>;

            switch (e.Action)
            {
            case NotifyCollectionChangedAction.Add:

                int newitemIndex = e.NewStartingIndex;
                foreach (SimpleTagButtonModel t in e.NewItems)
                {
                    tagsPanel.Children.Insert(newitemIndex++, createTagButton(t));
                }
                break;

            case NotifyCollectionChangedAction.Remove:
                foreach (SimpleTagButtonModel t in e.OldItems)
                {
                    tagsPanel.Children.RemoveAt(e.OldStartingIndex);
                }
                break;

            case NotifyCollectionChangedAction.Reset:
                tagsPanel.Children.Clear();
                foreach (SimpleTagButtonModel t in Tags.Values)
                {
                    tagsPanel.Children.Add(createTagButton(t));
                }

                break;
            }
        }
Example #17
0
 public MenuItem(string title, double weight)
     : base(weight)
 {
     Title = title;
     Children = new ObservableSortedList<MenuItemBase>();
     IsHidden = false;
     IsEnabled = true;
 }
        public VersesTableViewController()
            : base("Verses")
        {
            Current = this;

            Verses = new ObservableSortedList<Verse> (AppDelegate.Current.Database.GetVerses ());
            DataSource = Verses;
        }
Example #19
0
        public ObservableSortedList <PollResponseGroup <UserModel> > GetGroupedPollResponses()
        {
            ObservableSortedList <PollResponseGroup <UserModel> > groupedResponses = new ObservableSortedList <PollResponseGroup <UserModel> >();
            Dictionary <string, PollResponseGroup <UserModel> >   responseToGroup  = new Dictionary <string, PollResponseGroup <UserModel> >();

            this.LoadPollResponses();

            if (this.PollOptions != null)
            {
                foreach (string option in this.PollOptions)
                {
                    PollResponseGroup <UserModel> group = new PollResponseGroup <UserModel>(option);
                    responseToGroup.Add(option, group);
                    groupedResponses.Add(group);
                }
            }

            if (this.IsCalendarMessage)
            {
                PollResponseGroup <UserModel> acceptGroup = new PollResponseGroup <UserModel>(Strings.CalendarAcceptMessage);
                responseToGroup.Add(Strings.CalendarAcceptMessage, acceptGroup);
                groupedResponses.Add(acceptGroup);

                PollResponseGroup <UserModel> declineGroup = new PollResponseGroup <UserModel>(Strings.CalendarDeclineMessage);
                responseToGroup.Add(Strings.CalendarDeclineMessage, declineGroup);
                groupedResponses.Add(declineGroup);
            }

            foreach (KeyValuePair <string, int> response in this.Responses)
            {
                PollResponseGroup <UserModel> group = null;
                string key = response.Key;

                if (this.IsCalendarMessage)
                {
                    if (string.Compare(response.Key, MessageModel.CalendarAcceptStringNonLocalized, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        key = Strings.CalendarAcceptMessage;
                    }

                    if (string.Compare(response.Key, MessageModel.CalendarDeclineStringNonLocalized, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        key = Strings.CalendarDeclineMessage;
                    }
                }

                if (!responseToGroup.TryGetValue(key, out group))
                {
                    group = new PollResponseGroup <UserModel>(response.Key);
                    groupedResponses.Add(group);
                    responseToGroup.Add(response.Key, group);
                }

                group.Add(DataSync.Instance.GetUser(response.Value));
            }

            return(groupedResponses);
        }
 public TimelineModel()
 {
     TimestampTextModel.TimestampTextModelComparer comparer = new TimestampTextModel.TimestampTextModelComparer();
     Chords = new ObservableSortedList<TimestampTextModel>(comparer);
     Chords.CollectionChanged += TimelineItemsChanged;
     Lyrics = new ObservableSortedList<TimestampTextModel>(comparer);
     Lyrics.CollectionChanged += TimelineItemsChanged;
     _zoom = 2.0d;
 }
        /// <summary>
        /// Creates a ConversationMessagesViewModel
        /// </summary>
        /// <param name="phone"></param>
        public ConversationMessagesViewModel(
            IServiceProxy serviceProxy,
            IUserSettings userSettings,
            Guid conversationId,
            UserModel recipient,
            bool?isGroup)
        {
            this.serviceProxy               = serviceProxy;
            this.userSettings               = userSettings;
            this.messages                   = new ObservableSortedList <MessageModel>();
            this.conversationId             = conversationId;
            this.recipient                  = recipient;
            this.isGroup                    = isGroup;
            this.listOfQuestions            = new ObservableCollection <StringBuilder>();
            this.listOfAppointments         = new ObservableCollection <AppointmentDateTime>();
            this.listOfTaskItems            = new ObservableCollection <StringBuilder>();
            this.contactDetails.YapperName  = recipient.Name;
            this.contactDetails.YapperPhone = recipient.PhoneNumber;
            this.contactDetails.UserId      = recipient.Id;
            this.contactDetails.Search();

            if (this.IsGroup)
            {
                this.groupDetails.SetGroup(DataSync.Instance.GetGroup(this.recipient.Id));
            }

            string[] questions = new string[] { "Yes", "No", "Pass" };

            foreach (string s in questions)
            {
                this.listOfQuestions.Add(new StringBuilder(s));
            }

            AppointmentDateTime [] appts = new AppointmentDateTime[] { new AppointmentDateTime(DateTime.Now.Ticks), new AppointmentDateTime(DateTime.Now.Ticks), new AppointmentDateTime(DateTime.Now.Ticks) };

            foreach (AppointmentDateTime s in appts)
            {
                this.listOfAppointments.Add(s);
            }

            // Register the view to handle push notification when the app is running
            Messenger.Default.Register <NewMessageSavedEvent>(this, this.HandleNewMessageSavedEvent);
            Messenger.Default.Register <NewMessageEvent>(this, this.HandleNewMessageEvent);
            Messenger.Default.Register <ExistingMessageEvent>(this, this.HandleExistingMessageEvent);
            Messenger.Default.Register <DeleteEvent>(this, this.HandleDeleteEvent);

            lock (DataSync.Instance)
            {
                Messenger.Default.Register <SyncEvent>(this, this.HandleSyncCompleteEvent);

                DataSync.Instance.Sync();
                this.IsSyncing = !DataSync.Instance.IsSyncComplete;
            }

            this.IsCurrentyViewing = true;
        }
Example #22
0
        public void Search()
        {
            var contacts = new Contacts();

            contacts.SearchCompleted += (s, args) =>
            {
                ObservableSortedList <ContactGroup <ContactItem> > tempItems = new ObservableSortedList <ContactGroup <ContactItem> >();

                var groups = new Dictionary <char, ContactGroup <ContactItem> >();

                foreach (var contact in args.Results)
                {
                    if (!contact.PhoneNumbers.Any(number => number.Kind == PhoneNumberKind.Mobile))
                    {
                        continue;
                    }

                    if (IsContactRegisteredUser(contact))
                    {
                        continue;
                    }

                    char firstLetter = char.ToLower(contact.DisplayName[0]);

                    // show # for numbers
                    if (firstLetter >= '0' && firstLetter <= '9')
                    {
                        firstLetter = '#';
                    }

                    // create group for letter if it doesn't exist
                    if (!groups.ContainsKey(firstLetter))
                    {
                        var group = new ContactGroup <ContactItem>(firstLetter);
                        tempItems.Add(group);
                        groups[firstLetter] = group;
                    }

                    // create a contact for item and add it to the relevant group
                    var contactItem = new ContactItem(contact);
                    groups[firstLetter].Add(contactItem);
                }

                this.items = tempItems;
                Deployment.Current.Dispatcher.BeginInvoke(() => { this.NotifyPropertyChanged("Items"); });
                IsInitialized = true;
                NotifyPropertyChanged("IsContactsEmpty");
                NotifyPropertyChanged("IsContactsNotEmpty");
                NotifyPropertyChanged("IsLoading");
            };

            // get all contacts
            contacts.SearchAsync(null, FilterKind.None, null);
        }
Example #23
0
        public ClassViewModel(BaseViewModel parent) : base(parent)
        {
            _First = new Services.ObservableSortedList <ClassItemViewModel>(
                new ClassItemViewModel[] { },
                new Comparers.ClassItemComparer()
                );

            _SearchCommand = new Commands.DelegateCommand(PerformSearch);

            StartTree();
        }
Example #24
0
        public BlueprintViewModel(BaseViewModel parent) : base(parent)
        {
            _First = new Services.ObservableSortedList <GridItemViewModel>(
                new GridItemViewModel[] { },
                new Comparers.GridItemComparer()
                );

            _SearchCommand      = new Commands.DelegateCommand(PerformSearch);
            _InsertNameCommand  = new Commands.DelegateCommand(PerformInsertName);
            _EditProgramCommand = new Commands.DelegateCommand(PerformEditProgram);
            _RenameBlockCommand = new Commands.DelegateCommand(PerformRenameBlock);
        }
Example #25
0
        public ClassViewModel(BaseViewModel parent)
            : base(parent)
        {
            _First = new Services.ObservableSortedList<ClassItemViewModel>(
                new ClassItemViewModel[] { },
                new Comparers.ClassItemComparer()
            );

            _SearchCommand = new Commands.DelegateCommand(PerformSearch);

            StartTree();
        }
Example #26
0
        public void IndexOfMissingValue()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();

            //****************************************

            MyRecords[10] = 42;

            //****************************************

            Assert.AreEqual(-1, MyRecords.IndexOf(new KeyValuePair <int, int>(10, 30)));
        }
Example #27
0
        public void GetIndex()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();

            //****************************************

            MyRecords[10] = 42;

            //****************************************

            Assert.AreEqual(new KeyValuePair <int, int>(10, 42), ((IList <KeyValuePair <int, int> >)MyRecords)[0]);
        }
Example #28
0
        public void IndexOfKeyCollideMissing()
        {               //****************************************
            var MyRecords = new ObservableSortedList <CollideStruct, int>();

            //****************************************

            MyRecords[new CollideStruct(10)] = 42;

            //****************************************

            Assert.AreEqual(-1, MyRecords.IndexOfKey(new CollideStruct(11)));
        }
Example #29
0
        public void GetKey()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();

            //****************************************

            MyRecords[10] = 42;

            //****************************************

            Assert.AreEqual(42, MyRecords[10]);
        }
Example #30
0
        public void IndexOfKeyMissing()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();

            //****************************************

            MyRecords[10] = 42;

            //****************************************

            Assert.AreEqual(-1, MyRecords.IndexOfKey(11));
        }
Example #31
0
        public virtual void Initialize(ItemsControl todoList, IItemManager <T> itemManager, ObservableSortedList <T> list)
        {
            this.interactionListControl = todoList;
            this.interactionList        = list;
            this.itemManager            = itemManager;

            // when the ItemsControl has been rendered, we can locate the ScrollViewer
            // that is within its template.
            this.interactionListControl.InvokeOnNextLayoutUpdated(() => LocateScrollViewer());

            this.IsEnabled = false;
        }
Example #32
0
 public void SetBlueprint(ObservableSortedList <GridItemViewModel> grid)
 {
     First.Clear();
     if (grid != null)
     {
         if (grid.Count > 0)
         {
             SetBlueprint(grid[0]);
             grid[0].IsExpanded = true;
             First.Add(grid[0]);
         }
     }
 }
Example #33
0
            public RunningSearch(LoadedAssembly[] assemblies, string searchTerm, int searchMode, Language language)
            {
                this.dispatcher = Dispatcher.CurrentDispatcher;
                this.assemblies = assemblies;
                this.searchTerm = searchTerm.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                this.language   = language;
                this.searchMode = searchMode;

                this.Results = new ObservableSortedList <SearchResult>(comparer: new NearOriginalMatch(searchTerm));
                this.Results.Add(new SearchResult {
                    Name = "Searching..."
                });
            }
Example #34
0
        public BlueprintViewModel(BaseViewModel parent)
            : base(parent)
        {
            _First = new Services.ObservableSortedList<GridItemViewModel>(
                new GridItemViewModel[] { },
                new Comparers.GridItemComparer()
            );

            _SearchCommand = new Commands.DelegateCommand(PerformSearch);
            _InsertNameCommand = new Commands.DelegateCommand(PerformInsertName);
            _EditProgramCommand = new Commands.DelegateCommand(PerformEditProgram);
            _RenameBlockCommand = new Commands.DelegateCommand(PerformRenameBlock);
        }
Example #35
0
        public void RemoveAt()
        {               //****************************************
            var MySeed   = Environment.TickCount;
            var MyRandom = new Random(MySeed);

            var MyDictionary = new SortedList <int, int>(1024);

            //****************************************

            for (var Index = 0; Index < 1024; Index++)
            {
                int Key, Value;

                do
                {
                    Key = MyRandom.Next();
                } while (MyDictionary.ContainsKey(Key));

                Value = MyRandom.Next();

                MyDictionary.Add(Key, Value);
            }

            var MyRecords = new ObservableSortedList <int, int>(MyDictionary);

            //****************************************

            for (var Index = 0; Index < 512; Index++)
            {
                var InnerIndex = MyRandom.Next(MyRecords.Count);

                var Key = MyRecords.Keys[InnerIndex];

                MyRecords.RemoveAt(InnerIndex);
                Assert.IsTrue(MyDictionary.Remove(Key));
            }

            //****************************************

            Assert.AreEqual(512, MyRecords.Count, "Count incorrect. Bad Seed was {0}", MySeed);

            CollectionAssert.AreEquivalent(MyDictionary, MyRecords, "Collections don't match. Bad Seed was {0}", MySeed);

            foreach (var MyPair in MyDictionary)
            {
                Assert.IsTrue(MyRecords.TryGetValue(MyPair.Key, out var Value));
                Assert.AreEqual(MyPair.Value, Value);
            }

            Thread.Sleep(1);
        }
        public ProjectItemViewModel(ProjectItem item, ProjectItemViewModel parent) : base(parent)
        {
            _Model = item;

            _Children = new Services.ObservableSortedList <ProjectItemViewModel>(
                (from child in _Model.Children select new ProjectItemViewModel(child, this)).ToList <ProjectItemViewModel>(),
                new Comparers.ProjectItemComparer()
                );

            _Grid = new Services.ObservableSortedList <GridItemViewModel>(
                new GridItemViewModel[] { },
                new Comparers.GridItemComparer()
                );
        }
        public ProjectItemViewModel(ProjectItem item, ProjectItemViewModel parent)
            : base(parent)
        {
            _Model = item;

            _Children = new Services.ObservableSortedList<ProjectItemViewModel>(
                (from child in _Model.Children select new ProjectItemViewModel(child, this)).ToList<ProjectItemViewModel>(),
                new Comparers.ProjectItemComparer()
            );

            _Grid = new Services.ObservableSortedList<GridItemViewModel>(
                new GridItemViewModel[] { },
                new Comparers.GridItemComparer()
            );
        }
        private bool incidentCreated;                                      //a bool to check if the incident has been created.  An incident can only be created once.

        #endregion

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="gazetterDatabase">Object that enables connection to the database to retrieve gazetteer related information</param>
        /// <param name="incidentDatabase">Object that enables connection to the database to retrieve information for a single incident.</param>
        public NewIncidentViewModel()
        {
            //Set default values for properties that are bound to text box controls
            County = "Northamptonshire";

            //instantiates the incident type list
            matchingAddresses = new ObservableCollection <Address>();

            //the ObservableSortedList Contains() method only checks if the reference types are the same.
            //Thus, these two lists must share the same reference to stop duplicate entries when adding/removing
            fullList = BuildIncidentTypes();
            filteredIncidentTypes = new ObservableSortedList <IncidentType>(fullList);

            incidentCreated = false;
        }
        public MemorizationQueueSource(MemorizationTableViewController tableView, ObservableSortedList<Verse> verses)
        {
            data = verses;
            tableViewController = tableView;
            selectedVerses = new List<Verse> ();

            selected = new bool[data.Count];
            for (int i = 0; i < data.Count; i++) {
                selected [i] = false;
            }

            if (data.Count == 0) {
                sectionIsEmpty = true;
            }
        }
Example #40
0
        public void Replace()
        {               //****************************************
            var MyRecords = new ObservableSortedList <int, int>();

            //****************************************

            MyRecords.Add(9, 1);
            MyRecords.Add(12, 2);
            MyRecords.Add(10, 3);
            MyRecords.Add(11, 4);
            MyRecords[10] = 84;

            //****************************************

            Assert.AreEqual(84, MyRecords[10]);
        }
Example #41
0
        public static ObservableSortedList<ContactGroup<UserModel>> GroupUsers(IList<UserModel> users)
        {
            ObservableSortedList<ContactGroup<UserModel>> groups = new ObservableSortedList<ContactGroup<UserModel>>();
            var groupsDict = new Dictionary<char, ContactGroup<UserModel>>();

            foreach (UserModel user in users)
            {

                if (user.UserType == UserType.Group)
                {
                    if (!user.Name.Contains("(G)"))
                    {
                        user.Name += " (G)";
                    }
                }

                char firstLetter = char.ToLower(user.Name[0]);

                // show # for numbers
                if (firstLetter >= '0' && firstLetter <= '9')
                {
                    firstLetter = '#';
                }

                // create group for letter if it doesn't exist
                if (!groupsDict.ContainsKey(firstLetter))
                {
                    var group = new ContactGroup<UserModel>(firstLetter);
                    groups.Add(group);
                    groupsDict[firstLetter] = group;
                }

                // create a contact for item and add it to the relevant
                groupsDict[firstLetter].Add(user);
            }

            return groups;
        }
Example #42
0
 public void SetBlueprint(ObservableSortedList<GridItemViewModel> grid)
 {
     First.Clear();
     if (grid != null)
     {
         if (grid.Count > 0)
         {
             SetBlueprint(grid[0]);
             grid[0].IsExpanded = true;
             First.Add(grid[0]);
         }
     }
 }
        public void Search()
        {
            var contacts = new Contacts();

            contacts.SearchCompleted += (s, args) =>
            {
                ObservableSortedList<ContactGroup<ContactItem>> tempItems = new ObservableSortedList<ContactGroup<ContactItem>>();

                var groups = new Dictionary<char, ContactGroup<ContactItem>>();

                foreach (var contact in args.Results)
                {
                    if (!contact.PhoneNumbers.Any(number => number.Kind == PhoneNumberKind.Mobile))
                    {
                        continue;
                    }

                    if (IsContactRegisteredUser(contact))
                    {
                        continue;
                    }

                    char firstLetter = char.ToLower(contact.DisplayName[0]);

                    // show # for numbers
                    if (firstLetter >= '0' && firstLetter <= '9')
                    {
                        firstLetter = '#';
                    }

                    // create group for letter if it doesn't exist
                    if (!groups.ContainsKey(firstLetter))
                    {
                        var group = new ContactGroup<ContactItem>(firstLetter);
                        tempItems.Add(group);
                        groups[firstLetter] = group;
                    }

                    // create a contact for item and add it to the relevant group
                    var contactItem = new ContactItem(contact);
                    groups[firstLetter].Add(contactItem);
                }

                this.items = tempItems;
                Deployment.Current.Dispatcher.BeginInvoke(() => { this.NotifyPropertyChanged("Items"); });
                IsInitialized = true;
                NotifyPropertyChanged("IsContactsEmpty");
                NotifyPropertyChanged("IsContactsNotEmpty");
                NotifyPropertyChanged("IsLoading");
            };

            // get all contacts
            contacts.SearchAsync(null, FilterKind.None, null);
        }
Example #44
0
 public ItemSlotCat(string slotName)
 {
     ItemsList = new ObservableSortedList<PoeItem>();
     SlotName = slotName;
 }
 void FilterData(Category category)
 {
     filteredVerses = new ObservableSortedList<Verse> (from verse in verses
                                                       where verse.Category == category
                                                       select verse);
 }
        /// <summary>
        /// Creates a ConversationMessagesViewModel
        /// </summary>
        /// <param name="phone"></param>
        public ConversationMessagesViewModel(
            IServiceProxy serviceProxy,
            IUserSettings userSettings,
            Guid conversationId,
            UserModel recipient,
            bool? isGroup)
        {
            this.serviceProxy = serviceProxy;
            this.userSettings = userSettings;
            this.messages = new ObservableSortedList<MessageModel>();
            this.conversationId = conversationId;
            this.recipient = recipient;
            this.isGroup = isGroup;
            this.listOfQuestions = new ObservableCollection<StringBuilder>();
            this.listOfAppointments = new ObservableCollection<AppointmentDateTime>();
            this.listOfTaskItems = new ObservableCollection<StringBuilder>();
            this.contactDetails.YapperName = recipient.Name;
            this.contactDetails.YapperPhone = recipient.PhoneNumber;
            this.contactDetails.UserId = recipient.Id;
            this.contactDetails.Search();

            if (this.IsGroup)
            {
                this.groupDetails.SetGroup(DataSync.Instance.GetGroup(this.recipient.Id));
            }

            string[] questions = new string[] { "Yes", "No", "Pass" };

            foreach (string s in questions)
            {
                this.listOfQuestions.Add(new StringBuilder(s));
            }

            AppointmentDateTime [] appts = new AppointmentDateTime[] { new AppointmentDateTime(DateTime.Now.Ticks), new AppointmentDateTime(DateTime.Now.Ticks), new AppointmentDateTime(DateTime.Now.Ticks) };

            foreach (AppointmentDateTime s in appts)
            {
                this.listOfAppointments.Add(s);
            }

            // Register the view to handle push notification when the app is running
            Messenger.Default.Register<NewMessageSavedEvent>(this, this.HandleNewMessageSavedEvent);
            Messenger.Default.Register<NewMessageEvent>(this, this.HandleNewMessageEvent);
            Messenger.Default.Register<ExistingMessageEvent>(this, this.HandleExistingMessageEvent);
            Messenger.Default.Register<DeleteEvent>(this, this.HandleDeleteEvent);

            lock (DataSync.Instance)
            {
                Messenger.Default.Register<SyncEvent>(this, this.HandleSyncCompleteEvent);

                DataSync.Instance.Sync();
                this.IsSyncing = !DataSync.Instance.IsSyncComplete;
            }

            this.IsCurrentyViewing = true;
        }
Example #47
0
        /// <summary>
        /// Read the registered users from the local data base.
        /// </summary>
        public void ReadRegisteredUsersFromDB()
        {
            List<UserModel> dbUserList = DataSync.Instance.GetUsers();

            if (dbUserList.Count == 0)
            {
                return;
            }

            if (this.RegisteredUsers == null)
            {
                this.RegisteredUsers = new ObservableSortedList<ContactGroup<UserModel>>();
            }

            var groups = new Dictionary<char, ContactGroup<UserModel>>();

            foreach (UserModel user in dbUserList)
            {
                if (!this.userIdUserMap.ContainsKey(user.Id))
                {
                    this.userIdUserMap.Add(user.Id, user);
                }

                if (this.Contains(user))
                {
                    continue;
                }

                if (user.UserType == UserType.Group)
                {
                    if (!user.Name.Contains("(G)"))
                    {
                        user.Name += " (G)";
                    }
                }

                this.userPhoneNumbers.Add(user.PhoneNumber);
                char firstLetter = char.ToLower(user.Name[0]);

                // show # for numbers
                if (firstLetter >= '0' && firstLetter <= '9')
                {
                    firstLetter = '#';
                }

                // create group for letter if it doesn't exist
                if (!groups.ContainsKey(firstLetter))
                {
                    var group = new ContactGroup<UserModel>(firstLetter);
                    this.RegisteredUsers.Add(group);
                    groups[firstLetter] = group;
                }

                // create a contact for item and add it to the relevant
                groups[firstLetter].Add(user);
            }

            this.isLoading = false;
        }
Example #48
0
        void IXmlClassifyProcess.AfterXmlDeclassify()
        {
            // Some people have strange broken styles in their settings, probably added due to some bug in an earlier version of the program.
            Styles.RemoveWhere(style => style.Layers == null || style.Layers.Count == 0);
            foreach (var style in Styles)
            {
                if (style.Name == null)
                    style.Name = "<unknown>";
                if (style.Author == null)
                    style.Author = "<unknown>";
            }

            // Added in v019
            if (SavedByVersion < 19 && GameInstalls != null)
                GameInstallations = GameInstalls;
            #pragma warning disable 0618 // ActiveInstallation should only be used for loading/saving the setting, which is what the code below does.
            if (SavedByVersion < 19 && SelectedGamePath != null)
                ActiveInstallation = GameInstallations.Where(gi => gi.Path.EqualsNoCase(SelectedGamePath)).FirstOrDefault() ?? GameInstallations.FirstOrDefault();
            #pragma warning restore 0618
            if (SavedByVersion < 19 && SelectedStyleNameAndAuthor != null)
                // This is a fairly approximate match but this way at least some users will see the right style still selected. The old property was too lossy to allow for reliable matching.
                ActiveStyle = Styles.FirstOrDefault(s => SelectedStyleNameAndAuthor.Contains(s.Name) && SelectedStyleNameAndAuthor.Contains(s.Author));
            GameInstalls = null;
            SelectedGamePath = null;
            SelectedStyleNameAndAuthor = null;
        }
Example #49
0
 public VersesTableSource(UINavigationController navigationController, ObservableSortedList<Verse> verses)
 {
     data = verses;
     navigator = navigationController;
 }
 public MoveActionSheetDelegate(MemorizationTableViewController tableView, ObservableSortedList<Verse> verses, List<Verse> selectedCells)
 {
     tableViewController = tableView;
     data = verses;
     selected = selectedCells;
 }