void node_NodeSelected(LayerUITreeNode node)
        {
            if (callbacks != null)
            {
                Shape shape = (Shape)node.Tag;

                if (shape.Attributes != null && shape.Attributes.ItemArray.GetLength(0) > 0)
                {
                    Dictionary <String, String> rowData = new Dictionary <string, string>();
                    for (int r = 0; r < shape.Attributes.ItemArray.GetLength(0); r++)
                    {
                        rowData.Add(shape.Attributes.Table.Columns[r].ColumnName, shape.Attributes.ItemArray[r].ToString());
                    }
                    callbacks.ShowRowData(rowData);
                }
            }
        }
        void node_NodeSelected(LayerUITreeNode node)
        {
            if (callbacks != null)
            {
                ReferenceFrame frame = (ReferenceFrame)node.Tag;

                Dictionary <String, String> rowData = new Dictionary <string, string>();

                rowData["Name"]                  = frame.Name;
                rowData["SemiMajor Axis"]        = frame.SemiMajorAxis.ToString();
                rowData["SMA Units"]             = frame.SemiMajorAxisUnits.ToString();
                rowData["Inclination"]           = frame.Inclination.ToString();
                rowData["Eccentricity"]          = frame.Eccentricity.ToString();
                rowData["Long of Asc. Node"]     = frame.LongitudeOfAscendingNode.ToString();
                rowData["Argument Of Periapsis"] = frame.ArgumentOfPeriapsis.ToString();
                rowData["Epoch"]                 = frame.Epoch.ToString();
                rowData["Mean Daily Motion"]     = frame.MeanDailyMotion.ToString();
                rowData["Mean Anomoly at Epoch"] = frame.MeanAnomolyAtEpoch.ToString();
                callbacks.ShowRowData(rowData);
            }
        }