public IDrawing CreateObject(string c)
        {
            IDrawing drawing = null;

            if (!Enum.TryParse(c, out CommandEnum command))
            {
                return(drawing);
            }
            else
            {
                if (command == CommandEnum.C)
                {
                    drawing = new CreateCanvas();
                }
                else if (command == CommandEnum.L)
                {
                    drawing = new CreateNewLine();
                }
                else if (command == CommandEnum.R)
                {
                    drawing = new CreateRectangle();
                }
                else if (command == CommandEnum.B)
                {
                    drawing = new FillArea();
                }
            }

            return(drawing);
        }
Example #2
0
 /// <summary>
 /// create xls
 /// using NPOI
 /// </summary>
 /// <param name="svgDocs"></param>
 /// <param name="stream"></param>
 public static void CreateExcelStreamBySvgs(List <SvgDocument> svgDocs, Stream stream)
 {
     using (stream)
     {
         IWorkbook        workbook  = new HSSFWorkbook();
         ISheet           sheet     = workbook.CreateSheet("Sheet1");
         IDrawing         patriarch = sheet.CreateDrawingPatriarch();
         HSSFClientAnchor anchor;
         IPicture         pic;
         IRow             row = null;
         for (int i = 0; i < svgDocs.Count; i++)
         {
             using (MemoryStream ms = new MemoryStream())
             {
                 using (System.Drawing.Bitmap image = svgDocs[i].Draw())
                 {
                     image.Save(ms, ImageFormat.Bmp);
                     ms.Seek(0, SeekOrigin.Begin);
                     int index = workbook.AddPicture(ms.ToArray(), PictureType.JPEG);
                     row = sheet.CreateRow(i);
                     row.HeightInPoints = convertPixelToPoints(image.Height) + 10;
                     anchor             = new HSSFClientAnchor(0, 0, 0, 0, 0, i, 0, i);
                     pic = patriarch.CreatePicture(anchor, index);
                     pic.Resize();
                 }
             }
         }
         workbook.Write(stream);
     }
 }
Example #3
0
        /// <summary>
        /// Draws the view
        /// </summary>
        /// <param name="drawing">drawing wrapper</param>
        /// <param name="options">drawing options</param>
        /// <param name="margin">drawing margin</param>
        public virtual void Draw(IDrawing drawing, IDrawOptions options, IMargin margin)
        {
            if (drawing == null || margin == null)
            {
                throw new InvalidArgumentException("parameter is null");
            }

            if (!(options is GridDrawOptions))
            {
                throw new InvalidArgumentException("options is not compatible");
            }
            var state = ((GridDrawOptions)options).State;

            var canvasSize = options.CanvasSize;

            // Step 1 - Measure all texts and calc offsets
            MeashureLabelSizes(drawing, margin, state, canvasSize, out SizeF strX, out SizeF strY, out double stepDataY);

            // Step 2 - Draw vertical lines
            DrawVerticalLines(drawing, margin, state, canvasSize, strX, out double stepDataX);

            // Step 3 - Draw horizontal lines
            DrawHorizontalLines(drawing, margin, state, canvasSize, ref strY, ref stepDataY);

            // Step 4 - Draw axis X and Y
            DrawAxis(drawing, margin, state, canvasSize, strX, strY, stepDataY, stepDataX);

            this.scaleService.SetStepX(stepDataX);
            this.scaleService.SetStepY(stepDataY);
        }
Example #4
0
        static void Main(string[] args)
        {
            IWorkbook workbook = new XSSFWorkbook();
            ISheet    sheet1   = workbook.CreateSheet("PictureSheet");


            IDrawing patriarch = sheet1.CreateDrawingPatriarch();
            //create the anchor
            XSSFClientAnchor anchor = new XSSFClientAnchor(500, 200, 0, 0, 2, 2, 4, 7);

            anchor.AnchorType = AnchorType.MoveDontResize;
            //load the picture and get the picture index in the workbook
            //first picture
            int         imageId = LoadImage("../../image/HumpbackWhale.jpg", workbook);
            XSSFPicture picture = (XSSFPicture)patriarch.CreatePicture(anchor, imageId);

            //Reset the image to the original size.
            //picture.Resize();   //Note: Resize will reset client anchor you set.
            picture.LineStyle = LineStyle.DashDotGel;

            //second picture
            int imageId2              = LoadImage("../../image/HumpbackWhale.jpg", workbook);
            XSSFClientAnchor anchor2  = new XSSFClientAnchor(500, 200, 0, 0, 5, 10, 7, 15);
            XSSFPicture      picture2 = (XSSFPicture)patriarch.CreatePicture(anchor2, imageId2);

            picture.LineStyle = LineStyle.DashDotGel;

            FileStream sw = File.Create("test.xlsx");

            workbook.Write(sw);
            sw.Close();
        }
Example #5
0
        private void DrawHorizontalLine(IGridState state, IDrawing drawing, Structs.Size canvasSize, IMargin margin, ref SizeF strY, double valueData, double stepData, bool calcWidth, ref double maxTextSize, StringAlignment align, ref int lastTextPos)
        {
            double y = this.scaleService.ToScreenY(valueData);

            if (y >= 0 && y <= canvasSize.Height - margin.Bottom - margin.Top)
            {
                if (calcWidth)
                {
                    var strValue = state.ItemFormatter.ToString(Axis.Y, new DataItem(0, valueData), stepData);
                    var strSize  = drawing.MeasureText(strValue);
                    maxTextSize = maxTextSize < strSize.Width ? strSize.Width : maxTextSize;
                    strY.Height = strSize.Height;
                }
                else
                {
                    double lineYPos = canvasSize.Height - margin.Bottom - y; // Invert graphic
                    var    color    = valueData != 0 ? state.GridColor : state.AxeColor;
                    drawing.Line(color, margin.Left, lineYPos, canvasSize.Width - margin.Right, lineYPos);

                    if (CalcAndCheckLabelRectY(state, canvasSize, margin, ref strY, valueData, align, lineYPos, out Rectangle rect, out bool borderValue))
                    {
                        var strValue = state.ItemFormatter.ToString(Axis.Y, new DataItem(0, valueData), stepData);
                        drawing.Text(state.TextYColor, rect, strValue, StringAlignment.Far, align);

                        lastTextPos = rect.Top;
                    }
                }
            }
        }
