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;
        }