Exemplo n.º 1
0
        // TODO rework and cleanup
        public void DrawAllTables()
        {
            //Pen p = new Pen(b);

            //Brush b2 = new SolidBrush(Color.Red);


            //#if DEBUG
            //            RelationPen = new Pen(Color.FromArgb(172, 128, 224, 0), 15);
            //#endif
            //            RelationPen.Width = 4;


            //            Font drawFont2 = new Font("Arial", 16);
            //            SolidBrush drawBrush = new SolidBrush(Color.Black);


            string pathToImage = "";

#if DEBUG
            pathToImage = Path.Combine("Images", "Icons");
#else
            pathToImage = Path.Combine(Program.ApplicationSetting.BasePath, "Images", "Icons");
#endif

            var pkBitmap = SKBitmap.Decode(Path.Combine(pathToImage, "pk.png"));
            pkBitmap = pkBitmap.Resize(new SKSizeI(35, 20), SKFilterQuality.High);

            var fkBitmap = SKBitmap.Decode(Path.Combine(pathToImage, "fk.png"));
            fkBitmap = fkBitmap.Resize(new SKSizeI(35, 20), SKFilterQuality.High);

            Dictionary <string, SKBitmap> icons = new Dictionary <string, SKBitmap>();
            icons.Add("int", SKBitmap.Decode(Path.Combine(pathToImage, "Integer_16x.png")));
            icons.Add("string", SKBitmap.Decode(Path.Combine(pathToImage, "String_16x.png")));
            icons.Add("bool", SKBitmap.Decode(Path.Combine(pathToImage, "TrueFalse_16x.png")));
            icons.Add("datetime", SKBitmap.Decode(Path.Combine(pathToImage, "DateTimeAxis_16x.png")));

            // possible linux fix for green tint
            //key.MakeTransparent();



            var primaryKeys = GeneratePrimaryKeyPositions();

            DrawRelations(primaryKeys);
            var maxHeight = DrawTables(pkBitmap, fkBitmap, icons);

            Bitmap = DrawingHelper.CropImage(Bitmap, new SKRect(0, 0, ColumnCount * (TableWidth + LeftPadding) + LeftPadding, maxHeight));
        }