Example #6
0
        private void DrawHorizontalLines(IGridState state, IDrawing drawing, Structs.Size canvasSize, IMargin margin, ref SizeF strY, ref double stepDataAbs, bool fromZero, bool back, bool calcWidth)
        {
            if (stepDataAbs == 0)
            {
                stepDataAbs = ToNearRoundStep(Axis.Y, this.scaleService.State.Y1, this.scaleService.State.Y2, state.MinGridLineDistance, canvasSize.Height, state.ItemFormatter);
            }

            double stepData = back ? -stepDataAbs : stepDataAbs; // If we show lines from 0 and backward, change step sign

            // Calc border values in data
            CalcBorderValues(this.scaleService.State.Y1, this.scaleService.State.Y2, stepDataAbs, fromZero, back, stepData,
                             out double firstData, out double endData);

            double maxTextSize = 0;
            int    steps       = canvasSize.Width;
            int    lastTextPos = -1;

            DrawHorizontalLine(state, drawing, canvasSize, margin, ref strY, this.scaleService.State.Y1, stepData, calcWidth, ref maxTextSize, StringAlignment.Far, ref lastTextPos); // First line value
            for (double valueData = firstData; ((!back && valueData < endData) || (back && valueData > endData)) && steps >= 0; valueData += stepData, steps--)
            {
                DrawHorizontalLine(state, drawing, canvasSize, margin, ref strY, valueData, stepData, calcWidth, ref maxTextSize, StringAlignment.Center, ref lastTextPos);
            }
            if (this.scaleService.State.Y2 != this.scaleService.State.Y1)
            {
                DrawHorizontalLine(state, drawing, canvasSize, margin, ref strY, this.scaleService.State.Y2, stepData, calcWidth, ref maxTextSize, StringAlignment.Near, ref lastTextPos); // Last line value
            }
            if (calcWidth)
            {
                strY.Width = (float)maxTextSize > strY.Width ? (float)maxTextSize : strY.Width;
            }
        }
Example #7
0
        private void DrawVerticalLines(IGridState state, IDrawing drawing, Structs.Size canvasSize, IMargin margin, SizeF strX, ref double stepDataAbs, bool fromZero, bool back)
        {
            if (stepDataAbs == 0)
            {
                double minDistance = Math.Max(state.MinGridLineDistance, strX.Width + state.LabelPadding.LeftAndRight);
                stepDataAbs = ToNearRoundStep(Axis.X, this.scaleService.State.X1, this.scaleService.State.X2, minDistance, canvasSize.Width, state.ItemFormatter);
            }

            double stepData = back ? -stepDataAbs : stepDataAbs; // If we show lines from 0 and backward, change step sign

            // Calc first data grid line
            CalcBorderValues(this.scaleService.State.X1, this.scaleService.State.X2, stepDataAbs, fromZero, back, stepData,
                             out double firstData, out double endData);

            int    steps       = canvasSize.Width;
            int    lastTextPos = 0;
            double minData     = this.scaleService.State.X1;
            double maxData     = this.scaleService.State.X2;
            double screenPos   = this.scaleService.ToScreenX(minData);

            DrawVerticalLine(state, drawing, canvasSize, margin, strX, screenPos, minData, maxData, stepData, StringAlignment.Center, ref lastTextPos); // First line value
            for (double valueData = firstData; ((!back && valueData < endData) || (back && valueData > endData)) && steps >= 0; valueData += stepData, steps--)
            {
                screenPos = this.scaleService.ToScreenX(valueData);
                DrawVerticalLine(state, drawing, canvasSize, margin, strX, screenPos, valueData, maxData, stepData, StringAlignment.Center, ref lastTextPos);
            }
            if (this.scaleService.State.X2 != this.scaleService.State.X1)
            {
                screenPos = this.scaleService.ToScreenX(maxData);
                DrawVerticalLine(state, drawing, canvasSize, margin, strX, screenPos, maxData, maxData, stepData, StringAlignment.Far, ref lastTextPos); // Last line value
            }
        }
Example #8
0
        /// <summary>
        /// 向excel添加图片
        /// </summary>
        /// <param name="XlsFilePath"></param>
        /// <param name="pictureData"></param>
        /// <param name="sheetName"></param>
        public static void AddPicture(string XlsFilePath, byte[] pictureData, bool isNewSheet, string sheetName = "PicTure")
        {
            FileStream fs = File.OpenRead(XlsFilePath);

            //IWorkbook workbook = new XSSFWorkbook(fs);

            NPOI.XSSF.UserModel.XSSFWorkbook book = new NPOI.XSSF.UserModel.XSSFWorkbook(fs); // (NPOI.XSSF.UserModel.XSSFWorkbook)WorkbookFactory.Create(XlsFilePath);
            fs.Close();
            int pictureIdx = book.AddPicture(pictureData, PictureType.JPEG);

            NPOI.SS.UserModel.ISheet sheet = null;
            if (!isNewSheet)
            {
                sheet = book.GetSheetAt(0);
            }
            else
            {
                sheet = book.CreateSheet(sheetName);
            }
            IDrawing patriarch = sheet.CreateDrawingPatriarch();

            NPOI.XSSF.UserModel.XSSFClientAnchor anchor = new NPOI.XSSF.UserModel.XSSFClientAnchor(0, 0, 1023, 0, 0, 0, 1, 3);
            IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);

            pict.Resize();

            using (FileStream fileStream = File.Open(XlsFilePath,
                                                     FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                book.Write(fileStream);
                fileStream.Close();
            }
        }
Example #9
0
        private IComment insertComment(IDrawing Drawing, ICell cell, String message)
        {
            ICreationHelper factory = cell.Sheet.Workbook.GetCreationHelper();

            IClientAnchor anchor = factory.CreateClientAnchor();

            anchor.Col1 = (/*setter*/ cell.ColumnIndex);
            anchor.Col2 = (/*setter*/ cell.ColumnIndex + 1);
            anchor.Row1 = (/*setter*/ cell.RowIndex);
            anchor.Row2 = (/*setter*/ cell.RowIndex + 1);
            anchor.Dx1  = (/*setter*/ 100);
            anchor.Dx2  = (/*setter*/ 100);
            anchor.Dy1  = (/*setter*/ 100);
            anchor.Dy2  = (/*setter*/ 100);

            IComment comment = Drawing.CreateCellComment(anchor);

            IRichTextString str = factory.CreateRichTextString(message);

            comment.String   = (/*setter*/ str);
            comment.Author   = (/*setter*/ "fanfy");
            cell.CellComment = (/*setter*/ comment);

            return(comment);
        }
Example #10
0
        public void DirectLinks(IDrawing drawing)
        {
            foreach (IDrawing subcomponent in drawing.Components) {
                DirectLinks(subcomponent);
            }

            IDrawing linkableDrawing = drawing;
            if (drawing is SelectableDrawing)
                linkableDrawing = (drawing as SelectableDrawing).Drawing;

            if (!virtualMapping.ContainsKey(linkableDrawing))
                return;

            NSWEDrawing nsweItem = virtualMapping[linkableDrawing];
            foreach (LinkDrawing link in nsweItem.Links) {
                LinkDirection prevDirection = link.Direction;
                LinkDirection newDirection = CardinalDirectionUtils.GetClosestDirectionPoints(link);

                if (!newDirection.Equals(link.Direction)) {
                    link.Invalidated = true;
                    OnLinkDirectionChanged(link, link.Direction, newDirection);
                    link.Direction = newDirection;
                    link.DestinationPoint.Direction = newDirection.From;
                    link.SourcePoint.Direction = newDirection.To;
                }

                ArangeLinksForItem(link.DestinationDrawing);
                ArangeLinksForItem(link.SourceDrawing);
            }
            arrangeConnectionPoints(linkableDrawing);
        }
