public override object Copy(IDictionary <object, object>?shared) { var copy = new RecentFileViewModel(ServiceProvider) { Path = Path }; return(copy); }
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(); }