Inheritance: ObservableCollection
        public void BUG__0001__CollectionIsReadOnlyAfterInstanceCreated_NothingCanBeAdded()
        {
            var col = new ObservableCollectionEx<object>();
            col.Add(1);

            Assert.IsTrue(true);
        }
		private void UpdateProvider(ISecurityProvider provider)
		{
			if (_securityProvider == provider)
				return;

			if (_securityProvider != null)
			{
				_securityProvider.Added -= AddSecurities;
				_securityProvider.Removed -= RemoveSecurities;
				_securityProvider.Cleared -= ClearSecurities;

				SecurityTextBox.ItemsSource = Enumerable.Empty<Security>();
				_itemsSource = null;
			}

			_securityProvider = provider;

			if (_securityProvider == null)
				return;

			var itemsSource = new ObservableCollectionEx<Security>();

			_itemsSource = new ThreadSafeObservableCollection<Security>(itemsSource);
			_itemsSource.AddRange(_securityProvider.LookupAll());

			_securityProvider.Added += AddSecurities;
			_securityProvider.Removed += RemoveSecurities;
			_securityProvider.Cleared += ClearSecurities;

			SecurityTextBox.ItemsSource = itemsSource;
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="CommissionPanel"/>.
		/// </summary>
		public CommissionPanel()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<RuleItem>();
			RuleGrid.ItemsSource = itemsSource;

			_rules = new ConvertibleObservableCollection<ICommissionRule, RuleItem>(new ThreadSafeObservableCollection<RuleItem>(itemsSource), CreateItem);

			var ruleTypes = new[]
			{
				typeof(CommissionPerOrderCountRule),
				typeof(CommissionPerOrderRule),
				typeof(CommissionPerOrderVolumeRule),
				typeof(CommissionPerTradeCountRule),
				typeof(CommissionPerTradePriceRule),
				typeof(CommissionPerTradeRule),
				typeof(CommissionPerTradeVolumeRule),
				typeof(CommissionSecurityIdRule),
				typeof(CommissionSecurityTypeRule),
				typeof(CommissionTurnOverRule),
				typeof(CommissionBoardCodeRule)
			};

			_names.AddRange(ruleTypes.ToDictionary(t => t, t => t.GetDisplayName()));

			TypeCtrl.ItemsSource = _names;
			TypeCtrl.SelectedIndex = 0;
		}
Beispiel #4
0
		/// <summary>
		/// Initializes a new instance of the <see cref="RiskPanel"/>.
		/// </summary>
		public RiskPanel()
		{
			InitializeComponent();

			var ruleTypes = new[]
			{
				typeof(RiskCommissionRule),
				typeof(RiskOrderFreqRule),
				typeof(RiskOrderPriceRule),
				typeof(RiskOrderVolumeRule),
				typeof(RiskPnLRule),
				typeof(RiskPositionSizeRule),
				typeof(RiskPositionTimeRule),
				typeof(RiskSlippageRule),
				typeof(RiskTradeFreqRule),
				typeof(RiskTradePriceRule),
				typeof(RiskTradeVolumeRule)
			};

			_names.AddRange(ruleTypes.ToDictionary(t => t, t => t.GetDisplayName()));

			TypeCtrl.ItemsSource = _names;
			TypeCtrl.SelectedIndex = 0;

			var itemsSource = new ObservableCollectionEx<RuleItem>();
			RuleGrid.ItemsSource = itemsSource;

			_rules = new ConvertibleObservableCollection<IRiskRule, RuleItem>(new ThreadSafeObservableCollection<RuleItem>(itemsSource), CreateItem);
		}
Beispiel #5
0
		public MainWindow()
		{
			InitializeComponent();

			var assetsSource = new ObservableCollectionEx<Security>();
			var optionsSource = new ObservableCollectionEx<Security>();

			Options.ItemsSource = optionsSource;
			Assets.ItemsSource = assetsSource;

			_assets = new ThreadSafeObservableCollection<Security>(assetsSource);
			_options = new ThreadSafeObservableCollection<Security>(optionsSource);

			// попробовать сразу найти месторасположение Quik по запущенному процессу
			Path.Text = QuikTerminal.GetDefaultPath();

			var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) };
			timer.Tick += (sender, args) =>
			{
				if (!_isDirty)
					return;

				_isDirty = false;
				RefreshChart();
			};
			timer.Start();

			//
			// добавляем тестовый данные для отображения графика

			var asset = new Security { Id = "RIM4@FORTS" };

			Connector = new FakeConnector(new[] { asset });

			PosChart.AssetPosition = new Position
			{
				Security = asset,
				CurrentValue = -1,
			};

			PosChart.MarketDataProvider = Connector;
			PosChart.SecurityProvider = Connector;

			var expDate = new DateTime(2014, 6, 14);

			PosChart.Positions.Add(new Position
			{
				Security = new Security { Code = "RI C 110000", Strike = 110000, ImpliedVolatility = 45, OptionType = OptionTypes.Call, ExpiryDate = expDate, Board = ExchangeBoard.Forts, UnderlyingSecurityId = asset.Id },
				CurrentValue = 10,
			});
			PosChart.Positions.Add(new Position
			{
				Security = new Security { Code = "RI P 95000", Strike = 95000, ImpliedVolatility = 30, OptionType = OptionTypes.Put, ExpiryDate = expDate, Board = ExchangeBoard.Forts, UnderlyingSecurityId = asset.Id },
				CurrentValue = -3,
			});

			PosChart.Refresh(100000, 10, new DateTime(2014, 5, 5), expDate);

			Instance = this;
		}
        public UserDatabase()
        {
            XDocument doc = Open();
            Users = new ObservableCollectionEx<User>(from u in doc.Descendants(Tags.User) select new User(u));

            using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
            {
                foreach (var user in Users)
                {
                    foreach (var download in user.Downloads)
                    {
                        string path = Utils.MediaFilePath(user, download);
                        if (isf.FileExists(path))
                        {
                            using (var fileStream = isf.OpenFile(path, FileMode.Open))
                            {
                                download.DownloadedBytes = fileStream.Length;
                            }
                        }
                    }
                }
            }

            Users.CollectionChanged += (sender, e) => { Save(true); };
        }
        public void AddRangeOnlyRaisesOneCollectionChangedEventAtTheEnd()
        {
            var oc = new ObservableCollectionEx<string>();

            var toAdd = new List<string>
            {
                "Foo",
                "Bar"
            };

            var itemCount = 0;
            var eventCount = 0;
            var action = NotifyCollectionChangedAction.Add;
            IList<string> addedItems = null;

            oc.CollectionChanged += (sender, args) =>
                {
                    ++eventCount;
                    itemCount = oc.Count;
                    action = args.Action;
                    addedItems = args.NewItems.OfType<string>().ToList();
                };

            oc.AddRange(toAdd);

            itemCount.Should().Be(2);
            eventCount.Should().Be(1);
            action.Should().Be(NotifyCollectionChangedAction.Add);
            addedItems.Should().NotBeNull();
            addedItems.ShouldBeEquivalentTo(toAdd);
        }
		public CandlesWindow()
		{
			InitializeComponent();

			var candlesSource = new ObservableCollectionEx<QuikCandle>();
			CandleDetails.ItemsSource = candlesSource;
			Candles = new ThreadSafeObservableCollection<QuikCandle>(candlesSource);
		}