Example #11
0
          static void CreateChart(IDrawing drawing, ISheet sheet, IClientAnchor anchor, string serie1, string serie2)
        {


            IChart chart = drawing.CreateChart(anchor);
            IChartLegend legend = chart.GetOrCreateLegend();
            legend.Position = LegendPosition.TopRight;

            ILineChartData<double, double> data = chart.ChartDataFactory.CreateLineChartData<double, double>();

            // Use a category axis for the bottom axis.
            IChartAxis bottomAxis = chart.ChartAxisFactory.CreateCategoryAxis(AxisPosition.Bottom);
            IValueAxis leftAxis = chart.ChartAxisFactory.CreateValueAxis(AxisPosition.Left);
            leftAxis.Crosses = AxisCrosses.AutoZero;

            IChartDataSource<double> xs = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(0, 0, 0, NUM_OF_COLUMNS - 1));
            IChartDataSource<double> ys1 = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(1, 1, 0, NUM_OF_COLUMNS - 1));
            IChartDataSource<double> ys2 = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(2, 2, 0, NUM_OF_COLUMNS - 1));


            var s1 = data.AddSeries(xs, ys1);
            s1.SetTitle(serie1);
            var s2 = data.AddSeries(xs, ys2);
            s2.SetTitle(serie2);

            chart.Plot(data, bottomAxis, leftAxis);
        }
        public void MakeFigure(IBoard board, IDrawing drawing, int action)
        {
            draw = null;

            switch (action)
            {
            case (int)Action.Dot:
                draw = drawing.DrawDot;
                break;

            case (int)Action.HorizontalLine:
                draw = drawing.DrawHorizontalLine;
                break;

            case (int)Action.VerticalLine:
                draw = drawing.DrawVerticalLine;
                break;

            default:
                break;
            }
            int currentY = Console.CursorTop;

            draw?.Invoke(board);
            Console.SetCursorPosition(0, currentY - 1);
        }
Example #13
0
        public void TestQuickGuide()
        {
            IWorkbook wb = _testDataProvider.CreateWorkbook();

            ICreationHelper factory = wb.GetCreationHelper();

            ISheet sheet = wb.CreateSheet();

            ICell cell = sheet.CreateRow(3).CreateCell(5);

            cell.SetCellValue("F4");

            IDrawing drawing = sheet.CreateDrawingPatriarch();

            IClientAnchor   anchor  = factory.CreateClientAnchor();
            IComment        comment = drawing.CreateCellComment(anchor);
            IRichTextString str     = factory.CreateRichTextString("Hello, World!");

            comment.String = (str);
            comment.Author = ("Apache POI");
            //assign the comment to the cell
            cell.CellComment = (comment);

            wb      = _testDataProvider.WriteOutAndReadBack(wb);
            sheet   = wb.GetSheetAt(0);
            cell    = sheet.GetRow(3).GetCell(5);
            comment = cell.CellComment;
            Assert.IsNotNull(comment);
            Assert.AreEqual("Hello, World!", comment.String.String);
            Assert.AreEqual("Apache POI", comment.Author);
            Assert.AreEqual(3, comment.Row);
            Assert.AreEqual(5, comment.Column);
        }
Example #14
0
        public void Test44916()
        {
            HSSFWorkbook wb = new HSSFWorkbook();

            NPOI.SS.UserModel.ISheet sheet = wb.CreateSheet();

            // 1. Create drawing patriarch
            IDrawing patr = sheet.CreateDrawingPatriarch();

            // 2. Try to re-get the patriarch
            IDrawing existingPatr;

            try
            {
                existingPatr = sheet.DrawingPatriarch;
            }
            catch (NullReferenceException)
            {
                throw new AssertionException("Identified bug 44916");
            }

            // 3. Use patriarch
            HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 600, 245, (short)1, 1, (short)1, 2);

            anchor.AnchorType = (AnchorType)(3);
            byte[] pictureData = HSSFTestDataSamples.GetTestDataFileContent("logoKarmokar4.png");
            int    idx1        = wb.AddPicture(pictureData, PictureType.PNG);

            patr.CreatePicture(anchor, idx1);

            // 4. Try to re-use patriarch later
            existingPatr = sheet.DrawingPatriarch;
            Assert.IsNotNull(existingPatr);
        }
Example #15
0
        private void btn_ExTWO_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = @"Excel|*.xls";
            sfd.ShowDialog();
            string    path        = sfd.FileName;
            PlotModel pm          = plotView1.Model;
            var       pngExporter = new PngExporter {
                Width = 1000, Height = 400, Background = OxyColors.White
            };
            Bitmap       bitmap = pngExporter.ExportToBitmap(pm);
            Image        image  = bitmap;
            MemoryStream ms     = new MemoryStream();

            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            byte[]    bytes    = ms.ToArray();
            IWorkbook workbook = new HSSFWorkbook();

            workbook.CreateSheet("sheet1");
            if (path != "")
            {
                using (FileStream fs = File.Create(path))
                {
                    ISheet           sheet  = workbook.GetSheetAt(0);
                    HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, 0, 5, 6, 10);
                    int      pic            = workbook.AddPicture(bytes, PictureType.PNG);
                    IDrawing patriarch      = sheet.CreateDrawingPatriarch();
                    IPicture ipic           = patriarch.CreatePicture(anchor, pic);
                    ipic.Resize();
                    workbook.Write(fs);
                }
                MessageBox.Show("保存成功!");
            }
        }
Example #16
0
        /// <summary>
        /// Adds drawing object to the list of drawing objects.
        /// </summary>
        /// <param name="drawing">Drawing object.</param>
        public void AddDrawing(IDrawing drawing)
        {
            Drawing d = drawing as Drawing;

            if (d == null)
            {
                throw new ArgumentException("Drawing object doesn't implement internal class.", nameof(drawing));
            }

            int index = drawings.IndexOf(drawing);

            if (index >= 0)
            {
                throw new ArgumentException("Drawing object is already part of this canvas.", nameof(drawing));
            }

            if (d.Container != null)
            {
                d.Container.RemoveDrawing(drawing);
            }

            UICanvas.Dispatcher.Invoke(() =>
            {
                UICanvas.Children.Add((System.Windows.UIElement)drawing.UIObject);
            });
            drawings.Add(drawing);
            d.Container = this;
        }
