/// <summary> /// The OpenNewAssetTile opens a new asset tile, subscribes to it's events, /// adds it to the active asset tiles and to the app data. /// Finally it calls the FireOnAppDataChanged method. /// </summary> public void OpenNewAssetTile() { if (this.portfolioTileSettingsWindowActive) { return; } IAssetTile assetTile = new WpfAssetTile(new AssetTileData(this.random), this.appData, this.apiHandler.ReadyApis); assetTile.OnTileClosed += this.AssetTile_OnTileClosed; assetTile.OnAssetSelected += this.AssetTile_OnAssetSelected; assetTile.OnAssetUnselected += this.AssetTile_OnAssetUnselected; assetTile.OnAppDataChanged += this.Tile_OnAppDataChanged; assetTile.OnAssetTileUpdated += this.AssetTile_OnAssetTileUpdated; this.activeAssetTiles.Add(assetTile); this.appData.AssetTileDataSet.Add(assetTile.AssetTileData); this.FireOnAppDataChanged(); assetTile.Show(); }
/// <summary> /// The OpenLoadedAssetTiles opens all asset tiles which were stored in the app data, /// subscribes to it's events and adds it to the active asset tiles. /// Finally it get's added to the list of unattached asset tiles if there is an API defined in the asset tile data. /// </summary> private void OpenLoadedAssetTiles() { this.appData.AssetTileDataSet.ForEach(assetTileData => { IAssetTile assetTile = new WpfAssetTile(assetTileData, this.appData, this.apiHandler.ReadyApis); assetTile.OnTileClosed += this.AssetTile_OnTileClosed; assetTile.OnAppDataChanged += this.Tile_OnAppDataChanged; assetTile.OnAssetSelected += this.AssetTile_OnAssetSelected; assetTile.OnAssetUnselected += this.AssetTile_OnAssetUnselected; assetTile.OnAssetTileUpdated += this.AssetTile_OnAssetTileUpdated; this.activeAssetTiles.Add(assetTile); if (assetTile.AssetTileData.ApiName != null && assetTile.AssetTileData.ApiName != string.Empty) { this.unattachedAssetTiles.Add(assetTile); } if (!this.appData.TileHandlerData.GlobalTileStyle.Hidden) { assetTile.Show(); } }); }
/// <summary> /// The AssetTile_OnAssetTileUpdated /// </summary> /// <param name="sender">The sender<see cref="object"/></param> /// <param name="e">The e<see cref="EventArgs"/></param> private void AssetTile_OnAssetTileUpdated(object sender, EventArgs e) { WpfAssetTile updatedAssetTile = (WpfAssetTile)sender; this.activePortfolioTiles.ForEach(port => port.Update(updatedAssetTile)); }