Beispiel #9
0
 public Device(Guid id, string name, string description = null, ISpatialLocation location = null)
     : base(id, name, description)
 {
     Location = location;
     Recordables = new ObservableCollectionEx<IRecordable, Guid>();
     Recordables.Added.Subscribe(OnRecordablesAdded);
     Recordables.Removed.Subscribe(OnRecordablesRemoved);
 }
		/// <summary>
		/// Initializes a new instance of the <see cref="PortfolioPickerWindow"/>.
		/// </summary>
		public PortfolioPickerWindow()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<Portfolio>();
			PortfoliosCtrl.ItemsSource = itemsSource;
			Portfolios = new ThreadSafeObservableCollection<Portfolio>(itemsSource);
		}
        public SearchItemEditWindow(ref SearchItem searchItem)
        {
            _searchItem = searchItem;

            InitializeComponent();

            {
                var icon = new BitmapImage();

                icon.BeginInit();
                icon.StreamSource = new FileStream(Path.Combine(App.DirectoryPaths["Icons"], "Amoeba.ico"), FileMode.Open, FileAccess.Read, FileShare.Read);
                icon.EndInit();
                if (icon.CanFreeze) icon.Freeze();

                this.Icon = icon;
            }

            lock (_searchItem.ThisLock)
            {
                _searchTreeViewItemNameTextBox.Text = _searchItem.Name;

                _nameCollection = new ObservableCollectionEx<SearchContains<string>>(_searchItem.SearchNameCollection);
                _nameRegexCollection = new ObservableCollectionEx<SearchContains<SearchRegex>>(_searchItem.SearchNameRegexCollection);
                _signatureCollection = new ObservableCollectionEx<SearchContains<SearchRegex>>(_searchItem.SearchSignatureCollection);
                _keywordCollection = new ObservableCollectionEx<SearchContains<string>>(_searchItem.SearchKeywordCollection);
                _creationTimeRangeCollection = new ObservableCollectionEx<SearchContains<SearchRange<DateTime>>>(_searchItem.SearchCreationTimeRangeCollection);
                _lengthRangeCollection = new ObservableCollectionEx<SearchContains<SearchRange<long>>>(_searchItem.SearchLengthRangeCollection);
                _seedCollection = new ObservableCollectionEx<SearchContains<Seed>>(_searchItem.SearchSeedCollection);
                _stateCollection = new ObservableCollectionEx<SearchContains<SearchState>>(_searchItem.SearchStateCollection);
            }

            _searchTreeViewItemNameTextBox_TextChanged(null, null);

            _nameListView.ItemsSource = _nameCollection;
            _nameRegexListView.ItemsSource = _nameRegexCollection;
            _signatureListView.ItemsSource = _signatureCollection;
            _keywordListView.ItemsSource = _keywordCollection;
            _creationTimeRangeListView.ItemsSource = _creationTimeRangeCollection;
            _lengthRangeListView.ItemsSource = _lengthRangeCollection;
            _seedListView.ItemsSource = _seedCollection;
            _stateListView.ItemsSource = _stateCollection;

            _nameListViewUpdate();
            _nameRegexListViewUpdate();
            _signatureListViewUpdate();
            _keywordListViewUpdate();
            _creationTimeRangeListViewUpdate();
            _lengthRangeListViewUpdate();
            _seedListViewUpdate();
            _stateListViewUpdate();

            foreach (var item in Enum.GetValues(typeof(SearchState)).Cast<SearchState>())
            {
                _stateComboBox.Items.Add(item);
            }

            _stateComboBox.SelectedIndex = 0;
        }
Beispiel #12
0
		/// <summary>
		/// Initializes a new instance of the <see cref="Level1Grid"/>.
		/// </summary>
		public Level1Grid()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<Level1ChangeMessage>();
			ItemsSource = itemsSource;

			_messages = new ThreadSafeObservableCollection<Level1ChangeMessage>(itemsSource) { MaxCount = 10000 };
		}
Beispiel #13
0
		/// <summary>
		/// Initializes a new instance of the <see cref="MyTradeGrid"/>.
		/// </summary>
		public MyTradeGrid()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<MyTrade>();
			ItemsSource = itemsSource;

			_trades = new ThreadSafeObservableCollection<MyTrade>(itemsSource) { MaxCount = 10000 };
		}
Beispiel #14
0
		/// <summary>
		/// Создать <see cref="NewsGrid"/>.
		/// </summary>
		public NewsGrid()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<News>();
			ItemsSource = itemsSource;

			_news = new ThreadSafeObservableCollection<News>(itemsSource) { MaxCount = 10000 };
		}
