示例#1
0
        /// <summary>
        /// Setup
        /// </summary>
        /// <param name="view"></param>
        /// <param name="colorBy"></param>

        public void Setup(
            ViewManager view,
            ShapeDimension shapeBy,
            ContextMenuStrip shapeMenu)
        {
            InSetup = true;

            View    = view;
            ShapeBy = shapeBy;

            ShapeTypeMenu = shapeMenu;
            SetupFixedShapeButton();
            ShapeColumnSelector.Setup(View.BaseQuery, shapeBy.QueryColumn);             // setup fieldSelector
            SetupShapeSchemeGrid();

            if (ShapeColumnSelector.QueryColumn != null)
            {
                ShapeByColumn.Checked = true;
            }
            else
            {
                ShapeByFixedShape.Checked = true;
            }

            InSetup = false;
            return;
        }
示例#2
0
文件: Shape.cs 项目: chrinide/bohrium
        /// <summary>
        /// Constructs an N-dimensional array
        /// </summary>
        /// <param name="lengths">The number of elements in each dimension</param>
        /// <param name="offset">The offset in elements of the base array where data starts</param>
        /// <param name="strides">The number of elements in each dimension, can be null</param>
        public Shape(long[] lengths, long offset = 0, long[] strides = null)
        {
            if (lengths == null)
            {
                throw new ArgumentNullException("dimensionsizes");
            }
            if (lengths.LongLength <= 0 || lengths.Any(x => x <= 0))
            {
                throw new ArgumentOutOfRangeException("dimensionsizes", string.Format("The lengths have a zero size element: {0}", lengths));
            }
            if (offset < 0)
            {
                throw new ArgumentOutOfRangeException("offset", string.Format("The offset cannot be negative: {0}", offset));
            }

            if (strides == null)
            {
                strides = new long[lengths.LongLength];
                strides[lengths.LongLength - 1] = 1;

                for (long i = strides.LongLength - 2; i >= 0; i--)
                {
                    strides[i] = strides[i + 1] * lengths[i + 1];
                }
            }
            else if (lengths.LongLength != strides.LongLength || strides.Any(x => x < 0))
            {
                throw new ArgumentException("strides");
            }

            this.Offset = offset;

            m_dimensions = new ShapeDimension[lengths.LongLength];
            for (long i = lengths.LongLength - 1; i >= 0; i--)
            {
                m_dimensions[i] = new ShapeDimension(lengths[i], strides[i]);
            }

            //Calculate how much space is required
            Length = CalculateSpaceRequired() + this.Offset;
        }
示例#3
0
文件: Shape.cs 项目: omegahm/bohrium
        /// <summary>
        /// Constructs an N-dimensional array
        /// </summary>
        /// <param name="dimensions">The length and stride for each dimension</param>
        /// <param name="offset">The offset in elements of the base array where data starts</param>
        public Shape(ShapeDimension[] dimensions, long offset = 0)
        {
            if (dimensions == null)
                throw new ArgumentNullException("dimensions");
            if (dimensions.LongLength <= 0 || dimensions.Any(x => x.Length <= 0 || x.Stride < 0))
                throw new ArgumentOutOfRangeException("dimensions");
            if (offset < 0)
                throw new ArgumentOutOfRangeException("offset");

            this.Offset = offset;
            m_dimensions = dimensions;
            Length = CalculateSpaceRequired() + this.Offset;
        }
示例#4
0
文件: Shape.cs 项目: omegahm/bohrium
        /// <summary>
        /// Constructs an N-dimensional array
        /// </summary>
        /// <param name="lengths">The number of elements in each dimension</param>
        /// <param name="offset">The offset in elements of the base array where data starts</param>
        /// <param name="strides">The number of elements in each dimension, can be null</param>
        public Shape(long[] lengths, long offset = 0, long[] strides = null)
        {
            if (lengths == null)
                throw new ArgumentNullException("dimensionsizes");
            if (lengths.LongLength <= 0 || lengths.Any(x => x <= 0))
                throw new ArgumentOutOfRangeException("dimensionsizes", string.Format("The lengths have a zero size element: {0}", lengths));
            if (offset < 0)
                throw new ArgumentOutOfRangeException("offset", string.Format("The offset cannot be negative: {0}", offset));

            if (strides == null)
            {
                strides = new long[lengths.LongLength];
                strides[lengths.LongLength - 1] = 1;

                for (long i = strides.LongLength - 2; i >= 0; i--)
                    strides[i] = strides[i + 1] * lengths[i + 1];
            }
            else if (lengths.LongLength != strides.LongLength || strides.Any(x => x < 0))
                throw new ArgumentException("strides");

            this.Offset = offset;

            m_dimensions = new ShapeDimension[lengths.LongLength];
            for (long i = lengths.LongLength - 1; i >= 0; i--)
                m_dimensions[i] = new ShapeDimension(lengths[i], strides[i]);

            //Calculate how much space is required
            Length = CalculateSpaceRequired() + this.Offset;
        }
