Ejemplo n.º 1
0
        AddEdgeWidthAttributesToDConnectorMotif
        (
            ExcelTemplateGroupInfo oGroup,
            Boolean bEdgeWidthColumnAutoFilled,
            AutoFillNumericRangeColumnResults oEdgeWidthResults,
            NumericRangeColumnAutoFillUserSettings oEdgeWidthDetails,
            Dictionary <Int32, Object> oEdgeWidthSourceDictionary,
            ReadWorkbookContext oReadWorkbookContext,
            CollapsedGroupAttributes oCollapsedGroupAttributes,
            Int32 iAnchorVertices
        )
        {
            Debug.Assert(oGroup != null);
            Debug.Assert(oEdgeWidthResults != null);
            Debug.Assert(oReadWorkbookContext != null);
            Debug.Assert(oCollapsedGroupAttributes != null);
            Debug.Assert(iAnchorVertices >= 0);

            // If the edge width column was autofilled, get the average width for
            // the edges incident to the two-connector motif's first anchor, then
            // its second anchor.  Otherwise, don't do anything.

            if (!bEdgeWidthColumnAutoFilled)
            {
                return;
            }

            for (Int32 iAnchorVertexIndex = 0;
                 iAnchorVertexIndex < iAnchorVertices;
                 iAnchorVertexIndex++)
            {
                Double dAverageEdgeWidth;

                if (TableColumnMapper.TryMapAverageNumber(

                        GetRowIDsToAverageForEdges(oGroup,
                                                   oCollapsedGroupAttributes, iAnchorVertexIndex),

                        oEdgeWidthSourceDictionary,
                        oEdgeWidthResults.SourceCalculationNumber1,
                        oEdgeWidthResults.SourceCalculationNumber2,
                        oEdgeWidthResults.DestinationNumber1,
                        oEdgeWidthResults.DestinationNumber2,
                        oEdgeWidthDetails.UseLogs,
                        out dAverageEdgeWidth
                        )
                    )
                {
                    oCollapsedGroupAttributes.Add(

                        CollapsedGroupAttributeKeys.GetAnchorVertexEdgeWidthKey(
                            iAnchorVertexIndex),

                        dAverageEdgeWidth
                        );
                }
            }
        }
Ejemplo n.º 2
0
        AddEdgeColorAttributesToDConnectorMotif
        (
            ExcelTemplateGroupInfo oGroup,
            Boolean bEdgeColorColumnAutoFilled,
            AutoFillColorColumnResults oEdgeColorResults,
            ColorColumnAutoFillUserSettings oEdgeColorDetails,
            Dictionary <Int32, Object> oEdgeColorSourceDictionary,
            ReadWorkbookContext oReadWorkbookContext,
            CollapsedGroupAttributes oCollapsedGroupAttributes,
            Int32 iAnchorVertices
        )
        {
            Debug.Assert(oGroup != null);
            Debug.Assert(oEdgeColorResults != null);
            Debug.Assert(oReadWorkbookContext != null);
            Debug.Assert(oCollapsedGroupAttributes != null);
            Debug.Assert(iAnchorVertices >= 0);

            // If the edge color column was autofilled, get the average color for
            // the edges incident to the D-connector motif's first anchor, then its
            // second anchor, and so on.  Otherwise, don't do anything.

            if (!bEdgeColorColumnAutoFilled)
            {
                return;
            }

            for (Int32 iAnchorVertexIndex = 0;
                 iAnchorVertexIndex < iAnchorVertices;
                 iAnchorVertexIndex++)
            {
                Color oAverageColor;

                if (TableColumnMapper.TryMapAverageColor(

                        GetRowIDsToAverageForEdges(oGroup,
                                                   oCollapsedGroupAttributes, iAnchorVertexIndex),

                        oEdgeColorSourceDictionary,
                        oEdgeColorResults.SourceCalculationNumber1,
                        oEdgeColorResults.SourceCalculationNumber2,
                        oEdgeColorResults.DestinationColor1,
                        oEdgeColorResults.DestinationColor2,
                        oEdgeColorDetails.UseLogs,
                        out oAverageColor)
                    )
                {
                    oCollapsedGroupAttributes.Add(

                        CollapsedGroupAttributeKeys.GetAnchorVertexEdgeColorKey(
                            iAnchorVertexIndex),

                        oReadWorkbookContext.ColorConverter2.GraphToWorkbook(
                            oAverageColor)
                        );
                }
            }
        }