Beispiel #15
0
		/// <summary>
		/// Initializes a new instance of the <see cref="OrderLogGrid"/>.
		/// </summary>
		public OrderLogGrid()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<OrderLogItem>();
			ItemsSource = itemsSource;

			_items = new ThreadSafeObservableCollection<OrderLogItem>(itemsSource) { MaxCount = 100000 };
		}
 public SimpleListViewModel()
 {
     items = new ObservableCollectionEx<string>()
         {
             "Alpha",
             "Beta",
             "Gamma"
         };
 }
 public ImageShrinkerViewModel()
 {
     ImageThumbs = new ObservableCollectionEx<ImageThumbViewModel>();
     Scale = 100;
     Quality = 90;
     ArchiveName = "BilderArchiv";
     _filenames = new Dictionary<string, string>();
     _selectedThumb = null;
 }
		/// <summary>
		/// Initializes a new instance of the <see cref="ExecutionGrid"/>.
		/// </summary>
		public ExecutionGrid()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<ExecutionMessage>();
			ItemsSource = itemsSource;

			_messages = new ThreadSafeObservableCollection<ExecutionMessage>(itemsSource) { MaxCount = 1000000 };
		}
 public void ObsCollExCollectionChangedTest()
 {
     ObservableCollectionEx<string> target = new ObservableCollectionEx<string>();
     target.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(target_CollectionChanged);
     target.Add("Walter White");
     Assert.AreEqual(NotifyCollectionChangedAction.Add,_Args.Action);
     Assert.AreEqual(1, _Args.NewItems.Count);
     Assert.AreEqual("Walter White", _Args.NewItems[0]);
     _Args = null;
 }
        public SignatureTreeViewModel(TreeViewModelBase parent, SignatureTreeItem value)
            : base(parent)
        {
            if (value == null) throw new ArgumentNullException(nameof(value));

            _children = new ObservableCollectionEx<TreeViewModelBase>();
            _readonlyChildren = new ReadOnlyObservableCollection<TreeViewModelBase>(_children);

            this.Value = value;
        }
Beispiel #21
0
		/// <summary>
		/// Initializes a new instance of the <see cref="PortfolioComboBox"/>.
		/// </summary>
		public PortfolioComboBox()
		{
			DisplayMemberPath = "Name";

			var itemsSource = new ObservableCollectionEx<Portfolio>();
			ItemsSource = itemsSource;

			Portfolios = new ThreadSafeObservableCollection<Portfolio>(itemsSource);
			Connector = ConfigManager.TryGetService<IConnector>();
		}
		public MainWindow()
		{
			InitializeComponent();

			var errorSource = new ObservableCollectionEx<SettingsError>();
			Results.ItemsSource = errorSource;
			_settingErrors = new ThreadSafeObservableCollection<SettingsError>(errorSource);

			FindTerminals();
		}
        public MyPlexConnection(IRestConnection restConnection)
        {
            _restConnection = restConnection;
            _devices = new ObservableCollectionEx<Device>();
            _servers = new ObservableCollectionEx<Device>();
            _players = new ObservableCollectionEx<Device>();

            Devices = new ReadOnlyObservableCollection<Device>(_devices);
            Servers = new ReadOnlyObservableCollection<Device>(_servers);
            Players = new ReadOnlyObservableCollection<Device>(_players);
        }
Beispiel #24
0
		public ChatPanel()
		{
			InitializeComponent();

			var context = new ObservableCollectionEx<RoomItem>();
			ChatRoomsTree.DataContext = context;

			_chatRooms = new ThreadSafeObservableCollection<RoomItem>(context);

			WhenLoaded(ChatControl_OnLoaded);
		}
 public User(string username, string password)
 {
     LocalId = Guid.NewGuid();
     Username = username;
     Password = password;
     Settings = new Settings();
     Libraries = new ObservableCollectionEx<Library>();
     Downloads = new ObservableCollectionEx<QueuedDownload>();
     Save(true);
     SubscribeForComponentChanges();
 }