示例#5
0
/// <summary>
/// Deserialize
/// </summary>
/// <param name="vertexName"></param>
/// <param name="q"></param>
/// <param name="tr"></param>
/// <returns></returns>

        internal static VertexMx Deserialize(
            string name,
            Query q,
            XmlTextReader tr)
        {
            Enum iEnum = null;

            VertexMx v = new VertexMx();

            if (XmlUtil.GetEnumAttribute(tr, "ShowLabels", typeof(ShowLabels), ref iEnum))
            {
                v.ShowLabels = (ShowLabels)iEnum;
            }

            while (true)             // loop through elements of network
            {
                tr.Read(); tr.MoveToContent();

                if (Lex.Eq(tr.Name, name + "Column"))
                {
                    v.QueryColumn = ResultsViewProps.DeserializeQueryColumn(q, tr);
                    //tr.Read(); tr.MoveToContent();
                }

                else if (Lex.Eq(tr.Name, "Color"))
                {
                    v.Color = ColorDimension.Deserialize("Color", q, tr);
                    //tr.Read(); tr.MoveToContent();
                }

                else if (Lex.Eq(tr.Name, "Size"))
                {
                    v.Size = SizeDimension.Deserialize("Size", q, tr);
                    //tr.Read(); tr.MoveToContent();
                }

                else if (Lex.Eq(tr.Name, "Shape"))
                {
                    v.Shape = ShapeDimension.Deserialize("Shape", q, tr);
                    //tr.Read(); tr.MoveToContent();
                }

                else if (Lex.Eq(tr.Name, "TooltipFields"))
                {
                    v.TooltipFields = TooltipDimensionDef.Deserialize("TooltipFields", q, tr);
                    //tr.Read(); tr.MoveToContent();
                }

                else if (tr.NodeType == XmlNodeType.EndElement &&                 // end of props
                         Lex.Eq(tr.Name, name))
                {
                    break;
                }

                else
                {
                    throw new Exception("Unexpected element: " + tr.Name);
                }
            }

            return(v);
        }