Ejemplo n.º 3
0
        TestCollapsedAttributes()
        {
            // With vertex names.

            IVertex oAnchorVertex1 = new Vertex();
            IVertex oAnchorVertex2 = new Vertex();

            oAnchorVertex1.Name = "Name1";
            oAnchorVertex2.Name = "Name2";

            DConnectorMotif oDConnectorMotif = new DConnectorMotif(
                new List <IVertex>()
            {
                oAnchorVertex1, oAnchorVertex2
            });

            IVertex oSpanVertex1 = new Vertex();
            IVertex oSpanVertex2 = new Vertex();

            oDConnectorMotif.SpanVertices.Add(oSpanVertex1);
            oDConnectorMotif.SpanVertices.Add(oSpanVertex2);

            String sCollapsedAttributes = oDConnectorMotif.CollapsedAttributes;

            CollapsedGroupAttributes oCollapsedGroupAttributes =
                CollapsedGroupAttributes.FromString(sCollapsedAttributes);

            Assert.AreEqual(CollapsedGroupAttributeValues.DConnectorMotifType,
                            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.Type]);

            Assert.AreEqual("2", oCollapsedGroupAttributes[
                                CollapsedGroupAttributeKeys.AnchorVertices]);

            Assert.IsTrue(oCollapsedGroupAttributes.ContainsKey(
                              CollapsedGroupAttributeKeys.GetAnchorVertexNameKey(0)));

            Assert.IsTrue(oCollapsedGroupAttributes.ContainsKey(
                              CollapsedGroupAttributeKeys.GetAnchorVertexNameKey(1)));

            Assert.AreEqual("Name1", oCollapsedGroupAttributes[
                                CollapsedGroupAttributeKeys.GetAnchorVertexNameKey(0)]);

            Assert.AreEqual("Name2", oCollapsedGroupAttributes[
                                CollapsedGroupAttributeKeys.GetAnchorVertexNameKey(1)]);

            Assert.AreEqual("2", oCollapsedGroupAttributes[
                                CollapsedGroupAttributeKeys.SpanVertices]);

            Assert.IsTrue(oCollapsedGroupAttributes.ContainsKey(
                              CollapsedGroupAttributeKeys.SpanScale));

            Assert.AreEqual("1",
                            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.SpanScale]);
        }
Ejemplo n.º 4
0
        GetRowIDsToAverageForEdges
        (
            GroupInfo oGroup,
            CollapsedGroupAttributes oCollapsedGroupAttributes,
            Int32 iAnchorVertexIndex
        )
        {
            Debug.Assert(oGroup != null);
            Debug.Assert(oCollapsedGroupAttributes != null);
            Debug.Assert(iAnchorVertexIndex >= 0);

            List <Int32> oRowIDsOfRowsToAverage = new List <Int32>();

            String sAnchorVertexName;

            if (oCollapsedGroupAttributes.TryGetValue(

                    CollapsedGroupAttributeKeys.GetAnchorVertexNameKey(
                        iAnchorVertexIndex),

                    out sAnchorVertexName))
            {
                // The group's vertices are the span vertices.  Loop through them.

                foreach (IVertex oVertex in oGroup.Vertices)
                {
                    // We need to find the edge that is incident to the specified
                    // anchor vertex.

                    foreach (IEdge oIncidentEdge in oVertex.IncidentEdges)
                    {
                        IVertex oAdjacentVertex =
                            oIncidentEdge.GetAdjacentVertex(oVertex);

                        if (oAdjacentVertex.Name == sAnchorVertexName)
                        {
                            // The row ID is stored in the edge's Tag, as long as
                            // the edge row isn't hidden.

                            if (oIncidentEdge.Tag is Int32)
                            {
                                oRowIDsOfRowsToAverage.Add(
                                    (Int32)oIncidentEdge.Tag);
                            }

                            break;
                        }
                    }
                }
            }

            return(oRowIDsOfRowsToAverage);
        }
Ejemplo n.º 5
0
        TestCollapsedAttributes2()
        {
            // Without vertex names and with SpanScale set to a non-default value.

            IVertex oAnchorVertex1 = new Vertex();
            IVertex oAnchorVertex2 = new Vertex();

            DConnectorMotif oDConnectorMotif = new DConnectorMotif(
                new List <IVertex>()
            {
                oAnchorVertex1, oAnchorVertex2
            });

            IVertex oSpanVertex1 = new Vertex();
            IVertex oSpanVertex2 = new Vertex();

            oDConnectorMotif.SpanVertices.Add(oSpanVertex1);
            oDConnectorMotif.SpanVertices.Add(oSpanVertex2);

            oDConnectorMotif.SpanScale = 0.5;

            String sCollapsedAttributes = oDConnectorMotif.CollapsedAttributes;

            CollapsedGroupAttributes oCollapsedGroupAttributes =
                CollapsedGroupAttributes.FromString(sCollapsedAttributes);

            Assert.AreEqual(CollapsedGroupAttributeValues.DConnectorMotifType,
                            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.Type]);

            Assert.AreEqual("2", oCollapsedGroupAttributes[
                                CollapsedGroupAttributeKeys.AnchorVertices]);

            Assert.IsFalse(oCollapsedGroupAttributes.ContainsKey(
                               CollapsedGroupAttributeKeys.GetAnchorVertexNameKey(0)));

            Assert.IsFalse(oCollapsedGroupAttributes.ContainsKey(
                               CollapsedGroupAttributeKeys.GetAnchorVertexNameKey(1)));

            Assert.AreEqual("2", oCollapsedGroupAttributes[
                                CollapsedGroupAttributeKeys.SpanVertices]);

            Assert.IsTrue(oCollapsedGroupAttributes.ContainsKey(
                              CollapsedGroupAttributeKeys.SpanScale));

            Assert.AreEqual("0.5",
                            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.SpanScale]);
        }