DrawGraph() public method

public DrawGraph ( ) : void
return void
Ejemplo n.º 1
0
        PopulateGraphFromFile()
        {
            IGraphAdapter oGraphAdapter = new SimpleGraphAdapter();

            /*
             * ( (Smrf.NodeXL.Visualization.Wpf.VertexDrawer)
             *  m_oNodeXLControl.VertexDrawer ).Radius = 5;
             */

            m_oNodeXLControl.Graph = oGraphAdapter.LoadGraphFromFile(
                "..\\..\\SampleGraph.txt");

            AddToolTipsToVertices();

            m_oNodeXLControl.DrawGraph(true);
        }
    ReadDynamicFilterColumn
    (
        DynamicFilterDialog oDynamicFilterDialog,
        Microsoft.Office.Interop.Excel.Workbook oWorkbook,
        NodeXLControl oNodeXLControl,
        String sWorksheetName,
        String sTableName,
        Dictionary<Int32, IIdentityProvider> oRowIDDictionary,
        HashSet<Int32> oFilteredIDs,
        EdgeOrVertexCanBeMadeVisibleHandler oOnEdgeOrVertexCanBeMadeVisible,
        EdgeOrVertexFilteredHandler oOnEdgeOrVertexFiltered,
        Boolean bForceRedraw
    )
    {
        Debug.Assert(oDynamicFilterDialog != null);
        Debug.Assert(oWorkbook != null);
        Debug.Assert(oNodeXLControl != null);
        Debug.Assert( !String.IsNullOrEmpty(sWorksheetName) );
        Debug.Assert( !String.IsNullOrEmpty(sTableName) );
        Debug.Assert(oRowIDDictionary != null);
        Debug.Assert(oFilteredIDs != null);
        Debug.Assert(oOnEdgeOrVertexCanBeMadeVisible != null);
        Debug.Assert(oOnEdgeOrVertexFiltered != null);

        if (oNodeXLControl.IsLayingOutGraph)
        {
            return;
        }

        oFilteredIDs.Clear();

        // The dynamic filter column on the edge or vertex table contains
        // Booleans indicating whether the edge or vertex should be made
        // visible.

        // Get the data in the ID and dynamic filter columns.

        Object [,] oIDColumnValues, oDynamicFilterColumnValues;

        if ( !TryGetIDAndDynamicFilterValues(oWorkbook, sWorksheetName,
            sTableName, out oIDColumnValues, out oDynamicFilterColumnValues) )
        {
            return;
        }

        HashSet<Int32> oFilteredVertexIDs =
            GetFilteredVertexIDs(oDynamicFilterDialog);

        Int32 iRows = oIDColumnValues.GetUpperBound(0);
        Debug.Assert( iRows == oDynamicFilterColumnValues.GetUpperBound(0) );

        for (Int32 iOneBasedRow = 1; iOneBasedRow <= iRows; iOneBasedRow++)
        {
            Object oID = oIDColumnValues[iOneBasedRow, 1];

            Object oDynamicFilter =
                oDynamicFilterColumnValues[iOneBasedRow, 1];

            IIdentityProvider oEdgeOrVertex;

            if (
                oID is Double
                &&
                oRowIDDictionary.TryGetValue( (Int32)(Double)oID,
                    out oEdgeOrVertex )
                &&
                oDynamicFilter is Boolean
                )
            {
                Debug.Assert(oEdgeOrVertex is IMetadataProvider);

                IMetadataProvider oEdgeOrVertex2 =
                    (IMetadataProvider)oEdgeOrVertex;

                Boolean bMakeVisible = (Boolean)oDynamicFilter;

                if (!bMakeVisible)
                {
                    oFilteredIDs.Add(oEdgeOrVertex.ID);
                }
                else if ( !oOnEdgeOrVertexCanBeMadeVisible(
                    oEdgeOrVertex,
                    GetFilteredEdgeIDs(oDynamicFilterDialog),
                    oFilteredVertexIDs
                    ) )
                {
                    bMakeVisible = false;
                }

                // Filter or make visible the edge or vertex, then call the
                // handler specified by the caller.

                DynamicallyFilterEdgeOrVertex(oEdgeOrVertex2, bMakeVisible);

                oOnEdgeOrVertexFiltered(oEdgeOrVertex2, bMakeVisible,
                    oDynamicFilterDialog);
            }
        }

        if (bForceRedraw)
        {
            oNodeXLControl.DrawGraph();
        }
    }
    ReadFilteredAlpha
    (
        DynamicFilterDialog dynamicFilterDialog,
        NodeXLControl nodeXLControl,
        Boolean forceRedraw
    )
    {
        Debug.Assert(dynamicFilterDialog != null);
        Debug.Assert(nodeXLControl != null);

        nodeXLControl.FilteredAlpha =
            ( new AlphaConverter() ).WorkbookToGraphAsByte(
                dynamicFilterDialog.FilteredAlpha);

        if (forceRedraw)
        {
            nodeXLControl.DrawGraph();
        }
    }