Example #17
0
        static void Main(string[] args)
        {
            IWorkbook wb     = new XSSFWorkbook();
            ISheet    sheet1 = wb.CreateSheet("First Sheet");

            //add picture data to this workbook.
            byte[] bytes      = File.ReadAllBytes("../../data/aspose.png");
            int    pictureIdx = wb.AddPicture(bytes, PictureType.PNG);

            ICreationHelper helper = wb.GetCreationHelper();

            // Create the drawing patriarch.  This is the top level container for all shapes.
            IDrawing drawing = sheet1.CreateDrawingPatriarch();

            // add a picture shape
            IClientAnchor anchor = helper.CreateClientAnchor();

            //set top-left corner of the picture,
            //subsequent call of Picture#resize() will operate relative to it
            anchor.Col1 = 3;
            anchor.Row1 = 2;
            IPicture pict = drawing.CreatePicture(anchor, pictureIdx);

            //auto-size picture relative to its top-left corner
            pict.Resize();

            FileStream sw = File.Create("../../data/image.xlsx");

            wb.Write(sw);
            sw.Close();
        }
Example #18
0
        public void TestOneSeriePlot()
        {
            IWorkbook     wb      = new XSSFWorkbook();
            ISheet        sheet   = new SheetBuilder(wb, plotData).Build();
            IDrawing      Drawing = sheet.CreateDrawingPatriarch();
            IClientAnchor anchor  = Drawing.CreateAnchor(0, 0, 0, 0, 1, 1, 10, 30);
            IChart        chart   = Drawing.CreateChart(anchor);

            IChartAxis bottomAxis = chart.ChartAxisFactory.CreateValueAxis(AxisPosition.Bottom);
            IChartAxis leftAxis   = chart.ChartAxisFactory.CreateValueAxis(AxisPosition.Left);

            IScatterChartData <string, double> scatterChartData =
                chart.ChartDataFactory.CreateScatterChartData <string, double>();

            IChartDataSource <String>           xs    = DataSources.FromStringCellRange(sheet, CellRangeAddress.ValueOf("A1:J1"));
            IChartDataSource <double>           ys    = DataSources.FromNumericCellRange(sheet, CellRangeAddress.ValueOf("A2:J2"));
            IScatterChartSerie <string, double> serie = scatterChartData.AddSerie(xs, ys);

            Assert.IsNotNull(serie);

            Assert.AreEqual(1, scatterChartData.GetSeries().Count);
            Assert.IsTrue(scatterChartData.GetSeries().Contains(serie));

            chart.Plot(scatterChartData, bottomAxis, leftAxis);
        }
Example #19
0
        ////重载
        //public ISheet pictureDataToSheet(ISheet sheet, HSSFPicture pictureNPOI, int startRow, int startCol, int endRow, int endCol)
        //{

        //    workbook.AddPicture(pictureNPOI.)
        //}

        /// <summary>
        /// 画矩形,2.0似乎还未实现,xslx格式未实现
        /// </summary>
        /// <param name="sheet"></param>
        /// <param name="content_string"></param>
        /// <param name="dx1"></param>
        /// <param name="dy1"></param>
        /// <param name="dx2"></param>
        /// <param name="dy2"></param>
        /// <param name="startRow"></param>
        /// <param name="startCol"></param>
        /// <param name="endRow"></param>
        /// <param name="endCol"></param>
        /// <returns></returns>
        public ISheet shapJuxingToSheet(ISheet sheet, string content_string, int dx1, int dy1, int dx2, int dy2, int startRow, int startCol, int endRow, int endCol)
        {
            if (sheet == null)
            {
                sheet = this.workbook.CreateSheet();
            }


            //创建DrawingPatriarch,存放的容器
            IDrawing patriarch = sheet.CreateDrawingPatriarch();
            //画图形的位置点
            IClientAnchor anchor = patriarch.CreateAnchor(dx1, dy1, dx2, dy2, startCol, startRow, endCol, endRow);

            //将图片文件读入workbook,用索引指向该文件
            //int pictureIdx = workbook.AddPicture(pictureNPOI, PictureType.TIFF);
            //IShape recl;



            //根据读入图片和anchor把图片插到相应的位置
            //IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);
            //原始大小显示,重载可指定缩放
            //pict.Resize(0.9);
            return(sheet);
        }
Example #20
0
        /*泛类型行不通
         * public ISheet pictureDataToSheet<T>(ISheet sheet, T pictureNPOI,int startRow,int startCol, int endRow,int endCol)
         * //   where T: XSSFPicture, HSSFPicture,类型应该只有一种的原因吧,无法执行类型约束为两个类,因为类的约束必须放在第一个
         * {
         *
         *  XSSFPicture pictureNPOI_XSSFPicture = pictureNPOI as XSSFPicture;
         *  HSSFPalette pictureNPOI_HSSFPalette = pictureNPOI as HSSFPalette;
         *  //XSSFPicture,HSSFPalette是类,只能有一种类型,正好是泛类型要解决的
         *  //方法和使用一样,但是T的类型取决类申城的Isheet的类型
         *  //应该使用重载
         *  if (true)
         *  {
         *
         *  }
         *  else
         *  {
         *      return null;
         *  }
         *  workbook.AddPicture(pictureNPOI.)
         * }
         */

        /// <summary>
        /// Excel sheet中插入图片
        /// </summary>
        /// <param name="sheet"></param>
        /// <param name="pictureNPOI"></param>
        /// <param name="dx1"></param>
        /// <param name="dy1"></param>
        /// <param name="dx2"></param>
        /// <param name="dy2"></param>
        /// <param name="startRow"></param>
        /// <param name="startCol"></param>
        /// <param name="endRow"></param>
        /// <param name="endCol"></param>
        /// <returns></returns>
        //重载
        public void pictureDataToSheet(ISheet sheet, byte[] pictureNPOI, int dx1, int dy1, int dx2, int dy2, int startRow, int startCol, int endRow, int endCol)
        {
            /*将实际图片转换为pictureData时使用,但是pictureNPOI本身就是picture
             * byte[] pictureByte=
             * workbook.AddPicture(, PictureType.PNG);
             */
            //判断是否有sheet
            //无,则创建
            if (sheet == null)
            {
                sheet = this.workbook.CreateSheet();
            }

            //执行向sheet写图片
            //创建DrawingPatriarch,存放的容器
            IDrawing patriarch = sheet.CreateDrawingPatriarch();
            ///System.InvalidCastException:“无法将类型为“NPOI.XSSF.UserModel.XSSFDrawing”的对象强制转换为类型“NPOI.HSSF.UserModel.HSSFPatriarch”。”
            ///            HSSFPatriarch patriarch = (HSSFPatriarch)sheetA.CreateDrawingPatriarch();
            ///    根据报错改为如下
            // IDrawing patriarch = sheet.CreateDrawingPatriarch();

            //XSSFClientAnchor anchor = new XSSFClientAnchor(dx1, dy1, dx2, dy2, startCol, startRow, endCol, endRow);
            IClientAnchor anchor = patriarch.CreateAnchor(dx1, dy1, dx2, dy2, startCol, startRow, endCol, endRow);

            //将图片文件读入workbook,用索引指向该文件
            int pictureIdx = workbook.AddPicture(pictureNPOI, PictureType.PNG);

            //根据读入图片和anchor把图片插到相应的位置
            IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);
            //原始大小显示,重载可指定缩放
            //pict.Resize(0.9);
            //return sheet;
        }
        public override void Read(IDrawing drawing)
        {
            try
            {
                DxfDocument dxf      = DxfDocument.Load(_stream);
                var         entities = new List <Entity>();
                entities.AddRange(ReadLines(dxf));
                entities.AddRange(ReadPolylines(dxf));
                entities.AddRange(ReadArcs(dxf));
                entities.AddRange(ReadCircles(dxf));
                entities.AddRange(ReadEllipses(dxf));

                foreach (var item in drawing.CurrentBlock)
                {
                    item.Erase();
                }

                foreach (var item in entities)
                {
                    drawing.CurrentBlock.AppendEntity(item);
                }
            }
            finally
            {
                if (_stream != null)
                {
                    _stream.Close();
                }
            }
        }
