GetColumnNames
(
Microsoft.Office.Interop.Excel.Workbook oWorkbook,
ColumnGroups eColumnGroup
)
{
Debug.Assert(oWorkbook != null);
String [] asColumnNames = null;
switch (eColumnGroup)
{
case ColumnGroups.EdgeDoNotHide:
asColumnNames = new String [] {
EdgeTableColumnNames.Vertex1Name,
EdgeTableColumnNames.Vertex2Name,
};
break;
case ColumnGroups.EdgeVisualAttributes:
asColumnNames = new String [] {
EdgeTableColumnNames.Color,
EdgeTableColumnNames.Width,
EdgeTableColumnNames.Style,
CommonTableColumnNames.Alpha,
CommonTableColumnNames.Visibility,
};
break;
case ColumnGroups.EdgeLabels:
asColumnNames = new String [] {
EdgeTableColumnNames.Label,
EdgeTableColumnNames.LabelTextColor,
EdgeTableColumnNames.LabelFontSize,
};
break;
case ColumnGroups.EdgeGraphMetrics:
asColumnNames = new String [] {
EdgeTableColumnNames.IsReciprocated,
};
break;
case ColumnGroups.VertexDoNotHide:
asColumnNames = new String [] {
VertexTableColumnNames.VertexName,
};
break;
case ColumnGroups.VertexVisualAttributes:
asColumnNames = new String [] {
VertexTableColumnNames.Color,
VertexTableColumnNames.Shape,
VertexTableColumnNames.Radius,
CommonTableColumnNames.Alpha,
VertexTableColumnNames.ImageUri,
CommonTableColumnNames.Visibility,
};
break;
case ColumnGroups.VertexGraphMetrics:
asColumnNames = new String [] {
VertexTableColumnNames.Degree,
VertexTableColumnNames.InDegree,
VertexTableColumnNames.OutDegree,
VertexTableColumnNames.BetweennessCentrality,
VertexTableColumnNames.ClosenessCentrality,
VertexTableColumnNames.EigenvectorCentrality,
VertexTableColumnNames.PageRank,
VertexTableColumnNames.ClusteringCoefficient,
VertexTableColumnNames.ReciprocatedVertexPairRatio,
};
break;
case ColumnGroups.VertexLabels:
asColumnNames = new String [] {
VertexTableColumnNames.Label,
VertexTableColumnNames.LabelFillColor,
VertexTableColumnNames.LabelPosition,
VertexTableColumnNames.ToolTip,
};
break;
case ColumnGroups.VertexLayout:
asColumnNames = new String [] {
VertexTableColumnNames.LayoutOrder,
VertexTableColumnNames.X,
VertexTableColumnNames.Y,
VertexTableColumnNames.Locked,
VertexTableColumnNames.PolarR,
VertexTableColumnNames.PolarAngle,
};
break;
case ColumnGroups.EdgeInternalUse:
case ColumnGroups.VertexInternalUse:
asColumnNames = new String [] {
CommonTableColumnNames.ID,
CommonTableColumnNames.DynamicFilter,
};
break;
case ColumnGroups.EdgeOtherColumns:
case ColumnGroups.VertexOtherColumns:
case ColumnGroups.GroupOtherColumns:
asColumnNames = GetOtherColumnNames(oWorkbook, eColumnGroup);
break;
case ColumnGroups.GroupDoNotHide:
asColumnNames = new String [] {
GroupTableColumnNames.Name,
};
break;
case ColumnGroups.GroupVisualAttributes:
asColumnNames = new String [] {
GroupTableColumnNames.VertexColor,
GroupTableColumnNames.VertexShape,
CommonTableColumnNames.Visibility,
GroupTableColumnNames.Collapsed,
};
break;
case ColumnGroups.GroupLabels:
asColumnNames = new String [] {
GroupTableColumnNames.Label,
};
break;
case ColumnGroups.GroupLayout:
asColumnNames = new String [] {
GroupTableColumnNames.CollapsedX,
GroupTableColumnNames.CollapsedY,
};
break;
case ColumnGroups.GroupGraphMetrics:
asColumnNames = new String [] {
GroupTableColumnNames.Vertices,
GroupTableColumnNames.UniqueEdges,
GroupTableColumnNames.EdgesWithDuplicates,
GroupTableColumnNames.TotalEdges,
GroupTableColumnNames.SelfLoops,
GroupTableColumnNames.ReciprocatedVertexPairRatio,
GroupTableColumnNames.ReciprocatedEdgeRatio,
GroupTableColumnNames.ConnectedComponents,
GroupTableColumnNames.SingleVertexConnectedComponents,
GroupTableColumnNames.MaximumConnectedComponentVertices,
GroupTableColumnNames.MaximumConnectedComponentEdges,
GroupTableColumnNames.MaximumGeodesicDistance,
GroupTableColumnNames.AverageGeodesicDistance,
GroupTableColumnNames.GraphDensity,
};
break;
case ColumnGroups.GroupInternalUse:
asColumnNames = new String [] {
CommonTableColumnNames.ID,
GroupTableColumnNames.CollapsedAttributes,
};
break;
case ColumnGroups.GroupEdgeDoNotHide:
asColumnNames = new String [] {
GroupEdgeTableColumnNames.Group1Name,
GroupEdgeTableColumnNames.Group2Name,
};
break;
case ColumnGroups.GroupEdgeGraphMetrics:
asColumnNames = new String [] {
GroupEdgeTableColumnNames.Edges,
};
break;
default:
Debug.Assert(false);
break;
}
Debug.Assert(asColumnNames != null);
return (asColumnNames);
}