private void InitializeTreeView() { StockNode treeNode1; foreach (string entry in this.theme.Keys) { if (entry.ToUpper().EndsWith("GRAPH")) { GraphNode treeNode = new GraphNode(entry, this.graphMenuStrip, Color.White, Color.LightGray, true, Color.LightGray, GraphChartMode.BarChart); if (entry.ToUpper().Contains("VOLUME")) { treeNode.ImageKey = "VH"; treeNode.SelectedImageKey = "VH"; } this.treeView1.Nodes.Add(treeNode); foreach (string line in this.theme[entry]) { try { string[] fields = line.Split('|'); switch (fields[0].ToUpper()) { case "GRAPH": string[] colorItem = fields[1].Split(':'); treeNode.GraphBackgroundColor = Color.FromArgb(int.Parse(colorItem[0]), int.Parse(colorItem[1]), int.Parse(colorItem[2]), int.Parse(colorItem[3])); colorItem = fields[2].Split(':'); treeNode.GraphTextBackgroundColor = Color.FromArgb(int.Parse(colorItem[0]), int.Parse(colorItem[1]), int.Parse(colorItem[2]), int.Parse(colorItem[3])); treeNode.GraphShowGrid = bool.Parse(fields[3]); colorItem = fields[4].Split(':'); treeNode.GraphGridColor = Color.FromArgb(int.Parse(colorItem[0]), int.Parse(colorItem[1]), int.Parse(colorItem[2]), int.Parse(colorItem[3])); treeNode.GraphMode = (GraphChartMode)Enum.Parse(typeof(GraphChartMode), fields[5]); if (treeNode.Text.ToUpper() == "CLOSEGRAPH") { if (fields.Length >= 7) { treeNode.SecondaryPen = GraphCurveType.PenFromString(fields[6]); } else { treeNode.SecondaryPen = new Pen(Color.DarkGoldenrod, 1); } } break; case "DATA": if (treeNode.Text.ToUpper() == "CLOSEGRAPH") { if (fields[1] == "CLOSE") { treeNode1 = new CurveNode(fields[1], null, GraphCurveType.PenFromString(fields[2]), bool.Parse(fields[3])); treeNode.Nodes.Add(treeNode1); } else { if (bool.Parse(fields[3])) // Normaly Other than close is not visible... { treeNode1 = new CurveNode(fields[1], null, GraphCurveType.PenFromString(fields[2]), bool.Parse(fields[3])); treeNode.Nodes.Add(treeNode1); } } } else { if (fields[1] != "VOLUME" && bool.Parse(fields[3])) // Normaly Other than close is not visible... { treeNode1 = new CurveNode(fields[1], null, GraphCurveType.PenFromString(fields[2]), bool.Parse(fields[3])); treeNode.Nodes.Add(treeNode1); } } break; case "INDICATOR": { IStockIndicator stockIndicator = (IStockIndicator)StockViewableItemsManager.GetViewableItem(line); treeNode1 = new IndicatorNode(stockIndicator.Name, this.indicatorMenuStrip, stockIndicator); for (int i = 0; i < stockIndicator.SeriesCount; i++) { CurveNode curveNode = new CurveNode(stockIndicator.SerieNames[i], null, stockIndicator.SeriePens[i], true, stockIndicator.SerieVisibility[i]); treeNode1.Nodes.Add(curveNode); curveNode.ImageKey = treeNode1.ImageKey; curveNode.SelectedImageKey = treeNode1.SelectedImageKey; } treeNode.Nodes.Add(treeNode1); } break; case "PAINTBAR": { IStockPaintBar stockPaintBar = (IStockPaintBar)StockViewableItemsManager.GetViewableItem(line); treeNode1 = new PaintBarsNode(stockPaintBar.Name, this.indicatorMenuStrip, stockPaintBar); for (int i = 0; i < stockPaintBar.SeriesCount; i++) { CurveNode curveNode = new CurveNode(stockPaintBar.SerieNames[i], null, stockPaintBar.SeriePens[i], true, stockPaintBar.SerieVisibility[i]); treeNode1.Nodes.Add(curveNode); curveNode.ImageKey = treeNode1.ImageKey; curveNode.SelectedImageKey = treeNode1.SelectedImageKey; } treeNode.Nodes.Add(treeNode1); } break; case "TRAILSTOP": { IStockTrailStop stockTrailStop = (IStockTrailStop)StockViewableItemsManager.GetViewableItem(line); treeNode1 = new TrailStopsNode(stockTrailStop.Name, this.indicatorMenuStrip, stockTrailStop); for (int i = 0; i < stockTrailStop.SeriesCount; i++) { CurveNode curveNode = new CurveNode(stockTrailStop.SerieNames[i], null, stockTrailStop.SeriePens[i], false, true); treeNode1.Nodes.Add(curveNode); curveNode.ImageKey = treeNode1.ImageKey; curveNode.SelectedImageKey = treeNode1.SelectedImageKey; } treeNode.Nodes.Add(treeNode1); } break; case "DECORATOR": { IStockDecorator stockDecorator = (IStockDecorator)StockViewableItemsManager.GetViewableItem(line); treeNode1 = new DecoratorNode(stockDecorator.Name, this.indicatorMenuStrip, stockDecorator); for (int i = 0; i < stockDecorator.SeriesCount; i++) { treeNode1.Nodes.Add(new CurveNode(stockDecorator.SerieNames[i], null, stockDecorator.SeriePens[i], true, stockDecorator.SerieVisibility[i])); } for (int i = 0; i < stockDecorator.EventCount; i++) { treeNode1.Nodes.Add(new EventNode(stockDecorator.EventNames[i], null, stockDecorator.EventPens[i], true, stockDecorator.EventVisibility[i])); } foreach (TreeNode childNode in treeNode.Nodes) { if (childNode.Text == stockDecorator.DecoratedItem) { childNode.Nodes.Add(treeNode1); break; } } } break; case "TRAIL": { IStockTrail stockTrail = (IStockTrail)StockViewableItemsManager.GetViewableItem(line); treeNode1 = new TrailNode(stockTrail.Name, this.indicatorMenuStrip, stockTrail); for (int i = 0; i < stockTrail.SeriesCount; i++) { treeNode1.Nodes.Add(new CurveNode(stockTrail.SerieNames[i], null, stockTrail.SeriePens[i], true, true)); } foreach (TreeNode childNode in treeNode.Nodes) { if (childNode.Text == stockTrail.TrailedItem) { childNode.Nodes.Add(treeNode1); break; } } } break; case "LINE": treeNode.Nodes.Add(new LineNode("LINE_" + fields[1], this.indicatorMenuStrip, GraphCurveType.PenFromString(fields[2]), float.Parse(fields[1]))); break; default: continue; } } catch (System.Exception e) { StockLog.Write(e); } } } } foreach (TreeNode node in this.treeView1.Nodes) { node.Expand(); } this.treeView1.SelectedNode = treeView1.Nodes[0]; }
private void addPaintBarsToolStripMenuItem_Click(object sender, EventArgs e) { AddPaintBarDlg addDlg; StockNode stockNode = (StockNode)this.treeView1.SelectedNode; switch (stockNode.Text) { case "CloseGraph": addDlg = new AddPaintBarDlg(); break; default: return; } if (addDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // Only one paint bar per graph int index = 0; bool found = false; foreach (StockNode node in stockNode.Nodes) { if (node.Type == NodeType.PaintBars) { found = true; break; } index++; } if (found) { stockNode.Nodes.RemoveAt(index); } // Add new paint bar IStockPaintBar stockPaintBar = StockPaintBarManager.CreatePaintBar(addDlg.PaintBarName); StockNode paintBarNode = new PaintBarsNode(stockPaintBar.Name, this.indicatorMenuStrip, stockPaintBar); stockNode.Nodes.Add(paintBarNode); int i = 0; foreach (string paintBarName in stockPaintBar.SerieNames) { paintBarNode.Nodes.Add(new CurveNode(paintBarName, null, stockPaintBar.SeriePens[i], stockPaintBar.SerieVisibility[i])); i++; } this.treeView1.SelectedNode = paintBarNode; paintBarNode.Expand(); } }