ReadStyle ( ExcelTableReader.ExcelTableRow oRow, EdgeStyleConverter oEdgeStyleConverter, IEdge oEdge ) { Debug.Assert(oRow != null); Debug.Assert(oEdgeStyleConverter != null); AssertValid(); String sStyle; if ( !oRow.TryGetNonEmptyStringFromCell(EdgeTableColumnNames.Style, out sStyle) ) { return; } EdgeStyle eStyle; if ( !oEdgeStyleConverter.TryWorkbookToGraph(sStyle, out eStyle) ) { OnWorkbookFormatErrorWithDropDown(oRow, EdgeTableColumnNames.Style, "style"); } oEdge.SetValue(ReservedMetadataKeys.PerEdgeStyle, eStyle); }
//************************************************************************* // Constructor: ReadWorkbookContext() // /// <summary> /// Initializes a new instance of the <see cref="ReadWorkbookContext" /> /// class. /// </summary> //************************************************************************* public ReadWorkbookContext() { m_bIgnoreVertexLocations = true; m_bFillIDColumns = false; m_bPopulateVertexWorksheet = false; m_bReadEdgeWeights = false; m_bReadGroups = false; m_bReadVertexColorFromGroups = true; m_bReadVertexShapeFromGroups = true; m_bReadVertexLabels = false; m_bReadEdgeLabels = false; m_bReadGroupLabels = false; m_bReadVertexImages = false; m_oDefaultVertexImageSize = new Nullable<Single>(); m_eDefaultVertexShape = VertexShape.Disk; m_bReadAllEdgeAndVertexColumns = false; m_oGraphRectangle = Rectangle.FromLTRB(0, 0, 100, 100); m_oColorConverter2 = new ColorConverter2(); m_oBooleanConverter = new BooleanConverter(); m_oFontSizeConverter = new FontSizeConverter(); m_oEdgeWidthConverter = new EdgeWidthConverter(); m_oEdgeStyleConverter = new EdgeStyleConverter(); m_oVertexRadiusConverter = new VertexRadiusConverter(); m_oVertexLocationConverter = new VertexLocationConverter(m_oGraphRectangle); m_oVertexNameDictionary = new Dictionary<String, IVertex>(); m_oEdgeRowIDDictionary = new Dictionary<Int32, IIdentityProvider>(); m_oVertexRowIDDictionary = new Dictionary<Int32, IIdentityProvider>(); AssertValid(); }
ThisWorkbook_AttributesEditedInGraph ( Object sender, AttributesEditedEventArgs e ) { Debug.Assert(e != null); AssertValid(); // The key is the row ID stored in the table's ID column and the value // is the one-based row number relative to the worksheet. Dictionary<Int32, Int32> oRowIDDictionary; if ( e.EditedEdgeAttributes == null || !m_oSheets1And2Helper.TableExists || !m_oSheets1And2Helper.TryGetAllRowIDs(out oRowIDDictionary) ) { return; } Microsoft.Office.Interop.Excel.ListObject oEdgeTable = Edges.InnerObject; Globals.ThisWorkbook.ShowWaitCursor = true; // Get the columns that might need to be updated. These columns are // not required. Microsoft.Office.Interop.Excel.Range oColorColumnData, oWidthColumnData, oStyleColumnData, oAlphaColumnData, oVisibilityColumnData, oLabelColumnData, oLabelTextColorColumnData, oLabelFontSizeColumnData; Object [,] aoColorValues = null; Object [,] aoWidthValues = null; Object [,] aoStyleValues = null; Object [,] aoAlphaValues = null; Object [,] aoVisibilityValues = null; Object [,] aoLabelValues = null; Object [,] aoLabelTextColorValues = null; Object [,] aoLabelFontSizeValues = null; ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, EdgeTableColumnNames.Color, out oColorColumnData, out aoColorValues); ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, EdgeTableColumnNames.Width, out oWidthColumnData, out aoWidthValues); ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, EdgeTableColumnNames.Style, out oStyleColumnData, out aoStyleValues); ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, CommonTableColumnNames.Alpha, out oAlphaColumnData, out aoAlphaValues); ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, CommonTableColumnNames.Visibility, out oVisibilityColumnData, out aoVisibilityValues); ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, EdgeTableColumnNames.Label, out oLabelColumnData, out aoLabelValues); ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, EdgeTableColumnNames.LabelTextColor, out oLabelTextColorColumnData, out aoLabelTextColorValues); ExcelTableUtil.TryGetTableColumnDataAndValues(oEdgeTable, EdgeTableColumnNames.LabelFontSize, out oLabelFontSizeColumnData, out aoLabelFontSizeValues); ColorConverter2 oColorConverter2 = new ColorConverter2(); EdgeStyleConverter oEdgeStyleConverter = new EdgeStyleConverter(); EdgeVisibilityConverter oEdgeVisibilityConverter = new EdgeVisibilityConverter(); // Loop through the IDs of the edges whose attributes were edited // in the graph. EditedEdgeAttributes oEditedEdgeAttributes = e.EditedEdgeAttributes; foreach (Int32 iID in e.EdgeIDs) { // Look for the row that contains the ID. Int32 iRowOneBased; if ( !oRowIDDictionary.TryGetValue(iID, out iRowOneBased) ) { continue; } iRowOneBased -= oEdgeTable.Range.Row; if (oEditedEdgeAttributes.Color.HasValue && aoColorValues != null) { aoColorValues[iRowOneBased, 1] = oColorConverter2.GraphToWorkbook( oEditedEdgeAttributes.Color.Value); } if (oEditedEdgeAttributes.Width.HasValue && aoWidthValues != null) { aoWidthValues[iRowOneBased, 1] = oEditedEdgeAttributes.Width.Value.ToString(); } if (oEditedEdgeAttributes.Style.HasValue && aoStyleValues != null) { aoStyleValues[iRowOneBased, 1] = oEdgeStyleConverter.GraphToWorkbook( oEditedEdgeAttributes.Style.Value); } if (oEditedEdgeAttributes.Alpha.HasValue && aoAlphaValues != null) { aoAlphaValues[iRowOneBased, 1] = oEditedEdgeAttributes.Alpha.Value.ToString(); } if (oEditedEdgeAttributes.Visibility.HasValue && aoVisibilityValues != null) { aoVisibilityValues[iRowOneBased, 1] = oEdgeVisibilityConverter.GraphToWorkbook( oEditedEdgeAttributes.Visibility.Value); } if ( !String.IsNullOrEmpty(oEditedEdgeAttributes.Label) ) { aoLabelValues[iRowOneBased, 1] = oEditedEdgeAttributes.Label; } if (oEditedEdgeAttributes.LabelTextColor.HasValue && aoLabelTextColorValues != null) { aoLabelTextColorValues[iRowOneBased, 1] = oColorConverter2.GraphToWorkbook( oEditedEdgeAttributes.LabelTextColor.Value); } if (oEditedEdgeAttributes.LabelFontSize.HasValue && aoLabelFontSizeValues != null) { aoLabelFontSizeValues[iRowOneBased, 1] = oEditedEdgeAttributes.LabelFontSize.Value.ToString(); } } // Activate this worksheet first, because writing to an inactive // worksheet causes problems with the selection in Excel. ExcelActiveWorksheetRestorer oExcelActiveWorksheetRestorer = m_oSheets1And2Helper.GetExcelActiveWorksheetRestorer(); ExcelActiveWorksheetState oExcelActiveWorksheetState = oExcelActiveWorksheetRestorer.ActivateWorksheet(this.InnerObject); try { m_oSheets1And2Helper.SetColumnDataValues( oColorColumnData, aoColorValues, oWidthColumnData, aoWidthValues, oStyleColumnData, aoStyleValues, oAlphaColumnData, aoAlphaValues, oVisibilityColumnData, aoVisibilityValues, oLabelColumnData, aoLabelValues, oLabelTextColorColumnData, aoLabelTextColorValues, oLabelFontSizeColumnData, aoLabelFontSizeValues ); } finally { oExcelActiveWorksheetRestorer.Restore(oExcelActiveWorksheetState); } Globals.ThisWorkbook.ShowWaitCursor = false; }