Beispiel #26
0
        public ObservableCollectionEx<TwitterStatusModel> GetFeed(Uri twitterFeed = null)
        {
            if (twitterFeed == null)
            {
                twitterFeed = new Uri(Settings.TwitterFeedUri);
            }

            var twitterStatus = new ObservableCollectionEx<TwitterStatusModel>();
            RetrieveTwitterValues(twitterFeed, twitterStatus);
            return twitterStatus;
        }
		private void FillBoards(IExchangeInfoProvider provider)
		{
			var itemsSource = new ObservableCollectionEx<ExchangeBoard> { _emptyBoard };
			var boards = new ThreadSafeObservableCollection<ExchangeBoard>(itemsSource);

			boards.AddRange(provider.Boards);

			provider.BoardAdded += boards.Add;
			
			Boards = boards;
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="PortfolioGrid"/>.
		/// </summary>
		public PortfolioGrid()
		{
			InitializeComponent();

			var itemsSource = new ObservableCollectionEx<PositionItem>();
			ItemsSource = itemsSource;

			_positions = new ConvertibleObservableCollection<BasePosition, PositionItem>(new ThreadSafeObservableCollection<PositionItem>(itemsSource), p => new PositionItem(p));

			GroupingColumns.Add(Columns[0]);
		}
        public ListViewModel()
        {
            DataCollection = new ObservableCollectionEx<CmdArgItem>();
            DataCollectionView = CollectionViewSource.GetDefaultView(DataCollection);

            if (DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject()))
            {
                DataCollection.Add(new CmdArgItem() { Enabled = true, Command = @"C:\Users\Markus\Desktop\" });
                DataCollection.Add(new CmdArgItem() { Enabled = false, Command = "Hello World" });
                DataCollection.Add(new CmdArgItem() { Enabled = true, Command = "A very long commandline to test very long commandlines to see how very long commandlines work in our UI." });
            }
        }
     private void SetPaths(IEnumerable<PathEntry> systemPath, IEnumerable<PathEntry> userPath)
     {
         lock(stateLock)
         {
             SystemPath = new ObservableCollectionEx<AnnotatedPathEntry>(systemPath.Select(AnnotatedPathEntry.FromPath));
             UserPath   = new ObservableCollectionEx<AnnotatedPathEntry>(userPath.Select(AnnotatedPathEntry.FromPath));
 
             DirtyPaths();
 
             SystemPath.CollectionChanged += (a, b) => DirtyPaths();
             UserPath.CollectionChanged   += (a, b) => DirtyPaths();
         }
     }
Beispiel #31
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ExchangeBoardComboBox"/>.
        /// </summary>
        public ExchangeBoardComboBox()
        {
            IsEditable = true;

            var itemsSource = new ObservableCollectionEx <ExchangeBoard> {
                _emptyBoard
            };

            _boards = new ThreadSafeObservableCollection <ExchangeBoard>(itemsSource);

            //_boards.AddRange(ExchangeBoard.EnumerateExchangeBoards().OrderBy(b => b.Code));

            DisplayMemberPath = "Code";

            Boards      = _boards;
            ItemsSource = Boards;

            SelectedBoard = _emptyBoard;
        }
Beispiel #32
0
        public EditorViewModel(TargetPlatform platform, IEnumerable <IObjectEditor> editors)
        {
            if (platform == null)
            {
                throw new ArgumentNullException(nameof(platform));
            }
            if (editors == null)
            {
                throw new ArgumentNullException(nameof(editors));
            }

            TargetPlatform = platform;

            var observableEditors = new ObservableCollectionEx <IObjectEditor> ();

            Editors = observableEditors;
            observableEditors.CollectionChanged += OnEditorsChanged;
            observableEditors.AddItems(editors);              // Purposefully after the event hookup
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ExchangeComboBox"/>.
        /// </summary>
        public ExchangeComboBox()
        {
            IsEditable = true;

            var itemsSource = new ObservableCollectionEx <Exchange> {
                _emptyExchange
            };

            _exchanges = new ThreadSafeObservableCollection <Exchange>(itemsSource);

            //_exchanges.AddRange(Exchange.EnumerateExchanges().OrderBy(b => b.Name));

            DisplayMemberPath = "Name";

            Exchanges   = _exchanges;
            ItemsSource = Exchanges;

            SelectedExchange = _emptyExchange;
        }
Beispiel #34
0
        private void caricaElencoDischiRimovibili()
        {
            DriveInfo[] dischi;

            if (IsInDesignMode)
            {
                dischi = creaDischiFinti();
            }
            else
            {
                dischi = LumenApplication.Instance.getServizioAvviato <IVolumeCambiatoSrv>().GetDrivesUsbAttivi();
            }
            dischiRimovibili = new ObservableCollectionEx <DriveInfo>(dischi);
            if (dischi.Length > 0)
            {
                ejectUsbItem = dischi[dischi.Length - 1];
            }
            OnPropertyChanged("dischiRimovibili");
        }
        /// <summary>
        /// Создать <see cref="SecurityGrid"/>.
        /// </summary>
        public SecurityGrid()
        {
            InitializeComponent();

            var itemsSource = new ObservableCollectionEx <SecurityItem>();

            //var itemsSource = new ObservableCollection<SecurityItem>();
            //itemsSource.CollectionChanged += (sender, args) =>
            //{
            //	var newCount = args.NewItems == null ? 0 : args.NewItems.Count;
            //	var oldCount = args.OldItems == null ? 0 : args.OldItems.Count;
            //	Console.WriteLine("{0:X4} ColChange={1} NewCnt={2} OldCnt={3} NewIdx={4} OldIdx={5}",
            //		GetHashCode(), args.Action, newCount, oldCount,
            //		args.NewStartingIndex, args.OldStartingIndex);
            //};
            //((INotifyPropertyChanged)itemsSource).PropertyChanged += (sender, args) =>
            //{
            //	Console.WriteLine("{0:X4} PropChange {1}", GetHashCode(), args.PropertyName);
            //};
            ItemsSource = itemsSource;

            _securities = new ConvertibleObservableCollection <Security, SecurityItem>(new ThreadSafeObservableCollection <SecurityItem>(itemsSource), CreateItem);

            _selectedSecurities = new SelectedSecurityList(this);

            MarketDataProvider = ConfigManager.TryGetService <IMarketDataProvider>();

            if (MarketDataProvider == null)
            {
                ConfigManager.ServiceRegistered += (t, s) =>
                {
                    if (MarketDataProvider != null || typeof(IMarketDataProvider) != t)
                    {
                        return;
                    }

                    MarketDataProvider = (IMarketDataProvider)s;

                    itemsSource.ForEach(item => UpdateData(item.Security, item));
                };
            }
        }
Beispiel #36
0
        static void Main(string[] args)
        {
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            #region 要运行的程序

            //MagnesiumRunTests.RunTests();
            //MagnesiumRunTests.DbTests();

            var a = new List <int>()
            {
                1, 2, 3, 4, 5, 6
            };
            var b = ObservableCollectionEx.CreateAndSyncWith(a);
            b.Add(7);
            b.Add(8);
            a.ForEach(i => Console.Write(i + ","));
            Console.WriteLine();
            b.RemoveAt(0);
            b.RemoveAt(5);
            a.ForEach(i => Console.Write(i + ","));
            #endregion

            stopWatch.Stop();
            Console.WriteLine("\n\nProgram run finish!");
            Console.WriteLine($"Run time {stopWatch.ElapsedMilliseconds} ms.");

            Console.ReadKey();


            //var ma = Magnesium.Instance;
            //foreach (var item in ma.HandleProvider.LoadDcp(@"C:\Users\kuref\OneDrive\Codes\Visual Studio\Projects\Magnesium\Magnesium.Sample\bin\Debug\Magnesium.Sample.dll"))
            //{
            //    ma.HandleProvider.RegisterDcp(item);
            //}

            //ma.HandleProvider.GetDcps().ElementAt(0).RequestGenerator.AutoRun();

            //Thread.Sleep(-1);
        }
Beispiel #37
0
 private void ReplaceDummyChildren()
 {
     if (_children == DummyChildren)
     {
         var children = new List <ShellItem>();
         try {
             foreach (PIDLIST childPidl in _shellFolder.EnumObjects(_tree.WindowHandle, SHCONTF.FOLDERS | SHCONTF.NONFOLDERS))
             {
                 NativeShellFolder childShellFolder = _shellFolder.BindToObject <IShellFolder>(childPidl).ToNative();
                 ShellItem         childItem        = new ShellItem(_tree, this, childPidl, childShellFolder);
                 children.Add(childItem);
             }
         }
         catch (Exception e) {
             if (e.IsAnyType <FileNotFoundException, Win32Exception>())
             {
                 Log.Error("Failed to enumerate items of folder '{0}'.".Fmt(DisplayName), e);
             }
         }
         finally {
             children.Sort(new ShellItemComparer(ParentShellFolder));
             _children        = new ObservableCollectionEx <ShellItem>();
             _childrenFiles   = new ObservableCollectionEx <ShellItem>();
             _childrenFolders = new ObservableCollectionEx <ShellItem>();
             foreach (ShellItem childItem in children)
             {
                 _children.Add(childItem);
                 if (childItem.IsFolder)
                 {
                     _childrenFolders.Add(childItem);
                 }
                 else
                 {
                     _childrenFiles.Add(childItem);
                 }
             }
         }
         OnPropertyChanged("Children", "ChildrenUnexpanded",
                           "ChildrenFiles", "ChildrenFilesUnexpanded",
                           "ChildrenFolders", "ChildrenFoldersUnexpanded");
     }
 }
Beispiel #38
0
        public async Task When_Collection_Reset()
        {
            var count = 0;
            var panel = new StackPanel();

            var SUT = new ItemsControl()
            {
                ItemsPanelRoot         = panel,
                ItemContainerStyle     = BuildBasicContainerStyle(),
                InternalItemsPanelRoot = panel,
                ItemTemplate           = new DataTemplate(() =>
                {
                    count++;
                    return(new Border());
                })
            };

            SUT.ApplyTemplate();

            var c = new ObservableCollectionEx <string>();

            c.Add("One");
            c.Add("Two");
            c.Add("Three");

            SUT.ItemsSource = c;
            Assert.AreEqual(count, 3);

            Assert.AreEqual(SUT.Items.Count, 3);

            using (c.BatchUpdate())
            {
                c.Add("Four");
                c.Add("Five");
            }

            Assert.AreEqual(SUT.Items.Count, 5);
            Assert.AreEqual(count, 5);
            Assert.IsNotNull(SUT.ContainerFromItem("One"));
            Assert.IsNotNull(SUT.ContainerFromItem("Four"));
            Assert.IsNotNull(SUT.ContainerFromItem("Five"));
        }
Beispiel #39
0
        public void RemoveSubitemsTest()
        {
            var element1 = new SelectableElementStub();
            var element2 = new SelectableElementStub();
            var element3 = new SelectableElementStub();

            element1.Subitems.Add(element2);
            element2.Subitems.Add(element3);
            var selectionManager = new SelectionManager();
            var collection       = new ObservableCollectionEx <SelectableElementStub>
            {
                element1,
            };

            selectionManager.AddCollection(collection);
            element3.Selected = true;
            element1.Subitems.Remove(element2);

            Assert.AreEqual(element1, selectionManager.SelectedElement);
        }
Beispiel #40
0
        public void ClearTest()
        {
            var wasExecuted = false;
            var collection  = new ObservableCollectionEx <string> {
                "One", "Two"
            };

            collection.CollectionChanged += (sender, args) =>
            {
                if (args.Action == NotifyCollectionChangedAction.Remove && args.OldItems.Count == 2)
                {
                    wasExecuted = true;
                }
            };

            collection.Clear();

            CollectionAssert.IsEmpty(collection);
            Assert.IsTrue(wasExecuted);
        }
Beispiel #41
0
        public void ClearAndAddRangeClearsTheCollectionThenAddsAllTheItems()
        {
            var oc = new ObservableCollectionEx <string>
            {
                "Existing",
                "Items"
            };

            var toAdd = new List <string>
            {
                "Foo",
                "Bar"
            };

            oc.ClearAndAddRange(toAdd);

            oc.Should().ContainInOrder(toAdd);
            oc.Should().OnlyContain(s => toAdd.Contains(s));
            oc.Count.Should().Be(2);
        }
Beispiel #42
0
        public void PropertiesListItemRemovedJointList()
        {
            var baseObj    = new object();
            var derivedObj = new object();

            var baseProperty = new Mock <IPropertyInfo> ();

            baseProperty.SetupGet(pi => pi.Type).Returns(typeof(string));

            var baseProperties = new ObservableCollectionEx <IPropertyInfo> {
                baseProperty.Object
            };
            var derivedProperties = new ObservableCollectionEx <IPropertyInfo> {
                baseProperty.Object
            };

            var baseEditorMock = new Mock <IObjectEditor> ();

            baseEditorMock.SetupGet(e => e.Properties).Returns(baseProperties);
            baseEditorMock.SetupGet(e => e.Target).Returns(baseObj);

            var derivedEditorMock = new Mock <IObjectEditor> ();

            derivedEditorMock.SetupGet(e => e.Properties).Returns(derivedProperties);
            derivedEditorMock.SetupGet(e => e.Target).Returns(derivedObj);

            var providerMock = new Mock <IEditorProvider> ();

            providerMock.Setup(ep => ep.GetObjectEditorAsync(baseObj)).ReturnsAsync(baseEditorMock.Object);
            providerMock.Setup(ep => ep.GetObjectEditorAsync(derivedObj)).ReturnsAsync(derivedEditorMock.Object);

            var vm = new PanelViewModel(providerMock.Object, TargetPlatform.Default);

            vm.SelectedObjects.AddItems(new[] { baseObj, derivedObj });

            Assume.That(vm.Properties.Count, Is.EqualTo(1));
            Assume.That(vm.Properties.Cast <PropertyViewModel>().Select(v => v.Property), Contains.Item(baseProperty.Object));

            derivedProperties.Remove(baseProperty.Object);
            Assert.That(vm.Properties, Is.Empty);
        }
        public void Init(VM_AniDB_Anime anime, string defaultGroupName)
        {
            VM_AnimeSearch srch = new VM_AnimeSearch();

            srch.AnimeID   = anime.AnimeID;
            srch.MainTitle = anime.MainTitle;
            srch.Titles    = new HashSet <string>(anime.GetAllTitles(), StringComparer.InvariantCultureIgnoreCase);

            SetSelectedAnime(srch);
            EvaluateRadioButtons();

            rbGroupExisting.IsChecked = true;

            AllGroups     = new ObservableCollection <VM_AnimeGroup_User>();
            SearchResults = new ObservableCollectionEx <VM_AnimeSearch>();

            try
            {
                ViewGroups = CollectionViewSource.GetDefaultView(AllGroups);
                ViewGroups.SortDescriptions.Add(new SortDescription("SortName", ListSortDirection.Ascending));

                ViewSearchResults = CollectionViewSource.GetDefaultView(SearchResults);
                ViewSearchResults.SortDescriptions.Add(new SortDescription("MainTitle", ListSortDirection.Ascending));

                List <VM_AnimeGroup_User> grpsRaw = VM_ShokoServer.Instance.ShokoServices.GetAllGroups(VM_ShokoServer.Instance.CurrentUser.JMMUserID).CastList <VM_AnimeGroup_User>();

                foreach (VM_AnimeGroup_User grp in grpsRaw)
                {
                    AllGroups.Add(grp);
                }

                ViewGroups.Filter = GroupSearchFilter;

                txtGroupName.Text     = defaultGroupName;
                txtGroupSortName.Text = defaultGroupName;
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
        private void SetProfile(bool startup = false)
        {
            if (!startup)
            {
                PropertyChanged       -= ViewModelChanged;
                Model.PropertyChanged -= ModelChanged;
                ((INotifyPropertyChanged)Commands).PropertyChanged -= CommandModelChanged;
                Commands.MemberPropertyChanged -= CommandModelChanged;
            }

            var settings      = ConfigurationManager.AppSettings[SelectedProfile.Name];
            var settingsArray = settings.Split(new string[] { "~~~" }, StringSplitOptions.None);

            Model = TeamNotifierLogic.Deserialize <TeamNotifierModel>(settingsArray[0]);

            Commands = new ObservableCollectionEx <CommandViewModel>();

            for (var i = 1; i < settingsArray.Length; i++)
            {
                var cmd   = TeamNotifierLogic.Deserialize <CommandModel>(settingsArray[i]);
                var cmdvm = new CommandViewModel(cmd);
                cmdvm.DeleteCommand = new DelegateCommand(DeleteCommandHandler);
                Commands.Add(cmdvm);
            }

            if (string.IsNullOrEmpty(Model.User))
            {
                Model.User = Environment.UserName;
            }

            ((INotifyPropertyChanged)Commands).PropertyChanged += CommandModelChanged;
            Commands.MemberPropertyChanged += CommandModelChanged;
            PropertyChanged       += ViewModelChanged;
            Model.PropertyChanged += ModelChanged;

            if (!startup)
            {
                RaisePropertyChanged("Commands");
                Model.RaisePropertyChanged("Model");
            }
        }
        public void ObservableCollectionEx_TestInsertRange()
        {
            ObservableCollectionEx <int> collection = new ObservableCollectionEx <int>();
            List <int> list = new List <int>();

            for (var i = 200001; i <= 300000; i++)
            {
                list.Add(i);
            }
            collection.AddRange(list);

            Assert.AreEqual(100000, collection.Count);
            Assert.AreEqual(300000, collection[collection.Count - 1]);

            list = new List <int>();
            for (var i = 1; i <= 100000; i++)
            {
                list.Add(i);
            }
            collection.InsertRange(list);

            Assert.AreEqual(200000, collection.Count);
            Assert.AreEqual(1, collection[0]);
            Assert.AreEqual(100000, collection[99999]);
            Assert.AreEqual(300000, collection[collection.Count - 1]);

            list = new List <int>();
            for (var i = 100001; i <= 200000; i++)
            {
                list.Add(i);
            }
            collection.InsertRange(100000, list);

            Assert.AreEqual(300000, collection.Count);
            Assert.AreEqual(1, collection[0]);
            Assert.AreEqual(100000, collection[99999]);
            Assert.AreEqual(100001, collection[100000]);
            Assert.AreEqual(200000, collection[199999]);
            Assert.AreEqual(200001, collection[200000]);
            Assert.AreEqual(300000, collection[collection.Count - 1]);
        }
        public ListViewModel()
        {
            DataCollection     = new ObservableCollectionEx <CmdArgItem>();
            DataCollectionView = CollectionViewSource.GetDefaultView(DataCollection);

            if (DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject()))
            {
                DataCollection.Add(new CmdArgItem()
                {
                    Enabled = true, Command = @"C:\Users\Markus\Desktop\"
                });
                DataCollection.Add(new CmdArgItem()
                {
                    Enabled = false, Command = "Hello World"
                });
                DataCollection.Add(new CmdArgItem()
                {
                    Enabled = true, Command = "A very long commandline to test very long commandlines to see how very long commandlines work in our UI."
                });
            }
        }
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     try
     {
         DB.InitializeConnection();
     }
     catch (Exception ex)
     {
         MessageBox.Show("Errore durante la connessione al Database: " + Environment.NewLine + ex.Message,
                         "Errore", MessageBoxButton.OK, MessageBoxImage.Error);
         return;
     }
     RefreshWarehouse();
     ShoppingItems = new ObservableCollectionEx <WarehouseItem>();
     DataGridShopping.ItemsSource = ShoppingItems;
     _timer = new DispatcherTimer {
         Interval = new TimeSpan(0, 0, 0, 1, 0)
     };
     _timer.Tick += TimerOnTick;
     DataContext  = this;
 }
Beispiel #48
0
        public void RemoveCollectionTest()
        {
            var element1         = new SelectableElementStub();
            var element2         = new SelectableElementStub();
            var selectionManager = new SelectionManager();
            var collection       = new ObservableCollectionEx <SelectableElementStub>
            {
                element1,
                element2
            };

            selectionManager.AddCollection(collection);
            element1.Selected = true;
            selectionManager.RemoveCollection(collection);

            element2.Selected = true;

            Assert.IsNull(selectionManager.SelectedElement);
            Assert.IsTrue(element1.Selected);
            Assert.IsTrue(element2.Selected);
        }
Beispiel #49
0
        static IConnectionManager CreateConnectionManager(params string[] addresses)
        {
            var result      = Substitute.For <IConnectionManager>();
            var connections = new ObservableCollectionEx <IConnection>();

            result.Connections.Returns(connections);
            result.GetLoadedConnections().Returns(connections);
            result.GetConnection(null).ReturnsForAnyArgs(default(IConnection));

            foreach (var address in addresses)
            {
                var connection  = Substitute.For <IConnection>();
                var hostAddress = HostAddress.Create(address);
                connection.HostAddress.Returns(hostAddress);
                connection.IsLoggedIn.Returns(true);
                connections.Add(connection);
                result.GetConnection(hostAddress).Returns(connection);
            }

            return(result);
        }
Beispiel #50
0
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            bool isvalid = true;

            if (values[0] == null || values[1] == null)
            {
                return(null);
            }

            string paramvalue = values[0].ToString();

            if (string.IsNullOrEmpty(paramvalue))
            {
                return(null);
            }

            if (values[1] != DependencyProperty.UnsetValue)
            {
                ObservableCollectionEx <Parameter> siblings = (ObservableCollectionEx <Parameter>)values[1];
                string value = Command.Normalize(paramvalue, siblings);
                if (Regex.IsMatch(value, @"{%(.+?)%}"))
                {
                    isvalid = false;
                }
                else
                {
                    isvalid = true;
                }
            }

            if (!isvalid)
            {
                return(Brushes.Yellow);
            }
            else
            {
                return(SystemColors.WindowBrush);
            }
        }
Beispiel #51
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            descriptionViewSource        = ((CollectionViewSource)(this.FindResource("descriptionViewSource")));
            descriptionCollection        = new ObservableCollectionEx <description>(Entities.description);
            descriptionViewSource.Source = descriptionCollection;

            descriptionCollection.CollectionChanged += descriptionCollection_CollectionChanged;

            //groupsViewSource = ((CollectionViewSource)(this.FindResource("groupsViewSource")));
            //groupsViewSource.Source = Entities.groups;

            // Формируем запрос для вывода его в queryResultsDataGrid
            queryResults = from Desc in Entities.description
                           join Group in Entities.groups on Desc.id_desc equals Group.desc into CompGroups
                           from CompGroup in CompGroups.DefaultIfEmpty()
                           select new {
                desc_name = Desc.name,
                Desc.start_date,
                Desc.end_date,
                group_name = CompGroup.name,
                CompGroup.start_year,
                CompGroup.end_year
            };

            queryResultsCollection.AddRange(queryResults);

            queryResultsViewSource = new CollectionViewSource();
            (queryResultsViewSource as ISupportInitialize).BeginInit();
            queryResultsViewSource.CollectionViewType = typeof(ListCollectionView);
            queryResultsViewSource.Source             = queryResultsCollection;
            (queryResultsViewSource as ISupportInitialize).EndInit();

            Binding myBinding = new Binding()
            {
                Source = queryResultsViewSource
            };

            BindingOperations.SetBinding(queryResultsDataGrid, DataGrid.ItemsSourceProperty, myBinding);
        }
Beispiel #52
0
        public BaseViewModel()
        {
            _debugName = NameManager.Instance.GetViewModelName <T>();

            LoadReferenceData();

            Entities = new ObservableCollectionEx <T>();
            Entities.CollectionChanged += Entities_CollectionChanged;
            HeaderFilters  = new List <HeaderFilterBaseModel>();
            PagerViewModel = new PagerViewModel()
            {
                IsEnablePaging   = true,
                CurrentPageIndex = 1,
                ItemCount        = 0,
                PageCount        = 0
            };

            PagerViewModel.ActionCurrentPageIndexChanged = Load;
            PagerViewModel.ActionIsEnablePagingChanged   = Load;

            SelectedValuePath = nameof(DTO.IDto.ID);
        }
Beispiel #53
0
        public ClassEditorViewModel(
            IEventAggregator eventAggregator,
            IObservableDataFactory observableDataFactory,
            IModuleDataService moduleDataService)
        {
            _eventAggregator       = eventAggregator;
            _observableDataFactory = observableDataFactory;
            _moduleDataService     = moduleDataService;

            NewCommand    = new DelegateCommand(New);
            DeleteCommand = new DelegateCommand(Delete);

            Classes = new ObservableCollectionEx <ClassDataObservable>();

            ConfirmDeleteRequest = new InteractionRequest <IConfirmation>();

            Classes.ItemPropertyChanged += ClassesOnItemPropertyChanged;

            _eventAggregator.GetEvent <ModuleLoadedEvent>().Subscribe(ModuleLoaded);
            _eventAggregator.GetEvent <DataEditorClosedEvent>().Subscribe(DataEditorClosed);
            _eventAggregator.GetEvent <ModuleClosedEvent>().Subscribe(ModuleClosed);
        }
Beispiel #54
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            ObservableCollectionEx <OctopusLib.Machine> machines = value as ObservableCollectionEx <OctopusLib.Machine>;
            StringBuilder sbMachine = new StringBuilder();

            if (machines != null)
            {
                foreach (OctopusLib.Machine machine in machines)
                {
                    if (sbMachine.Length == 0)
                    {
                        sbMachine.AppendFormat("{0}", machine.Name);
                    }
                    else
                    {
                        sbMachine.AppendFormat(",{0}", machine.Name);
                    }
                }
            }

            return(sbMachine.ToString());
        }
        /// <summary>
        /// Constructor for CartViewModel.
        /// </summary>
        public CartViewModel()
        {
            // In design mode, simply return.
            if (DesignerProperties.IsInDesignTool)
            {
                return;
            }

            CartItems = new ObservableCollectionEx <CartItem>();
            CartItems.CollectionChanged += CartItems_CollectionChanged;
            ((INotifyPropertyChanged)CartItems).PropertyChanged += CartItems_PropertyChanged;

            _removeCommand           = new RelayCommand(OnRemove);
            _removeCommand.IsEnabled = true;

            LoadCartFromIsolatedStorage();

            if (CartItems.Count > 0)
            {
                CurrentItem = CartItems[0];
            }
        }
