public override bool Start(IMouseInformation mouseInformation)
        {
            if (!Enabled)
            {
                return(false);
            }

            base.Start(mouseInformation);

            if (_graphicBuilder != null)
            {
                return(_graphicBuilder.Start(mouseInformation));
            }

            IDicomPresentationImage image = mouseInformation.Tile.PresentationImage as IDicomPresentationImage;

            if (image == null || GetGeometricShuttersGraphic(image, true) == null)
            {
                return(false);
            }

            AddDrawShutterGraphic(image);

            if (_graphicBuilder.Start(mouseInformation))
            {
                _primitiveGraphic.Draw();
                return(true);
            }

            this.Cancel();
            return(false);
        }
Exemple #2
0
        public override bool Start(IMouseInformation mouseInformation)
        {
            base.Start(mouseInformation);

            if (_graphicBuilder != null)
            {
                return(_graphicBuilder.Start(mouseInformation));
            }

            if (!CanStart(mouseInformation.Tile.PresentationImage))
            {
                return(false);
            }

            RoiGraphic roiGraphic = CreateRoiGraphic();

            _graphicBuilder = CreateGraphicBuilder(roiGraphic.Subject);
            _graphicBuilder.GraphicComplete  += OnGraphicBuilderComplete;
            _graphicBuilder.GraphicCancelled += OnGraphicBuilderCancelled;

            AddRoiGraphic(mouseInformation.Tile.PresentationImage,
                          roiGraphic,
                          (IOverlayGraphicsProvider)mouseInformation.Tile.PresentationImage);

            roiGraphic.Suspend();
            try
            {
                if (_graphicBuilder.Start(mouseInformation))
                {
                    return(true);
                }
            }
            finally
            {
                roiGraphic.Resume(true);
            }

            this.Cancel();
            return(false);
        }