示例#6
0
        /// <summary>
        /// Deserialize Chart Properties
        /// </summary>
        /// <param name="q"></param>
        /// <param name="tr"></param>
        /// <param name="view"></param>

        public static bool DeserializeChartProperties(
            Query q,
            XmlTextReader tr,
            ResultsViewProps view)
        {
            AxisMx ax;
            Enum   iEnum = null;
            string txt;

            if (!Lex.Eq(tr.Name, "ChartProperties"))
            {
                return(false);
            }

            if (XmlUtil.GetEnumAttribute(tr, "ShapeRenderingMode", typeof(ShapeRenderingMode), ref iEnum))
            {
                view.ShapeRenderingMode = (ShapeRenderingMode)iEnum;
            }

            //XmlUtil.GetStringAttribute(tr, "BackgroundImageFile", ref view.BackgroundImageFile);
            XmlUtil.GetIntAttribute(tr, "Jitter", ref view.JitterX);
            XmlUtil.GetBoolAttribute(tr, "ChartStretch", ref view.JitterTheSameForXandY);

            XmlUtil.GetBoolAttribute(tr, "ShowLegend", ref view.ShowLegend);

            if (tr.GetAttribute("LegendAlignmentHorizontal") != null)
            {
                view.LegendAlignmentHorizontal =
                    (LegendAlignmentHorizontal)EnumUtil.Parse(typeof(LegendAlignmentHorizontal), tr.GetAttribute("LegendAlignmentHorizontal"));
            }

            if (tr.GetAttribute("LegendAlignmentVertical") != null)
            {
                view.LegendAlignmentVertical =
                    (LegendAlignmentVertical)EnumUtil.Parse(typeof(LegendAlignmentVertical), tr.GetAttribute("LegendAlignmentVertical"));
            }

            XmlUtil.GetIntAttribute(tr, "LegendMaxHorizontalPercentage", ref view.LegendMaxHorizontalPercentage);
            XmlUtil.GetIntAttribute(tr, "LegendMaxVerticalPercentage", ref view.LegendMaxVerticalPercentage);

            if (tr.GetAttribute("LegendItemOrder") != null)
            {
                view.LegendItemOrder =
                    (LegendDirection)EnumUtil.Parse(typeof(LegendDirection), tr.GetAttribute("LegendItemOrder"));
            }

            XmlUtil.GetBoolAttribute(tr, "MainChartAreaMaximized", ref view.MainViewPanelMaximized);
            XmlUtil.GetBoolAttribute(tr, "ShowFilters", ref view.ShowFilters);
            XmlUtil.GetBoolAttribute(tr, "ShowSelectedDataRows", ref view.ShowSelectedDataRows);

            XmlUtil.GetBoolAttribute(tr, "ShowAxesTitles", ref view.ShowAxesTitles);
            XmlUtil.GetBoolAttribute(tr, "ShowAxesScaleLabels", ref view.ShowAxesScaleLabels);
            XmlUtil.GetBoolAttribute(tr, "RotateAxes", ref view.RotateAxes);

            XmlUtil.GetBoolAttribute(tr, "UseExistingCondFormatting", ref view.UseExistingCondFormatting);
            XmlUtil.GetBoolAttribute(tr, "PivotedData", ref view.PivotedData);

            while (true)             // loop through elements of chart
            {
                tr.Read(); tr.MoveToContent();

                if (Lex.Eq(tr.Name, "XAxis"))
                {
                    view.XAxisMx = AxisMx.DeserializeAxis("XAxis", q, tr);
                }

                else if (Lex.Eq(tr.Name, "YAxis"))
                {
                    view.YAxisMx = AxisMx.DeserializeAxis("YAxis", q, tr);
                }

                else if (Lex.Eq(tr.Name, "ZAxis"))
                {
                    view.ZAxisMx = AxisMx.DeserializeAxis("ZAxis", q, tr);
                }

                else if (Lex.Eq(tr.Name, "Axis"))
                {
                    ax = AxisMx.DeserializeAxis("Axis", q, tr);
                    view.AxesMx.Add(ax);
                }

                else if (Lex.Eq(tr.Name, "MarkerColor"))
                {
                    view.MarkerColor = ColorDimension.Deserialize("MarkerColor", q, tr);
                }

                else if (Lex.Eq(tr.Name, "MarkerSize"))
                {
                    view.MarkerSize = SizeDimension.Deserialize("MarkerSize", q, tr);
                }

                else if (Lex.Eq(tr.Name, "MarkerShape"))
                {
                    view.MarkerShape = ShapeDimension.Deserialize("MarkerShape", q, tr);
                }

                else if (Lex.Eq(tr.Name, "MarkerLabel"))
                {
                    view.MarkerLabel = LabelDimensionDef.Deserialize("MarkerLabel", q, tr);
                }

                else if (Lex.Eq(tr.Name, "Labels"))                 // obsolete label tag
                {
                    view.MarkerLabel = LabelDimensionDef.Deserialize("Labels", q, tr);
                }

                else if (Lex.Eq(tr.Name, "TooltipFields"))
                {
                    view.MarkerTooltip = TooltipDimensionDef.Deserialize("TooltipFields", q, tr);
                }

                else if (Lex.Eq(tr.Name, "Surface"))
                {
                    txt = tr.GetAttribute("FillMode");
                    if (txt != null)
                    {
                        view.SurfaceFillMode = (SurfaceFillMode)EnumUtil.Parse(typeof(SurfaceFillMode), txt);
                    }

                    XmlUtil.GetBoolAttribute(tr, "SmoothPalette", ref view.SmoothPalette);
                    XmlUtil.GetBoolAttribute(tr, "SmoothShading", ref view.SmoothShading);
                    XmlUtil.GetBoolAttribute(tr, "SemiTransparent", ref view.SemiTransparent);
                    XmlUtil.GetBoolAttribute(tr, "DrawFlat", ref view.DrawFlat);

                    txt = tr.GetAttribute("FrameMode");
                    if (txt != null)
                    {
                        view.SurfaceFrameMode = (SurfaceFrameMode)EnumUtil.Parse(typeof(SurfaceFrameMode), txt);
                    }

                    if (tr.IsEmptyElement)
                    {
                        continue;                                        // may be just attributes
                    }
                    tr.Read(); tr.MoveToContent();
                    if (!Lex.Eq(tr.Name, "Surface"))
                    {
                        throw new Exception("Expected Surface end element");
                    }
                }

                else if (Lex.Eq(tr.Name, "Trellis"))
                {
                    if (tr.IsEmptyElement)
                    {
                        continue;                                        // may be just attributes
                    }
                    XmlUtil.GetBoolAttribute(tr, "ByRowCol", ref view.TrellisByRowCol);

                    XmlUtil.GetBoolAttribute(tr, "Manual", ref view.TrellisManual);
                    XmlUtil.GetIntAttribute(tr, "MaxRows", ref view.TrellisMaxRows);
                    XmlUtil.GetIntAttribute(tr, "MaxCols", ref view.TrellisMaxCols);

                    while (true)
                    {
                        tr.Read(); tr.MoveToContent();

                        if (Lex.Eq(tr.Name, "ColumnQc"))
                        {
                            view.TrellisColQc = DeserializeQueryColumnRef(q, tr);
                        }

                        else if (Lex.Eq(tr.Name, "RowQc"))
                        {
                            view.TrellisRowQc = DeserializeQueryColumnRef(q, tr);
                        }

                        else if (Lex.Eq(tr.Name, "PageQc"))
                        {
                            view.TrellisPageQc = DeserializeQueryColumnRef(q, tr);
                        }

                        else if (Lex.Eq(tr.Name, "FlowQc"))
                        {
                            view.TrellisFlowQc = DeserializeQueryColumnRef(q, tr);
                        }

                        else if (tr.NodeType == XmlNodeType.EndElement &&                         // end of trellis definition
                                 Lex.Eq(tr.Name, "Trellis"))
                        {
                            break;
                        }

                        else
                        {
                            throw new Exception("Unexpected element: " + tr.Name);
                        }
                    }
                }

                else if (tr.NodeType == XmlNodeType.EndElement &&                 // end of chart props
                         Lex.Eq(tr.Name, "ChartProperties"))
                {
                    break;
                }

                else
                {
                    throw new Exception("Unexpected element: " + tr.Name);
                }
            }

            return(true);
        }