Example #22
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DrawingViewer"/> class.
        /// </summary>
        /// <param name="drawing">The drawing to be presented to the user.</param>
        public DrawingViewer(IDrawing drawing)
        {
            HorizontalAlignment = HorizontalAlignment.Left;
            MouseMove          += OnMouseMove;
            MouseLeave         += OnMouseLeave;
            AddChild(drawing.UIObject);
            tooltip = new ToolTip
            {
                PlacementTarget = this,
                Placement       = System.Windows.Controls.Primitives.PlacementMode.Relative,
            };
            tooltipMaxSize = new Size(0, 0);
            ToolTip        = tooltip;

            List <Bitmap>    bmps  = new List <Bitmap>();
            Queue <IDrawing> queue = new Queue <IDrawing>();

            queue.Enqueue(drawing);
            while (queue.Count > 0)
            {
                drawing = queue.Dequeue();
                if (drawing is Bitmap bitmap)
                {
                    bmps.Add(bitmap);
                }
                else if (drawing is ICanvas canvas)
                {
                    foreach (var d in canvas.Drawings)
                    {
                        queue.Enqueue(d);
                    }
                }
            }
            bitmaps = bmps.ToArray();
        }
Example #23
0
        public DrawingController(IUnityContainer container, IDrawing drawing)
        {
            _container = container;
            Drawing    = drawing;

            ShapeControllerList.CollectionChanged += ShapeControllerList_CollectionChanged;
        }
Example #24
0
        static void Main(string[] args)
        {
            IWorkbook wb    = new XSSFWorkbook();
            ISheet    sheet = wb.CreateSheet("linechart");


            // Create a row and put some cells in it. Rows are 0 based.
            IRow  row;
            ICell cell;

            for (int rowIndex = 0; rowIndex < NUM_OF_ROWS; rowIndex++)
            {
                row = sheet.CreateRow((short)rowIndex);
                for (int colIndex = 0; colIndex < NUM_OF_COLUMNS; colIndex++)
                {
                    cell = row.CreateCell((short)colIndex);
                    cell.SetCellValue(colIndex * (rowIndex + 1));
                }
            }

            IDrawing      drawing = sheet.CreateDrawingPatriarch();
            IClientAnchor anchor1 = drawing.CreateAnchor(0, 0, 0, 0, 0, 5, 10, 15);

            CreateChart(drawing, sheet, anchor1, "title1", "title2");
            IClientAnchor anchor2 = drawing.CreateAnchor(0, 0, 0, 0, 0, 20, 10, 35);

            CreateChart(drawing, sheet, anchor2, "s1", "s2");
            using (FileStream fs = File.Create("test.xlsx"))
            {
                wb.Write(fs);
            }
        }
        void MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            _end    = e.Location;
            _moving = false;

            if (_new != null)
            {
                if (Math.Abs(_end.X - _start.X) <= 1 && Math.Abs(_end.Y - _start.Y) <= 1)
                {
                    _end.X = _start.X + 100;
                    _end.Y = _start.Y + 100;
                }

                _new.Update(_start.X, _start.Y, _end.X, _end.Y);
                Selection = _new;
                _new      = null;

                _chart.Cursor = Cursors.Default;
                Status        = "Select or add drawing";
            }

            _chart.Refresh();

            options.DrawingType = DrawingType.None;
            if (Selection != null)
            {
                options.DrawingType = Selection.DrawingType;
            }
        }
Example #26
0
        private void tvList_AfterSelect(object sender, TreeViewEventArgs e)
        {
            DrawingContext context = new DrawingContext(graphics);

            using (Pen pen = new Pen(Color.Blue, lineWidth))
            {
                context.Pen = pen;

                if (e.Node.Nodes.Count > 0)
                {//存在子项
                    pen.Color = Color.Green;

                    Cursor.Current = Cursors.WaitCursor;
                    foreach (TreeNode node in e.Node.Nodes)
                    {
                        IDrawing drawing = node.Tag as IDrawing;
                        if (drawing != null)
                        {
                            drawing.Draw(context);
                        }
                        Thread.Sleep(250);
                    }
                    Cursor.Current = Cursors.Default;
                }
                else
                {
                    IDrawing drawing = e.Node.Tag as IDrawing;
                    if (drawing != null)
                    {
                        drawing.Draw(context);
                    }
                }
            }
        }
Example #27
0
        static void CreateChart(IDrawing drawing, ISheet sheet, IClientAnchor anchor, string serie1, string serie2)
        {
            IChart       chart  = drawing.CreateChart(anchor);
            IChartLegend legend = chart.GetOrCreateLegend();

            legend.Position = LegendPosition.TopRight;

            ILineChartData <double, double> data = chart.GetChartDataFactory().CreateLineChartData <double, double>();

            // Use a category axis for the bottom axis.
            IChartAxis bottomAxis = chart.GetChartAxisFactory().CreateCategoryAxis(AxisPosition.Bottom);
            IValueAxis leftAxis   = chart.GetChartAxisFactory().CreateValueAxis(AxisPosition.Left);

            leftAxis.SetCrosses(AxisCrosses.AutoZero);

            IChartDataSource <double> xs  = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(0, 0, 0, NUM_OF_COLUMNS - 1));
            IChartDataSource <double> ys1 = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(1, 1, 0, NUM_OF_COLUMNS - 1));
            IChartDataSource <double> ys2 = DataSources.FromNumericCellRange(sheet, new CellRangeAddress(2, 2, 0, NUM_OF_COLUMNS - 1));


            var s1 = data.AddSerie(xs, ys1);

            s1.SetTitle(serie1);
            var s2 = data.AddSerie(xs, ys2);

            s2.SetTitle(serie2);

            chart.Plot(data, bottomAxis, leftAxis);
        }
