public static TreeNode AddChannel(Sequence4 seq, TreeNode parentNode, int channelIndex, bool selected) { string nodeText = seq.channels[channelIndex].name; TreeNode channelNode = parentNode.Nodes.Add(nodeText); ChanInfo nodeTag = new ChanInfo(); nodeTag.tableType = tableType.channel; nodeTag.objIndex = channelIndex; nodeTag.savedIndex = seq.channels[channelIndex].savedIndex; nodeTag.nodeIndex = nodeIndex; nodeIndex++; channelNode.Tag = nodeTag; //channelNode.ImageIndex = imlTreeIcons.Images.IndexOfKey("Channel"); //channelNode.SelectedImageIndex = imlTreeIcons.Images.IndexOfKey("Channel"); //channelNode.ImageKey = ICONchannel; //channelNode.SelectedImageKey = ICONchannel; ImageList icons = parentNode.TreeView.ImageList; int iconIndex = ColorIcon(icons, seq.channels[channelIndex].color); channelNode.ImageIndex = iconIndex; channelNode.SelectedImageIndex = iconIndex; return(channelNode); }
public static void FillChannels(TreeView tree, Sequence4 seq, List <List <TreeNode> > siNodes, bool selected, bool includeRGB) { //TODO: 'selected' not implemented yet tree.Nodes.Clear(); //ChanInfo tagInfo = new ChanInfo(); string nodeText = ""; ChanInfo nodeTag = new ChanInfo(); nodeIndex = 1; int listSize = seq.highestSavedIndex + seq.tracks.Count + 1; //Array.Resize(ref siNodes, listSize); // TEMPORARY, FOR DEBUGGING int tcount = 0; int gcount = 0; int rcount = 0; int ccount = 0; const string ERRproc = " in FillChannels("; const string ERRtrk = "), in Track #"; const string ERRitem = ", Item #"; const string ERRline = ", Line #"; for (int n = 0; n < listSize; n++) { //siNodes[n] = null; //siNodes[n] = new List<TreeNode>(); siNodes.Add(new List <TreeNode>()); } for (int t = 0; t < seq.tracks.Count; t++) { try { int tNo = t + 1; //nodeText = "Track " + tNo.ToString() + ":" + seq.tracks[t].name; nodeTag = new ChanInfo(); nodeText = seq.tracks[t].name; TreeNode trackNode = tree.Nodes.Add(nodeText); nodeTag.tableType = tableType.track; nodeTag.objIndex = t; nodeTag.nodeIndex = nodeIndex; nodeTag.savedIndex = seq.highestSavedIndex + t; nodeIndex++; trackNode.Tag = nodeTag; List <TreeNode> qlist; trackNode.ImageKey = ICONtrack; trackNode.SelectedImageKey = ICONtrack; qlist = siNodes[nodeTag.savedIndex]; qlist.Add(trackNode); for (int ti = 0; ti < seq.tracks[t].itemSavedIndexes.Count; ti++) { try { int si = seq.tracks[t].itemSavedIndexes[ti]; if (seq.savedIndexes[si] != null) { if (seq.savedIndexes[si].objType == tableType.channelGroup) { TreeNode groupNode = AddGroup(seq, trackNode, seq.savedIndexes[si].objIndex, siNodes, selected, includeRGB); //AddNode(siNodes[si], groupNode); qlist = siNodes[si]; qlist.Add(groupNode); gcount++; //siNodes[si].Add(groupNode); } if (seq.savedIndexes[si].objType == tableType.rgbChannel) { TreeNode rgbNode = AddRGBchannel(seq, trackNode, seq.savedIndexes[si].objIndex, siNodes, selected, includeRGB); //AddNode(siNodes[si], rgbNode); //siNodes[si].Add(rgbNode); qlist = siNodes[si]; qlist.Add(rgbNode); rcount++; } if (seq.savedIndexes[si].objType == tableType.channel) { TreeNode channelNode = AddChannel(seq, trackNode, seq.savedIndexes[si].objIndex, selected); //AddNode(siNodes[si], channelNode); //siNodes[si].Add(channelNode); qlist = siNodes[si]; qlist.Add(channelNode); ccount++; } } // end not null } // end try catch (System.NullReferenceException ex) { StackTrace st = new StackTrace(ex, true); StackFrame sf = st.GetFrame(st.FrameCount - 1); string emsg = ex.ToString(); emsg += ERRproc + seq.filename + ERRtrk + t.ToString() + ERRitem + ti.ToString(); emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG System.Diagnostics.Debugger.Break(); #endif utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); } catch (System.InvalidCastException ex) { StackTrace st = new StackTrace(ex, true); StackFrame sf = st.GetFrame(st.FrameCount - 1); string emsg = ex.ToString(); emsg += ERRproc + seq.filename + ERRtrk + t.ToString() + ERRitem + ti.ToString(); emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG System.Diagnostics.Debugger.Break(); #endif utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); } catch (Exception ex) { StackTrace st = new StackTrace(ex, true); StackFrame sf = st.GetFrame(st.FrameCount - 1); string emsg = ex.ToString(); emsg += ERRproc + seq.filename + ERRtrk + t.ToString() + ERRitem + ti.ToString(); emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG System.Diagnostics.Debugger.Break(); #endif utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); } } // end loop thru track items } // end try catch (System.NullReferenceException ex) { StackTrace st = new StackTrace(ex, true); StackFrame sf = st.GetFrame(st.FrameCount - 1); string emsg = ex.ToString(); emsg += ERRproc + seq.filename + ERRtrk + t.ToString(); emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG System.Diagnostics.Debugger.Break(); #endif utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); } catch (System.InvalidCastException ex) { StackTrace st = new StackTrace(ex, true); StackFrame sf = st.GetFrame(st.FrameCount - 1); string emsg = ex.ToString(); emsg += ERRproc + seq.filename + ERRtrk + t.ToString(); emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG System.Diagnostics.Debugger.Break(); #endif utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); } catch (Exception ex) { StackTrace st = new StackTrace(ex, true); StackFrame sf = st.GetFrame(st.FrameCount - 1); string emsg = ex.ToString(); emsg += ERRproc + seq.filename + ERRtrk + t.ToString(); emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG System.Diagnostics.Debugger.Break(); #endif utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); } } // end loop thru tracks int x = 1; // Check ccount, rcount, gcount } // end fillOldChannels
public static TreeNode AddRGBchannel(Sequence4 seq, TreeNode parentNode, int RGBIndex, List <List <TreeNode> > siNodes, bool selected, bool includeSubChannels) { List <TreeNode> qlist; string nodeText = seq.rgbChannels[RGBIndex].name; TreeNode channelNode = parentNode.Nodes.Add(nodeText); ChanInfo nodeTag = new ChanInfo(); nodeTag.tableType = tableType.rgbChannel; nodeTag.objIndex = RGBIndex; nodeTag.savedIndex = seq.rgbChannels[RGBIndex].savedIndex; nodeTag.nodeIndex = nodeIndex; nodeIndex++; channelNode.Tag = nodeTag; channelNode.ImageKey = ICONrgbChannel; channelNode.SelectedImageKey = ICONrgbChannel; if (includeSubChannels) { // * * R E D S U B C H A N N E L * * int ci = seq.rgbChannels[RGBIndex].redChannelObjIndex; nodeText = seq.channels[ci].name; TreeNode colorNode = channelNode.Nodes.Add(nodeText); nodeTag = new ChanInfo(); nodeTag.tableType = tableType.channel; nodeTag.objIndex = ci; nodeTag.savedIndex = seq.channels[ci].savedIndex; nodeTag.nodeIndex = nodeIndex; nodeIndex++; colorNode.Tag = nodeTag; colorNode.ImageKey = ICONredChannel; colorNode.SelectedImageKey = ICONredChannel; qlist = siNodes[seq.channels[ci].savedIndex]; qlist.Add(colorNode); // * * G R E E N S U B C H A N N E L * * ci = seq.rgbChannels[RGBIndex].grnChannelObjIndex; nodeText = seq.channels[ci].name; colorNode = channelNode.Nodes.Add(nodeText); nodeTag = new ChanInfo(); nodeTag.tableType = tableType.channel; nodeTag.objIndex = ci; nodeTag.savedIndex = seq.channels[ci].savedIndex; nodeTag.nodeIndex = nodeIndex; nodeIndex++; colorNode.Tag = nodeTag; colorNode.ImageKey = ICONgrnChannel; colorNode.SelectedImageKey = ICONgrnChannel; qlist = siNodes[seq.channels[ci].savedIndex]; qlist.Add(colorNode); // * * B L U E S U B C H A N N E L * * ci = seq.rgbChannels[RGBIndex].bluChannelObjIndex; nodeText = seq.channels[ci].name; colorNode = channelNode.Nodes.Add(nodeText); nodeTag = new ChanInfo(); nodeTag.tableType = tableType.channel; nodeTag.objIndex = ci; nodeTag.savedIndex = seq.channels[ci].savedIndex; nodeTag.nodeIndex = nodeIndex; nodeIndex++; colorNode.Tag = nodeTag; colorNode.ImageKey = ICONbluChannel; colorNode.SelectedImageKey = ICONbluChannel; qlist = siNodes[seq.channels[ci].savedIndex]; qlist.Add(colorNode); } // end includeSubChannels return(channelNode); }
} // end fillOldChannels public static TreeNode AddGroup(Sequence4 seq, TreeNode parentNode, int groupIndex, List <List <TreeNode> > siNodes, bool selected, bool includeRGB) { string nodeText = seq.channelGroups[groupIndex].name; TreeNode groupNode = parentNode.Nodes.Add(nodeText); ChanInfo nodeTag = new ChanInfo(); nodeTag.tableType = tableType.channelGroup; nodeTag.objIndex = groupIndex; nodeTag.savedIndex = seq.channelGroups[groupIndex].savedIndex; nodeTag.nodeIndex = nodeIndex; nodeIndex++; groupNode.Tag = nodeTag; groupNode.ImageKey = ICONchannelGroup; groupNode.SelectedImageKey = ICONchannelGroup; groupNode.ImageKey = ICONchannelGroup; groupNode.SelectedImageKey = ICONchannelGroup; List <TreeNode> qlist; const string ERRproc = " in FillChannels-AddGroup("; const string ERRgrp = "), in Group #"; const string ERRitem = ", Item #"; const string ERRline = ", Line #"; for (int gi = 0; gi < seq.channelGroups[groupIndex].itemSavedIndexes.Count; gi++) { try { int si = seq.channelGroups[groupIndex].itemSavedIndexes[gi]; if (seq.savedIndexes[si].objType == tableType.channelGroup) { TreeNode subGroupNode = AddGroup(seq, groupNode, seq.savedIndexes[si].objIndex, siNodes, selected, includeRGB); qlist = siNodes[si]; qlist.Add(subGroupNode); } if (seq.savedIndexes[si].objType == tableType.channel) { TreeNode channelNode = AddChannel(seq, groupNode, seq.savedIndexes[si].objIndex, selected); qlist = siNodes[si]; qlist.Add(channelNode); } if (seq.savedIndexes[si].objType == tableType.rgbChannel) { TreeNode rgbChannelNode = AddRGBchannel(seq, groupNode, seq.savedIndexes[si].objIndex, siNodes, selected, includeRGB); qlist = siNodes[si]; qlist.Add(rgbChannelNode); } } // end try catch (Exception ex) { StackTrace st = new StackTrace(ex, true); StackFrame sf = st.GetFrame(st.FrameCount - 1); string emsg = ex.ToString(); emsg += ERRproc + seq.filename + ERRgrp + groupIndex.ToString() + ERRitem + gi.ToString(); emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG Debugger.Break(); #endif utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); } // end catch } // End loop thru items return(groupNode); } // end AddGroup