Ejemplo n.º 1
0
    public override object Copy(IDictionary <object, object>?shared)
    {
        var copy = new RecentFileViewModel(ServiceProvider)
        {
            Path = Path
        };

        return(copy);
    }
Ejemplo n.º 2
0
        public static void InitializeContext(IServiceProvider serviceProvider)
        {
            var factory = serviceProvider.GetService <IFactory>();

            // Editor

            Editor                 = serviceProvider.GetService <ProjectEditorViewModel>();
            Editor.CurrentTool     = Editor.Tools.FirstOrDefault(x => x.Title == "Selection");
            Editor.CurrentPathTool = Editor.PathTools.FirstOrDefault(x => x.Title == "Line");

            // Recent Projects

            Editor.RecentProjects = Editor.RecentProjects.Add(RecentFileViewModel.Create(serviceProvider, "Test1", "Test1.project"));
            Editor.RecentProjects = Editor.RecentProjects.Add(RecentFileViewModel.Create(serviceProvider, "Test2", "Test2.project"));

            // New Project

            Editor.OnNewProject();

            // Data

            var db      = factory.CreateDatabase("Db");
            var fields  = new string[] { "Column0", "Column1" };
            var columns = ImmutableArray.CreateRange(fields.Select(c => factory.CreateColumn(db, c)));

            db.Columns = columns;
            var values = Enumerable.Repeat("<empty>", db.Columns.Length).Select(c => factory.CreateValue(c));
            var record = factory.CreateRecord(
                db,
                ImmutableArray.CreateRange(values));

            db.Records       = db.Records.Add(record);
            db.CurrentRecord = record;

            Database = db;
            Record   = record;

            // Project

            var containerFactory = serviceProvider.GetService <IContainerFactory>();

            Project = containerFactory.GetProject();

            Template = factory.CreateTemplateContainer();

            Page = factory.CreatePageContainer();
            var layer = Page.Layers.FirstOrDefault();

            layer.Shapes      = layer.Shapes.Add(factory.CreateLineShape(0, 0, null));
            Page.CurrentLayer = layer;
            Page.CurrentShape = layer.Shapes.FirstOrDefault();
            Page.Template     = Template;

            Document = factory.CreateDocumentContainer();
            Layer    = factory.CreateLayerContainer();
            Options  = factory.CreateOptions();

            CurrentStyleLibrary = Project.CurrentStyleLibrary;
            CurrentGroupLibrary = Project.CurrentGroupLibrary;

            // Scripting

            Script = factory.CreateScript();

            // State

            State = ShapeStateFlags.Default;

            // Style

            ArgbColor   = factory.CreateArgbColor(128, 255, 0, 0);
            ArrowStyle  = factory.CreateArrowStyle();
            FontStyle   = FontStyleFlags.Regular;
            ShapeStyle  = factory.CreateShapeStyle("Default");
            StrokeStyle = factory.CreateStrokeStyle();
            FillStyle   = factory.CreateFillStyle();
            TextStyle   = factory.CreateTextStyle();

            // Shapes

            Arc             = factory.CreateArcShape(0, 0, ShapeStyle);
            CubicBezier     = factory.CreateCubicBezierShape(0, 0, ShapeStyle);
            Ellipse         = factory.CreateEllipseShape(0, 0, ShapeStyle);
            Group           = factory.CreateGroupShape("Group");
            Image           = factory.CreateImageShape(0, 0, ShapeStyle, "key");
            Line            = factory.CreateLineShape(0, 0, ShapeStyle);
            Path            = factory.CreatePathShape(ShapeStyle, null);
            Point           = factory.CreatePointShape();
            QuadraticBezier = factory.CreateQuadraticBezierShape(0, 0, ShapeStyle);
            Rectangle       = factory.CreateRectangleShape(0, 0, ShapeStyle);
            Text            = factory.CreateTextShape(0, 0, ShapeStyle, "Text");

            // Path

            ArcSegment             = factory.CreateArcSegment(factory.CreatePointShape(), factory.CreatePathSize(), 180, true, SweepDirection.Clockwise);
            CubicBezierSegment     = factory.CreateCubicBezierSegment(factory.CreatePointShape(), factory.CreatePointShape(), factory.CreatePointShape());
            LineSegment            = factory.CreateLineSegment(factory.CreatePointShape());
            PathFigure             = factory.CreatePathFigure(factory.CreatePointShape(), false);
            PathGeometry           = factory.CreatePathGeometry(ImmutableArray.Create <PathFigureViewModel>(), FillRule.EvenOdd);
            PathSize               = factory.CreatePathSize();
            QuadraticBezierSegment = factory.CreateQuadraticBezierSegment(factory.CreatePointShape(), factory.CreatePointShape());

            // Renderer

            ShapeRendererState = factory.CreateShapeRendererState();
        }