public static IStockViewableSeries CreateInitialisedFrom(IStockViewableSeries aViewableSerie, StockSerie stockSerie) { if (!stockSerie.Initialise()) return null; IStockViewableSeries viewableSerie = null; switch (aViewableSerie.Type) { case ViewableItemType.Indicator: viewableSerie = stockSerie.GetIndicator(aViewableSerie.Name); break; case ViewableItemType.Decorator: viewableSerie = stockSerie.GetDecorator(aViewableSerie.Name, ((IStockDecorator)aViewableSerie).DecoratedItem); break; case ViewableItemType.PaintBar: viewableSerie = stockSerie.GetPaintBar(aViewableSerie.Name); break; case ViewableItemType.TrailStop: viewableSerie = stockSerie.GetTrailStop(aViewableSerie.Name); break; case ViewableItemType.Trail: viewableSerie = stockSerie.GetTrail(aViewableSerie.Name, ((IStockTrail)aViewableSerie).TrailedItem); break; default: break; } return viewableSerie; }
public ViewableItemNode(string name, NodeType type, ContextMenuStrip menuStrip, IStockViewableSeries par) : base(name, type, menuStrip) { this.ViewableItem = par; }
private static string AppendThemeLine(IStockViewableSeries indicator, string theme) { int index = -1; if (indicator.DisplayTarget == IndicatorDisplayTarget.PriceIndicator) { index = theme.IndexOf("@PriceIndicator"); theme = theme.Insert(index, indicator.ToThemeString() + System.Environment.NewLine); } else { if (indicator is IStockIndicator) { IStockIndicator stockIndicator = indicator as IStockIndicator; if (stockIndicator.HorizontalLines != null && stockIndicator.HorizontalLines.Count() > 0) { foreach (HLine hline in stockIndicator.HorizontalLines) { theme = theme.Replace("@Indicator" + indCount, "LINE|" + hline.Level.ToString() + "|" + GraphCurveType.PenToString(hline.LinePen) + System.Environment.NewLine + "@Indicator" + indCount); } } } if (indicator is IStockDecorator) { IStockDecorator decorator = indicator as IStockDecorator; IStockIndicator decoratedIndicator = StockIndicatorManager.CreateIndicator(decorator.DecoratedItem); theme = theme.Replace("@Indicator" + indCount, decoratedIndicator.ToThemeString() + System.Environment.NewLine + "@Indicator" + indCount); if (decoratedIndicator.HorizontalLines != null && decoratedIndicator.HorizontalLines.Count() > 0) { foreach (HLine hline in decoratedIndicator.HorizontalLines) { theme = theme.Replace("@Indicator" + indCount, "LINE|" + hline.Level.ToString() + "|" + GraphCurveType.PenToString(hline.LinePen) + System.Environment.NewLine + "@Indicator" + indCount); } } } theme = theme.Replace("@Indicator" + indCount, indicator.ToThemeString()); indCount++; } return theme; }