ActivateRelevantWorksheet
(
IEnumerable<GraphMetricColumn> graphMetricColumns,
Microsoft.Office.Interop.Excel.Workbook workbook
)
{
Debug.Assert(graphMetricColumns != null);
Debug.Assert(workbook != null);
AssertValid();
Boolean bEdgeMetricCalculated = false;
Boolean bVertexMetricCalculated = false;
Boolean bOverallMetricsCalculated = false;
Boolean bGroupsCalculated = false;
Boolean bGroupMetricCalculated = false;
Boolean bWordMetricCalculated = false;
Boolean bTopNByMetricCalculated = false;
Boolean bShowGraphMetricColumnGroups = false;
foreach (GraphMetricColumn oGraphMetricColumn in graphMetricColumns)
{
switch (oGraphMetricColumn.WorksheetName)
{
case WorksheetNames.Edges:
bEdgeMetricCalculated = true;
bShowGraphMetricColumnGroups = true;
break;
case WorksheetNames.Vertices:
bVertexMetricCalculated = true;
bShowGraphMetricColumnGroups = true;
break;
case WorksheetNames.Groups:
if (oGraphMetricColumn.ColumnName ==
GroupTableColumnNames.Name)
{
bGroupsCalculated = true;
}
else if (oGraphMetricColumn.ColumnName ==
GroupTableColumnNames.Vertices)
{
bGroupMetricCalculated = true;
bShowGraphMetricColumnGroups = true;
}
break;
case WorksheetNames.OverallMetrics:
bOverallMetricsCalculated = true;
break;
case WorksheetNames.WordCounts:
case WorksheetNames.WordPairCounts:
bWordMetricCalculated = true;
break;
case WorksheetNames.TopNByMetrics:
bTopNByMetricCalculated = true;
break;
default:
break;
}
}
if (bShowGraphMetricColumnGroups)
{
ColumnGroupManager.ShowOrHideColumnGroups(workbook,
ColumnGroups.EdgeGraphMetrics |
ColumnGroups.VertexGraphMetrics |
ColumnGroups.GroupGraphMetrics |
ColumnGroups.GroupEdgeGraphMetrics,
true, true);
}
// The worksheet to activate should be the one corresponding to the
// bottommost checked item in the GraphMetricsDialog.
String sWorksheetNameToActivate = null;
if (bTopNByMetricCalculated)
{
sWorksheetNameToActivate = WorksheetNames.TopNByMetrics;
}
else if (bWordMetricCalculated)
{
sWorksheetNameToActivate = WorksheetNames.WordCounts;
}
else if (bOverallMetricsCalculated)
{
sWorksheetNameToActivate = WorksheetNames.OverallMetrics;
}
else if (bGroupsCalculated || bGroupMetricCalculated)
{
sWorksheetNameToActivate = WorksheetNames.Groups;
}
else if (bEdgeMetricCalculated)
{
sWorksheetNameToActivate = WorksheetNames.Edges;
}
else if (bVertexMetricCalculated)
{
sWorksheetNameToActivate = WorksheetNames.Vertices;
}
Worksheet oWorksheetToActivate;
if (
sWorksheetNameToActivate != null
&&
ExcelUtil.TryGetWorksheet(workbook, sWorksheetNameToActivate,
out oWorksheetToActivate)
)
{
ExcelUtil.ActivateWorksheet(oWorksheetToActivate);
}
}