/// <summary> /// MarketsUpdated callback. /// NOTE: MarketsUpdated will be called on the dispatcher that TT API was initialized on. /// </summary> private void marketsUpdated(object sender, MarketCatalogUpdatedEventArgs e) { listViewMarketList.Groups.Clear(); listViewMarketList.Items.Clear(); // Create a sorted list of markets objects. // Please refer to MSDN for more information about Lambda expressions used to Query collections. http://msdn.microsoft.com/en-us/library/bb397675 var marketList = m_TTAPI.Session.MarketCatalog.Markets.Values.OrderBy(market => market.Name); // Create new MarketListViewItems and add them to the view. foreach (Market market in marketList) { // Add all markets except for synthetic ones. if (market.Key != MarketKey.AlgoSE && market.Key != MarketKey.Autospreader) { // Add the item if not currently in the tree if (m_marketList.Where(m => m.Name == market.Name).Count() == 0) { MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList); marketItem.Market = market; m_marketList.Add(marketItem); } } } }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Event notification for status of authentication. </summary> //////////////////////////////////////////////////////////////////////////////////////////////////// private void m_api_TTAPIStatusUpdate(object sender, TTAPIStatusUpdateEventArgs e) { statusLabel.Text = e.StatusMessage.ToString(); if (e.IsReady) { statusLabel.Text = "APP KEY AUTHENTICATED : LOGIN SUCCESSFUL"; // TODO: Do any connection up processing here // note: can happen multiple times with your application life cycle // can get status multiple times - do not create subscription if it exists if (m_marketCatalog != null) { return; } // Init the windows. initWindowViews(); m_marketList = new List <MarketListViewItem>(); m_instrumentCatalogList = new Dictionary <Product, InstrumentCatalog>(); // Create the Market Catalog m_marketCatalog = m_api.MarketCatalog; listViewMarketList.Items.Clear(); // Create a sorted list of markets objects. var marketList = m_api.MarketCatalog.Markets.Values.OrderBy(market => market.Name); foreach (Market market in marketList) { // Add the item if not currently in the tree if (m_marketList.Where(m => m.Name == market.Name).Count() == 0) { MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList); marketItem.Market = market; m_marketList.Add(marketItem); listViewMarketList.Items.Add(marketItem); } } statusLabel.Text = "There are " + m_marketList.Count.ToString() + " Markets"; } else { MessageBox.Show(String.Format("M_TTAPI_TTAPIStatusUpdate: {0}", e)); } }
/// <summary> /// SelectedIndexChanged event from the market ListView window. /// This event fires when the user changes the selected market. /// </summary> private void listViewMarketList_SelectedIndexChanged(object sender, EventArgs e) { if (listViewMarketList.SelectedItems.Count > 0) { treeViewProductList.Nodes.Clear(); toolStripStatusLabel.Text = ""; listViewProductTypeList.Items.Clear(); listViewMarketFeeds.Groups.Clear(); listViewMarketFeeds.Items.Clear(); // Cleanup and dispose all feeds. foreach (FeedListViewItem item in m_feedList) { item.Dispose(); } m_feedList.Clear(); MarketListViewItem marketItem = listViewMarketList.SelectedItems[0] as MarketListViewItem; IEnumerable <ProductType> types = marketItem.SupportedProductTypes; foreach (ProductType type in types) { ListViewItem item = new ListViewItem(); item.Name = type.ToString(); item.Text = type.ToString(); item.StateImageIndex = item.ImageIndex = GetImageCode(type); item.Tag = type; listViewProductTypeList.Items.Add(item); } if (listViewProductTypeList.Items.Count > 0) { listViewProductTypeList.Items[0].Selected = true; listViewMarketList.Select(); } // Create the market subscription. createProductSubscription(marketItem.Market); var allFeeds = marketItem.Market.PriceFeeds.Values.AsEnumerable <Feed>() .Concat(marketItem.Market.OrderFeeds.Values) .Concat(marketItem.Market.FillFeeds.Values); foreach (Feed feed in allFeeds) { FeedListViewItem feedItem = new FeedListViewItem(listViewMarketFeeds); feedItem.Feed = feed; m_feedList.Add(feedItem); } } }
/// <summary> /// MarketsUpdated callback. /// NOTE: MarketsUpdated will be called on the dispatcher that TT API was initialized on. /// </summary> private void marketsUpdated(object sender, MarketCatalogUpdatedEventArgs e) { foreach (Market market in e.Added) { // Add the item if not currently in the tree if (m_marketList.Where(m => m.Name == market.Name).Count() == 0) { MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList); marketItem.Market = market; m_marketList.Add(marketItem); listViewMarketList.Items.Add(marketItem); } } }
private void listViewMarketList_SelectedIndexChanged(object sender, EventArgs e) { if (listViewMarketList.SelectedItems.Count > 0) { treeViewProductList.Nodes.Clear(); statusLabel.Text = ""; listViewProductTypeList.Items.Clear(); MarketListViewItem marketItem = listViewMarketList.SelectedItems[0] as MarketListViewItem; if (m_prodCat != null) { m_prodCat.OnData -= productsUpdated; m_prodCat.Dispose(); m_prodCat = null; } // Create the market subscription. createProductSubscription(marketItem.Market); } }
/// <summary> /// MarketsUpdated callback. /// NOTE: MarketsUpdated will be called on the dispatcher that TT API was initialized on. /// </summary> private void marketsUpdated(object sender, MarketCatalogUpdatedEventArgs e) { listViewMarketList.Groups.Clear(); listViewMarketList.Items.Clear(); // Create a sorted list of markets objects. // Please refer to MSDN for more information about Lambda expressions used to Query collections. http://msdn.microsoft.com/en-us/library/bb397675 var marketList = m_TTAPI.Session.MarketCatalog.Markets.Values.OrderBy(market => market.Name); // Create new MarketListViewItems and add them to the view. foreach (Market market in marketList) { // Add all markets except for synthetic ones. if (market.Key != MarketKey.AlgoSE && market.Key != MarketKey.Autospreader) { // Add the item if not currently in the tree if (m_marketList.Where(m => m.Name == market.Name).Count() == 0) { MarketListViewItem marketItem = new MarketListViewItem(listViewMarketList); marketItem.Market = market; m_marketList.Add(marketItem); } } } }