Example #28
0
        public void Run(IRegistry registry)
        {
            IBoard             board             = registry.Board;
            IProcessUserInput  processUserInput  = registry.ProcessUserInput;
            IShowMessageToUser showMessageToUser = registry.ShowMessageToUser;
            IExecuteUserChoice executeUserChoice = registry.ExecuteUserChoice;
            IDrawing           drawing           = registry.Drawing;

            board.SetBoardSize(40, 20);
            drawing.DrawBoard(board);
            showMessageToUser.ShowHelloToUser();
            showMessageToUser.ShowInstructionForUser("Enter the action to affect the board:");

            while (true)
            {
                int currentChoice = processUserInput.GetChoice();
                if (executeUserChoice.IsExit(currentChoice))
                {
                    break;
                }
                if (!executeUserChoice.IsValid(currentChoice))
                {
                    showMessageToUser.ShowInstructionForUser("Ivalid input! Please, try again, choose from the options.");
                    continue;
                }
                executeUserChoice.MakeFigure(board, drawing, currentChoice);
            }
        }
Example #29
0
        public void AttemptToSave2CommentsWithSameCoordinates()
        {
            IWorkbook       wb        = _testDataProvider.CreateWorkbook();
            ISheet          sh        = wb.CreateSheet();
            ICreationHelper factory   = wb.GetCreationHelper();
            IDrawing        patriarch = sh.CreateDrawingPatriarch();

            patriarch.CreateCellComment(factory.CreateClientAnchor());

            try
            {
                patriarch.CreateCellComment(factory.CreateClientAnchor());
                _testDataProvider.WriteOutAndReadBack(wb);
                Assert.Fail("Expected InvalidOperationException(found multiple cell comments for cell $A$1");
            }
            catch (InvalidOperationException e)
            {
                // HSSFWorkbooks fail when writing out workbook
                Assert.AreEqual(e.Message, "found multiple cell comments for cell A1");
            }
            catch (ArgumentException e)
            {
                // XSSFWorkbooks fail when creating and setting the cell address of the comment
                Assert.AreEqual(e.Message, "Multiple cell comments in one cell are not allowed, cell: A1");
            }
            finally
            {
                wb.Close();
            }
        }
Example #30
0
 public Registry()
 {
     this.Board             = new Board();
     this.ProcessUserInput  = new ProcessUserInput();
     this.ShowMessageToUser = new ShowMessageToUser();
     this.Drawing           = new Drawing();
 }
Example #31
0
        /// <summary>
        /// 设置单元格值
        /// </summary>
        /// <param name="cell">单元格</param>
        /// <param name="value">值</param>
        public static void SetValue(this ICell cell, object value)
        {
            if (cell == null)
            {
                return;
            }

            if (value == null)
            {
                cell.SetCellValue(string.Empty);
                return;
            }

            if (value.GetType().FullName.Equals("System.Byte[]"))
            {
                var           pictureIndex = cell.Sheet.Workbook.AddPicture((byte[])value, PictureType.PNG);
                IClientAnchor anchor       = cell.Sheet.Workbook.GetCreationHelper().CreateClientAnchor();
                anchor.Col1 = cell.ColumnIndex;
                anchor.Col2 = cell.ColumnIndex + cell.GetSpan().ColumnSpan;
                anchor.Row1 = cell.RowIndex;
                anchor.Row2 = cell.RowIndex + cell.GetSpan().RowSpan;
                IDrawing drawing = cell.Sheet.CreateDrawingPatriarch();
                IPicture picture = drawing.CreatePicture(anchor, pictureIndex);
                return;
            }

            TypeCode valueTypeCode = Type.GetTypeCode(value.GetType());

            switch (valueTypeCode)
            {
            case TypeCode.String:
                cell.SetCellValue(Convert.ToString(value));
                break;

            case TypeCode.DateTime:
                cell.SetCellValue(Convert.ToDateTime(value));
                break;

            case TypeCode.Boolean:
                cell.SetCellValue(Convert.ToBoolean(value));
                break;

            case TypeCode.Int16:
            case TypeCode.Int32:
            case TypeCode.Int64:
            case TypeCode.Byte:
            case TypeCode.Single:
            case TypeCode.Double:
            case TypeCode.Decimal:
            case TypeCode.UInt16:
            case TypeCode.UInt32:
            case TypeCode.UInt64:
                cell.SetCellValue(Convert.ToDouble(value));
                break;

            default:
                cell.SetCellValue(string.Empty);
                break;
            }
        }
Example #32
0
        public static void DrawRay(IDrawing owner, DrawingContext thisDC, Pen pen, CADPoint basePoint, CADVector direction, bool mdoelToCanvas = true)
        {
            CADVector dir;
            CADPoint  basePnt;

            if (mdoelToCanvas)
            {
                basePnt = owner.ModelToCanvas(basePoint);
                CADPoint otherPnt = owner.ModelToCanvas(basePoint + direction);
                dir = (otherPnt - basePnt).normalized;
            }
            else
            {
                basePnt = basePoint;
                dir     = direction;
                dir.Normalize();
            }

            double xk = double.MinValue;
            double yk = double.MinValue;

            if (basePnt.X > 0 && basePnt.X < 10000 &&
                basePnt.Y > 0 && basePnt.Y < 10000)
            {
                xk = 1;
                yk = 1;
            }
            else
            {
                if (dir.Y != 0)
                {
                    double k = -basePnt.Y / dir.Y;
                    if (k >= 0)
                    {
                        xk = basePnt.X + k * dir.X;
                    }
                }
                if (dir.X != 0)
                {
                    double k = -basePnt.X / dir.X;
                    if (k >= 0)
                    {
                        yk = basePnt.Y + k * dir.Y;
                    }
                }
            }

            if (xk > 0 ||
                (xk == 0 && dir.X * dir.Y >= 0) ||
                yk > 0 ||
                (yk == 0 && dir.X * dir.Y >= 0))
            {
                CADPoint epnt = basePnt + 10000 * dir;

                DrawLine(owner, thisDC, pen,
                         new CADPoint(basePnt.X, basePnt.Y),
                         new CADPoint(epnt.X, epnt.Y), false);
            }
        }
 public SelectableDrawing(IDrawing drawing)
 {
     this.drawing = drawing;
     this.selectionBorder = new SelectionBorder(drawing);
     if (drawing is IResizable) {
         (drawing as IResizable).DrawingResized += new DrawingResizedHandler(OnDrawingResized);
     }
 }
 public static LinkDirection Create(IDrawing sourceDrawing, IDrawing destinationDrawing)
 {
     CardinalDirection from = CardinalDirection.None;
     CardinalDirection to = CardinalDirection.None;
     if (sourceDrawing.Location.Y > destinationDrawing.Location.Y + destinationDrawing.Size.Height) {
         from = CardinalDirection.South;
         to = CardinalDirection.North;
     } else if (sourceDrawing.Location.Y + sourceDrawing.Size.Height < destinationDrawing.Location.Y) {
         from = CardinalDirection.North;
         to = CardinalDirection.South;
     } else if (sourceDrawing.Location.X > destinationDrawing.Location.X + destinationDrawing.Size.Width) {
         from = CardinalDirection.East;
         to = CardinalDirection.West;
     } else if (sourceDrawing.Location.X + sourceDrawing.Size.Width < destinationDrawing.Location.X) {
         from = CardinalDirection.West;
         to = CardinalDirection.East;
     }
     return new LinkDirection(from, to);
 }
