Add ability to show image markers.
This commit is contained in:
@@ -5,6 +5,7 @@ using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia.Media;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using DynamicData;
|
||||
using Eremex.AvaloniaUI.Charts;
|
||||
@@ -227,6 +228,12 @@ namespace PortfolioManager.ViewModels
|
||||
syncTradeToBand = value;
|
||||
if (syncTradeToBand) showTradeLabels = true;
|
||||
base.OnPropertyChanged("SyncTradeToBand");
|
||||
base.OnPropertyChanged("TradePoints");
|
||||
base.OnPropertyChanged("ZeroPoint");
|
||||
base.OnPropertyChanged("StopLimits");
|
||||
base.OnPropertyChanged("TradePointMarkers");
|
||||
base.OnPropertyChanged("ZeroPointMarkers");
|
||||
base.OnPropertyChanged("StopLimitMarkers");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -296,7 +303,21 @@ namespace PortfolioManager.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
// ******************************************************************* P E R S I S T E N C E ***************************************************
|
||||
/// <summary>
|
||||
/// See the XAML and also OSValueConverter in UIUtils for an explanation.
|
||||
/// </summary>
|
||||
public int MarkerSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// *********************************************************************************************************************************************
|
||||
|
||||
|
||||
// ******************************************************************* P E R S I S T E N C E ***************************************************
|
||||
|
||||
public override bool CanPersist()
|
||||
{
|
||||
@@ -313,8 +334,6 @@ namespace PortfolioManager.ViewModels
|
||||
saveParams.Add(new KeyValuePair<String, String>("SelectedDayCount", selectedDayCount.ToString()));
|
||||
saveParams.Add(new KeyValuePair<String, String>("SyncTradeToBand", syncTradeToBand.ToString()));
|
||||
saveParams.Add(new KeyValuePair<String, String>("ShowTradeLabels", showTradeLabels.ToString()));
|
||||
// saveParams.Add(new KeyValuePair<String, String>("ShowRiskFree", showRiskFree.ToString()));
|
||||
// saveParams.Add(new KeyValuePair<String, String>("IsLegendVisible", isLegendVisible.ToString()));
|
||||
saveParams.Add(new KeyValuePair<String, String>("UseLeastSquaresFit", useLeastSquaresFit.ToString()));
|
||||
saveParams.Add(new KeyValuePair<String, String>("ShowInsiderTransactions", showInsiderTransactions.ToString()));
|
||||
if(null!=stopLimits && 0!=stopLimits.Count)
|
||||
@@ -353,11 +372,6 @@ namespace PortfolioManager.ViewModels
|
||||
else showTradeLabels=true;
|
||||
}
|
||||
catch (Exception) { showTradeLabels = true; }
|
||||
// try
|
||||
// {
|
||||
// if(saveParameters.ContainsKey("IsLegendVisible"))isLegendVisible=Boolean.Parse((from KeyValuePair<String,String> item in saveParameters where item.Key.Equals("IsLegendVisible") select item).FirstOrDefault().Value);
|
||||
// }
|
||||
// catch (Exception){;}
|
||||
try
|
||||
{
|
||||
if(saveParameters.ContainsKey("UseLeastSquaresFit"))useLeastSquaresFit=Boolean.Parse((from KeyValuePair<String,String> item in saveParameters where item.Key.Equals("UseLeastSquaresFit") select item).FirstOrDefault().Value);
|
||||
@@ -368,9 +382,6 @@ namespace PortfolioManager.ViewModels
|
||||
if(saveParameters.ContainsKey("ShowInsiderTransactions"))showInsiderTransactions=Boolean.Parse((from KeyValuePair<String,String> item in saveParameters where item.Key.Equals("ShowInsiderTransactions") select item).FirstOrDefault().Value);
|
||||
}
|
||||
catch (Exception){;}
|
||||
// try{showRiskFree = Boolean.Parse((from KeyValuePair<String, String> item in saveParameters where item.Key.Equals("ShowRiskFree") select item).FirstOrDefault().Value);}
|
||||
// catch (Exception){;}
|
||||
|
||||
try
|
||||
{
|
||||
if(saveParameters.ContainsKey("StopHistoryCount"))
|
||||
@@ -418,8 +429,6 @@ namespace PortfolioManager.ViewModels
|
||||
{
|
||||
base.DisplayName = "Bollinger(" + selectedSymbol + ")";
|
||||
base.OnPropertyChanged("DisplayName");
|
||||
// InitializeDataSources();
|
||||
// InitializeData();
|
||||
stopLimit = PortfolioDA.GetStopLimit(selectedSymbol);
|
||||
portfolioTrades = PortfolioDA.GetTradesSymbol(selectedSymbol);
|
||||
portfolioTradesLots = LotAggregator.CombineLots(portfolioTrades);
|
||||
@@ -480,13 +489,14 @@ namespace PortfolioManager.ViewModels
|
||||
base.OnPropertyChanged("LeastSquares");
|
||||
base.OnPropertyChanged("GraphTitle");
|
||||
base.OnPropertyChanged("Title");
|
||||
// base.OnPropertyChanged("TradePoints");
|
||||
// base.OnPropertyChanged("Markers");
|
||||
// base.OnPropertyChanged("ZeroPoint");
|
||||
// base.OnPropertyChanged("ZeroPointMarkers");
|
||||
// base.OnPropertyChanged("StopLimit");
|
||||
// base.OnPropertyChanged("StopLimitMarkers");
|
||||
|
||||
base.OnPropertyChanged("TradePoints");
|
||||
base.OnPropertyChanged("ZeroPoint");
|
||||
base.OnPropertyChanged("StopLimits");
|
||||
|
||||
base.OnPropertyChanged("TradePointMarkers");
|
||||
base.OnPropertyChanged("ZeroPointMarkers");
|
||||
base.OnPropertyChanged("StopLimitMarkers");
|
||||
|
||||
base.OnPropertyChanged("InsiderTransactionPointDisposedSmall");
|
||||
base.OnPropertyChanged("InsiderTransactionPointDisposedMedium");
|
||||
@@ -496,7 +506,6 @@ namespace PortfolioManager.ViewModels
|
||||
base.OnPropertyChanged("InsiderTransactionPointAcquiredMedium");
|
||||
base.OnPropertyChanged("InsiderTransactionPointAcquiredLarge");
|
||||
|
||||
|
||||
// base.OnPropertyChanged("InsiderTransactionPointMarkersDisposedSmall");
|
||||
// base.OnPropertyChanged("InsiderTransactionPointMarkersDisposedMedium");
|
||||
// base.OnPropertyChanged("InsiderTransactionPointMarkersDisposedLarge");
|
||||
@@ -528,9 +537,6 @@ namespace PortfolioManager.ViewModels
|
||||
base.OnPropertyChanged("Symbols");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// ************************************************* C O M P O S I T E P R O P E R T I E S ********************************************
|
||||
@@ -609,10 +615,65 @@ namespace PortfolioManager.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
public CompositeDataSource TradePoints
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showTradeLabels) return Empty();
|
||||
return compositeDataSourceTradePoints;
|
||||
}
|
||||
}
|
||||
|
||||
public IImage TradePointMarkers
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showTradeLabels) return null;
|
||||
return ImageCache.GetInstance().GetImage(ImageCache.ImageType.YellowTriangleUp);
|
||||
}
|
||||
}
|
||||
|
||||
public CompositeDataSource ZeroPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showTradeLabels) return Empty();
|
||||
return compositeDataSourceZeroPoint;
|
||||
}
|
||||
}
|
||||
|
||||
public IImage ZeroPointMarkers
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showTradeLabels) return null;
|
||||
return ImageCache.GetInstance().GetImage(ImageCache.ImageType.BlueTriangleUp);
|
||||
}
|
||||
}
|
||||
|
||||
public CompositeDataSource StopLimits
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showTradeLabels) return Empty();
|
||||
return compositeDataSourceStopLimit;
|
||||
}
|
||||
}
|
||||
|
||||
public IImage StopLimitMarkers
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showTradeLabels) return null;
|
||||
return ImageCache.GetInstance().GetImage(ImageCache.ImageType.RedTriangleUp);
|
||||
}
|
||||
}
|
||||
|
||||
public CompositeDataSource InsiderTransactionPointDisposedSmall
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showInsiderTransactions) return Empty();
|
||||
return compositeDataSourceInsiderTransactionPointDisposedSmall;
|
||||
}
|
||||
}
|
||||
@@ -621,6 +682,7 @@ namespace PortfolioManager.ViewModels
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showInsiderTransactions) return Empty();
|
||||
return compositeDataSourceInsiderTransactionPointDisposedMedium;
|
||||
}
|
||||
}
|
||||
@@ -629,6 +691,7 @@ namespace PortfolioManager.ViewModels
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showInsiderTransactions) return Empty();
|
||||
return compositeDataSourceInsiderTransactionPointDisposedLarge;
|
||||
}
|
||||
}
|
||||
@@ -637,6 +700,7 @@ namespace PortfolioManager.ViewModels
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showInsiderTransactions) return Empty();
|
||||
return compositeDataSourceInsiderTransactionPointAcquiredSmall;
|
||||
}
|
||||
}
|
||||
@@ -645,6 +709,7 @@ namespace PortfolioManager.ViewModels
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showInsiderTransactions) return Empty();
|
||||
return compositeDataSourceInsiderTransactionPointAcquiredMedium;
|
||||
}
|
||||
}
|
||||
@@ -653,14 +718,12 @@ namespace PortfolioManager.ViewModels
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!showInsiderTransactions) return Empty();
|
||||
return compositeDataSourceInsiderTransactionPointAcquiredLarge;
|
||||
}
|
||||
}
|
||||
|
||||
// *********************************************************************************************************************************************
|
||||
|
||||
|
||||
|
||||
public void CreateCompositeDataSources()
|
||||
{
|
||||
if (null == prices || 0 == prices.Count) return;
|
||||
|
||||
@@ -8,6 +8,7 @@ using Avalonia.Threading;
|
||||
using Axiom.Utils;
|
||||
using MarketData.Cache;
|
||||
using MarketData.DataAccess;
|
||||
using PortfolioManager.Cache;
|
||||
using PortfolioManager.Command;
|
||||
|
||||
namespace PortfolioManager.ViewModels
|
||||
@@ -43,9 +44,10 @@ namespace PortfolioManager.ViewModels
|
||||
}
|
||||
try { LocalPriceCache.GetInstance().Dispose(); } catch (Exception) {; }
|
||||
try { GBPriceCache.GetInstance().Dispose(); } catch (Exception) {; }
|
||||
try { ImageCache.GetInstance().Dispose(); } catch (Exception) {; }
|
||||
//try{PriceCache.GetInstance().Dispose();}catch(Exception){;}
|
||||
// try{SymbolCache.GetInstance().Dispose();}catch(Exception){;}
|
||||
base.OnDispose();
|
||||
// try{SymbolCache.GetInstance().Dispose();}catch(Exception){;}
|
||||
base.OnDispose();
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, "[MainWindowViewModel:OnDispose] LEAVE");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user