Esempio n. 1
0
        /// <summary>
        /// This will create new Balloon object based from Balloon information.
        /// </summary>
        /// <param name="balloon">Original from what new should be created</param>
        /// <param name="page">Current page</param>
        /// <param name="parentBalloon">parent balloon that is generated</param>
        /// <param name="isStatic">If new balloon should be created as StaticBalloon</param>
        /// <param name="level">level of recursion, for logging purposes</param>
        /// <returns></returns>
        Balloon CreateNewBalloon(Balloon balloon, ReportPage page, Balloon parentBalloon, bool isStatic)
        {
            if (isStatic)
            {
                StaticBalloon newStaticBalloon = new StaticBalloon();
                newStaticBalloon.TemplateBalloon  = balloon;
                newStaticBalloon.LocationInUnitsX = balloon.LocationInUnitsX;
                newStaticBalloon.LocationInUnitsY = balloon.LocationInUnitsY;

                newStaticBalloon.WidthInPixels  = balloon.GetFitToContentWidthInPixels();
                newStaticBalloon.HeightInPixels = balloon.GetFitToContentHeightInPixels();

                newStaticBalloon.zoomLevel            = balloon.zoomLevel;
                newStaticBalloon.sourceBallon         = balloon;
                newStaticBalloon.Disabled             = true;
                newStaticBalloon.CanGrow              = balloon.DockPosition == EditorItem.DockingPosition.DOCK_BOTTOM ? false : balloon.CanGrow;
                newStaticBalloon.Borders              = balloon.Borders;
                newStaticBalloon.FillCapacity         = balloon.FillCapacity;
                newStaticBalloon.AvailableOnEveryPage = balloon.AvailableOnEveryPage;
                newStaticBalloon.FillingGeneratesNew  = balloon.FillingGeneratesNew;
                newStaticBalloon.FitToContent         = balloon.FitToContent;
                newStaticBalloon.FillColor            = balloon.FillColor;
                newStaticBalloon.MeasureUnit          = balloon.MeasureUnit;

                float relLocationX = balloon.LocationInPixelsX; //unitConverter.ConvertUnit(balloon.LocationInUnitsX, balloon.MeasureUnit, MeasureUnits.point);
                float relLocationY = balloon.LocationInPixelsY; //unitConverter.ConvertUnit(balloon.LocationInUnitsY, balloon.MeasureUnit, MeasureUnits.point);
                float width        = balloon.GetFitToContentWidthInPixels();
                float height       = balloon.GetFitToContentHeightInPixels();

                newStaticBalloon.containerRect.left   = relLocationX;
                newStaticBalloon.containerRect.bottom = relLocationY + height;
                newStaticBalloon.containerRect.right  = relLocationX + width;
                newStaticBalloon.containerRect.top    = relLocationY;
                newStaticBalloon.positionRect.top     = relLocationY;
                newStaticBalloon.positionRect.left    = relLocationX;
                return(newStaticBalloon);
            }
            else
            {
                DynamicBalloon newDynamicBalloon = new DynamicBalloon();
                newDynamicBalloon.FillColor            = balloon.FillColor;
                newDynamicBalloon.TemplateBalloon      = balloon;
                newDynamicBalloon.LocationInUnitsX     = balloon.LocationInUnitsX;
                newDynamicBalloon.LocationInUnitsY     = balloon.LocationInUnitsY;
                newDynamicBalloon.zoomLevel            = balloon.zoomLevel;
                newDynamicBalloon.sourceBallon         = balloon;
                newDynamicBalloon.Disabled             = true;
                newDynamicBalloon.FitToContent         = balloon.FitToContent;
                newDynamicBalloon.CanGrow              = balloon.CanGrow;
                newDynamicBalloon.Borders              = balloon.Borders;
                newDynamicBalloon.FillCapacity         = balloon.FillCapacity;
                newDynamicBalloon.AvailableOnEveryPage = balloon.AvailableOnEveryPage;
                newDynamicBalloon.FillingGeneratesNew  = balloon.FillingGeneratesNew;
                newDynamicBalloon.MeasureUnit          = balloon.MeasureUnit;

                newDynamicBalloon.WidthInPixels     = balloon.GetFitToContentWidthInPixels();
                newDynamicBalloon.HeightInPixels    = balloon.GetFitToContentHeightInPixels();
                newDynamicBalloon.positionRect.top  = balloon.LocationInPixelsY;
                newDynamicBalloon.positionRect.left = balloon.LocationInPixelsX;
                return(newDynamicBalloon);
            }
            return(null);
        }