Example #35
0
        public NSWEDrawing(ILinkableDrawing drawing)
        {
            this.drawing = drawing;
            links = new List<LinkDrawing>();

            inputLinkList = new List<LinkDrawing>();
            outputLinkList = new List<LinkDrawing>();

            linksNone = new List<LinkDrawing>();
            linksNorth = new List<LinkDrawing>();
            linksSouth = new List<LinkDrawing>();
            linksWest = new List<LinkDrawing>();
            linksEast = new List<LinkDrawing>();

            linkPointsNone = new List<CardinalLinkPoint>();
            linkPointsNorth = new List<CardinalLinkPoint>();
            linkPointsSouth = new List<CardinalLinkPoint>();
            linkPointsWest = new List<CardinalLinkPoint>();
            linkPointsEast = new List<CardinalLinkPoint>();

            switch (drawing.LinkAttachMode) {
                case LinkAttachMode.LEFT_RIGHT:
                    allowEast = true;
                    allowWest = true;
                    allowNorth = false;
                    allowSouth = false;
                    break;
                case LinkAttachMode.TOP_BOTTOM:
                    allowEast = false;
                    allowWest = false;
                    allowNorth = true;
                    allowSouth = true;
                    break;
                case LinkAttachMode.ALL:
                    allowEast = true;
                    allowWest = true;
                    allowNorth = true;
                    allowSouth = true;
                    break;
            }
        }
Example #36
0
 public MovableDrawing(IDrawing drawing)
 {
     this.drawing = drawing;
 }
 // connect the scripting language to the IDrawing instance
 public static void SetDrawing(IDrawing drawing)
 {
     Drawing = drawing;
 }
Example #38
0
 public void ArangeLinksForItem(IDrawing structureDrawing)
 {
     arrangeConnectionPoints(structureDrawing);
     arrangeLinkPoints(structureDrawing);
 }
 public DrawStuffOnTheGamesCanvas( IDrawing drawing, IGame game )
 {
     _drawing = drawing ;
     _game = game ;
     _debugDrawActions = new List<Action>();
 }
Example #40
0
		public SelectionBorder(IDrawing item)
		{
			this.drawing = item;
		}
Example #41
0
 private void arrangeConnectionPoints(IDrawing diagramItem)
 {
     NSWEDrawing item = virtualMapping[diagramItem];
     if (item.LinkPointsSouth.Count > 1)
         SortCounterPoints(item.LinkPointsSouth);
     if (item.LinkPointsNorth.Count > 1)
         SortCounterPoints(item.LinkPointsNorth);
     if (item.LinkPointsWest.Count > 1)
         SortCounterPoints(item.LinkPointsWest);
     if (item.LinkPointsEast.Count > 1)
         SortCounterPoints(item.LinkPointsEast);
 }
        void InvalidateDrawing(IDrawing drawing)
        {
            drawing.Invalidated = true;
            MergeableRectangle newRectangleToInvalidate = new MergeableRectangle(drawing.InvalidatedRegion);
            Rectangle auxRectangle = newRectangleToInvalidate.Bounds;
            invalidateOverlappingDrawings(previouslyInvalidatedRectangle);
            newRectangleToInvalidate.Merge(previouslyInvalidatedRectangle);
            previouslyInvalidatedRectangle = auxRectangle;
            invalidateOverlappingDrawings(newRectangleToInvalidate.Bounds);

            double scaleFactor = containerDrawer.DiagramContainer.ZoomFactor / 100;
            Rectangle r = new Rectangle((int)(Math.Ceiling(newRectangleToInvalidate.Bounds.X * scaleFactor)),
                              (int)(Math.Ceiling(newRectangleToInvalidate.Bounds.Y * scaleFactor)),
                              (int)(Math.Ceiling(newRectangleToInvalidate.Bounds.Width * scaleFactor)),
                              (int)(Math.Ceiling(newRectangleToInvalidate.Bounds.Height * scaleFactor)));

            containerDrawer.DiagramContainer.Invalidate(r);
        }
Example #43
0
        public void AddDrawing(IDrawing drawing, bool selectable)
        {
            IDrawing drawingToAdd;
            if (selectable) {
                drawingToAdd = new SelectableDrawing(drawing);

            } else {
                drawingToAdd = drawing;
            }
            containerDrawer.Drawings.Add(drawingToAdd);
        }
 public DeleteFromDrawingVisitor(IDrawing drawing)
 {
     Drawing = drawing;
     DeletedFigures = new FigureCollection ();
 }
		public InsertIntoDrawingVisitor (IDrawing drawing) {
			Drawing       = drawing;
			_addedFigures = new FigureCollection ();
		}
 public DrawingResizedEventArgs(IDrawing drawing, Rectangle previousBounds, Rectangle newBounds)
 {
     this.drawing = drawing;
     this.previousBounds = previousBounds;
     this.newBounds = newBounds;
 }
 private Figure FindConnectableFigure(double x, double y, IDrawing drawing)
 {
     return drawing.Children.LastOrDefault (f => f.ContainsPoint (x, y) && IsConnectionPossible (f));
 }
Example #48
0
 private RectangleF getDrawerScaledBounds(float scaleFactor, IDrawing drawer)
 {
     return new RectangleF(
         (float)(drawer.Location.X * scaleFactor),
         (float)(drawer.Location.Y * scaleFactor),
         (float)(drawer.Size.Width * scaleFactor),
         (float)(drawer.Size.Height * scaleFactor)
     );
 }
Example #49
0
 private void FillSheet(int tableIndex,DataTable dataToFill)
 {
     if (string.IsNullOrEmpty(dataToFill.TableName))
     {
         dataToFill.TableName = "table" + tableIndex;
     }
     ISheet sheet;
     if (tableIndex < Book.NumberOfSheets)
     {
         sheet = Book.GetSheetAt(tableIndex);
     }
     else
     {
         sheet = Book.CreateSheet(dataToFill.TableName);
     }
     patriarch = sheet.CreateDrawingPatriarch();
     DataColumnCollection cols = dataToFill.Columns;
     //创建表头
     for (int h = 0; h <= HeaderRows; h++)
     {
         IRow headrow = sheet.CreateRow(h);
         if (h == HeaderRows)
         {
             CreateCellForRow(headrow, cols, null, true);
         }
         else
         {
             CreateCellForRow(headrow, cols, null, false);
         }
     }
     //填充内容
     for (int i = 0; i < dataToFill.Rows.Count; i++)
     {
         var dataRow = dataToFill.Rows[i];
         var excelRow = sheet.CreateRow(HeaderRows + 1 + i);
         CreateCellForRow(excelRow, cols, dataRow, false);
     }
 }
        Rectangle getStructureInvalidatedRegion(IDrawing targetDrawing)
        {
            targetDrawing.Invalidated = true;
            MergeableRectangle rectangle = new MergeableRectangle(targetDrawing.InvalidatedRegion);

            for (int i = 0; i < containerDrawer.Drawings.Count; i++) {
                IDrawing drawing = containerDrawer.Drawings[i];
                if (drawing.Bounds.IntersectsWith(rectangle.Bounds) && drawing.Invalidated == false) {
                    drawing.Invalidated = true;
                    rectangle.Merge(drawing.Bounds);
                }
            }
            return rectangle.Bounds;
        }
 public void DirectLinks(IDrawing item)
 {
     throw new NotImplementedException();
 }