Beispiel #56
0
        public void UpdateToMatchAddsNewItems()
        {
            var oc = new ObservableCollectionEx <string>
            {
                "Existing",
                "Items"
            };

            var toAdd = new List <string>
            {
                "Existing",
                "Items",
                "Foo",
                "Bar"
            };

            oc.UpdateToMatch(toAdd, s => s);

            oc.Should().ContainInOrder(toAdd);
            oc.Should().OnlyContain(s => toAdd.Contains(s));
            oc.Count.Should().Be(4);
        }
Beispiel #57
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OrderGrid"/>.
        /// </summary>
        public OrderGrid()
        {
            InitializeComponent();

            var itemsSource = new ObservableCollectionEx <OrderItem>();

            ItemsSource = itemsSource;

            _orders = new ConvertibleObservableCollection <Order, OrderItem>(new ThreadSafeObservableCollection <OrderItem>(itemsSource), order => new OrderItem
            {
                Order     = order,
                Condition = FormatCondition(order.Condition),
            })
            {
                MaxCount = 100000
            };

            ContextMenu.Items.Add(new Separator());
            ContextMenu.Items.Add(new MenuItem {
                Header = LocalizedStrings.Str1566, Command = RegisterOrderCommand, CommandTarget = this
            });
        }
Beispiel #58
0
        public void AuthFlowWithout2FA()
        {
            var provider = Substitutes.GetFullyMockedServiceProvider();
            var factory  = SetupFactory(provider);
            var cm       = provider.GetConnectionManager();
            var cons     = new ObservableCollectionEx <IConnection>();

            cm.Connections.Returns(cons);
            cm.GetLoadedConnections().Returns(cons);

            using (var uiController = new UIController((IGitHubServiceProvider)provider, factory, cm))
            {
                var count = 0;
                var flow  = uiController.Configure(UIControllerFlow.Clone);
                flow.Subscribe(data =>
                {
                    var uc = data.View;
                    switch (++count)
                    {
                    case 1:
                        Assert.IsAssignableFrom <IViewFor <ILoginControlViewModel> >(uc);
                        // login
                        cons.Add(SetupConnection(provider));
                        TriggerDone(data.View.ViewModel);
                        break;

                    case 2:
                        Assert.IsAssignableFrom <IViewFor <IRepositoryCloneViewModel> >(uc);
                        TriggerCancel(data.View.ViewModel);
                        break;
                    }
                });

                uiController.Start();
                Assert.Equal(2, count);
                Assert.True(uiController.IsStopped);
            }
        }