Example #52
0
 public GleedRenderer( IDrawing drawing, IGame game )
 {
     _drawing = drawing ;
     _game = game ;
     _debugDrawActions = new List<Action>();
 }
Example #53
0
        public void AddItem(Item item, IDrawing drawing, bool selectable, bool movable)
        {
            IDrawing drawingToAdd;
            if (selectable) {
                drawingToAdd = new SelectableDrawing(drawing);

            } else {
                drawingToAdd = drawing;
            }
            item.Drawing = drawing;
            containerDrawer.Drawings.Add(drawingToAdd);
        }
		private IFigure FindConnectableFigure (double x, double y, IDrawing drawing) {
			foreach (IFigure figure in drawing.FiguresEnumeratorReverse) {
				if (figure.ContainsPoint (x, y) && IsConnectionPossible (figure)) {
					return figure;
				}
			}
			return null;
		}
Example #55
0
        // Set the comment on a sheet
        //
        private static void setComment(ISheet sheet, ICell cell, IDrawing drawing, String commentText, ICreationHelper helper, IClientAnchor anchor)
        {
            //System.out.println("Setting col: " + cell.getColumnIndex() + " and row " + cell.getRowIndex());
            anchor.Col1 = (cell.ColumnIndex);
            anchor.Col2 = (cell.ColumnIndex);
            anchor.Row1 = (cell.RowIndex);
            anchor.Row2 = (cell.RowIndex);

            // get comment, or create if it does not exist
            // NOTE - only occurs if getCellComment is called first
            IComment comment = cell.CellComment;
            //Comment comment = null;
            if (comment == null)
            {
                comment = drawing.CreateCellComment(anchor);
            }
            comment.Author = ("Test");

            // attach the comment to the cell
            comment.String = (helper.CreateRichTextString(commentText));
            cell.CellComment = (comment);
        }
		private IConnector FindConnectionTarget (double x, double y, IDrawing drawing) {
			IFigure target = FindConnectableFigure (x, y, drawing);
			return target != null ? target.ConnectorAt (x, y) : null;
		}
Example #57
0
        /// <summary>
        /// This method arrange all the points of the links attached to the IDrawing
        /// </summary>
        /// <param name="item"></param>
        private void arrangeLinkPoints(IDrawing item)
        {
            int drawingNorthPoints = 0, drawingSouthPoints = 0, drawingWestPoints = 0, drawingEastPoints = 0;
            NSWEDrawing virtualItem = virtualMapping[item];

            foreach (LinkDrawing link in virtualItem.InputLinkList) {
                switch (link.Direction.To) {
                    case CardinalDirection.North:
                        drawingSouthPoints++;
                        link.DestinationPoint.X = item.Location.X
                        + drawingSouthPoints * item.Size.Width / (virtualItem.LinkPointsSouth.Count + 1);
                        link.DestinationPoint.Y = item.Location.Y + item.Size.Height;
                        break;
                    case CardinalDirection.South:
                        drawingNorthPoints++;
                        link.DestinationPoint.X = item.Location.X
                        + drawingNorthPoints * item.Size.Width / (virtualItem.LinkPointsNorth.Count + 1);
                        link.DestinationPoint.Y = item.Location.Y;
                        break;
                    case CardinalDirection.West:
                        drawingEastPoints++;
                        link.DestinationPoint.X = item.Location.X + item.Size.Width;
                        link.DestinationPoint.Y = item.Location.Y
                        + drawingEastPoints * item.Size.Height / (virtualItem.LinkPointsEast.Count + 1);
                        break;
                    case CardinalDirection.East:
                        drawingWestPoints++;
                        link.DestinationPoint.X = item.Location.X;
                        link.DestinationPoint.Y = item.Location.Y
                        + drawingWestPoints * item.Size.Height / (virtualItem.LinkPointsWest.Count + 1);
                        break;
                    default:
                        link.DestinationPoint.X = item.Location.X + item.Size.Width / 2;
                        link.DestinationPoint.Y = item.Location.Y + item.Size.Height / 2;
                        break;
                }
            }

            foreach (LinkDrawing link in virtualItem.OutputLinkList) {
                switch (link.Direction.From) {
                    case CardinalDirection.South:
                        drawingNorthPoints++;
                        link.SourcePoint.X = item.Location.X
                        + drawingNorthPoints * item.Size.Width / (virtualItem.LinkPointsNorth.Count + 1);
                        link.SourcePoint.Y = item.Location.Y;
                        break;
                    case CardinalDirection.North:
                        drawingSouthPoints++;
                        link.SourcePoint.X = item.Location.X
                        + drawingSouthPoints * item.Size.Width / (virtualItem.LinkPointsSouth.Count + 1);
                        link.SourcePoint.Y = item.Location.Y + item.Size.Height;
                        break;
                    case CardinalDirection.East:
                        drawingWestPoints++;
                        link.SourcePoint.X = item.Location.X;
                        link.SourcePoint.Y = item.Location.Y
                        + drawingWestPoints * item.Size.Height / (virtualItem.LinkPointsWest.Count + 1);
                        break;
                    case CardinalDirection.West:
                        drawingEastPoints++;
                        link.SourcePoint.X = item.Location.X + item.Size.Width;
                        link.SourcePoint.Y = item.Location.Y
                        + drawingEastPoints * item.Size.Height / (virtualItem.LinkPointsEast.Count + 1);
                        break;
                    default:
                        link.SourcePoint.X = item.Location.X + item.Size.Width / 2;
                        link.SourcePoint.Y = item.Location.Y + item.Size.Height / 2;
                        break;
                }

            }
            arrangeConnectionPoints(item);
        }
Example #58
0
        protected bool NullCell(Point coords, out IDrawing drawing)
        {
            drawing = null;

            return false;
        }
 public LightEditor( )
 {
     _properties=new LightProperties(  );
     _drawing = ObjectFactory.GetInstance<IDrawing>( ) ;
 }
 public DrawingEventArgs(IDrawing draw, RectangleD rect)
 {
     Drawing = draw;
     Rectangle = rect;
 }