Beispiel #59
0
        public ModulePropertiesViewModel(
            IObjectMapper objectMapper,
            IEventAggregator eventAggregator,
            IModuleService domainService,
            IObservableDataFactory observableDataFactory)
        {
            _objectMapper          = objectMapper;
            _eventAggregator       = eventAggregator;
            _domainService         = domainService;
            _observableDataFactory = observableDataFactory;

            Scripts        = new ObservableCollectionEx <ScriptDataObservable>();
            LocalVariables = _observableDataFactory.Create <LocalVariableDataObservable>();
            LevelChart     = new ObservableCollectionEx <ClassLevelDataObservable>();


            LocalVariables.VariablesItemPropertyChanged += OnPropertyChanged;
            LocalVariables.VariablesPropertyChanged     += OnPropertyChanged;
            LocalVariables.VariablesCollectionChanged   += LocalVariablesCollectionChanged;
            LevelChart.PropertyChanged     += OnPropertyChanged;
            LevelChart.ItemPropertyChanged += OnPropertyChanged;

            MaximumPossibleLevel = 99;

            SaveCommand   = new DelegateCommand(Save, CanSave);
            CancelCommand = new DelegateCommand(Cancel);

            AddLocalStringCommand    = new DelegateCommand(AddLocalString);
            AddLocalDoubleCommand    = new DelegateCommand(AddLocalDouble);
            DeleteLocalStringCommand = new DelegateCommand <LocalStringDataObservable>(DeleteLocalString);
            DeleteLocalDoubleCommand = new DelegateCommand <LocalDoubleDataObservable>(DeleteLocalDouble);

            _eventAggregator.GetEvent <ModuleLoadedEvent>().Subscribe(ModuleLoaded);
            _eventAggregator.GetEvent <ModulePropertiesClosedEvent>().Subscribe(Cancel);

            PropertyChanged += OnPropertyChanged;
            LocalVariables.PropertyChanged += OnPropertyChanged;
        }
        public MainViewModel()
        {
            _settingsRepository = SimpleIoc.Default.GetInstance <IGenericSettingsRepository <AppPreferences> >();
            _lockObj            = new object();

            _wcfCrmClient = SimpleIoc.Default.GetInstance <WcfCrmClient>();
            _wcfCrmClient.CrmServerCallHistoryEntryAdded += WcfCrmClientOnCrmServerCallHistoryEntryAdded;
            _wcfCrmClient.CrmServerCallReceived          += WcfCrmClientOnCrmServerCallReceived;
            _wcfCrmClient.CrmServerEntryAdded            += WcfCrmClientOnCrmServerEntryAdded;
            _wcfCrmClient.CrmServerEntryDeleted          += WcfCrmClientOnCrmServerEntryDeleted;
            _wcfCrmClient.CrmServerEntryModified         += WcfCrmClientOnCrmServerEntryModified;

            _internalCrmEntries = new ObservableCollectionEx <CrmEntry>();
            CrmEntries          = CollectionViewSource.GetDefaultView(_internalCrmEntries);
            NewCrmEntryNote     = new CrmNote();

            InitMessenger();
            InitSettings();
            InitViewCommands();

            _wcfCrmClient.Connect();
            RebuildCrmEntries();
        }