コード例 #1
0
        /// <inheritdoc/>
        public async void OnImportData(IProjectContainer project)
        {
            var dlg = new OpenFileDialog()
            {
                Title = "Open"
            };

            dlg.Filters.Add(new FileDialogFilter()
            {
                Name = "Csv", Extensions = { "csv" }
            });
            dlg.Filters.Add(new FileDialogFilter()
            {
                Name = "All", Extensions = { "*" }
            });
            var result = await dlg.ShowAsync(_serviceProvider.GetService <MainWindow>());

            if (result != null)
            {
                _serviceProvider.GetService <ProjectEditor>().OnImportData(project, result.FirstOrDefault());
            }
        }
コード例 #2
0
 /// <summary>
 /// Set shape style.
 /// </summary>
 /// <param name="project">The project instance.</param>
 /// <param name="shape">The shape instance.</param>
 /// <param name="style">The style instance.</param>
 public static void ApplyStyle(this IProjectContainer project, IBaseShape shape, IShapeStyle style)
 {
     if (shape != null && style != null)
     {
         if (shape is IGroupShape group)
         {
             var shapes = ProjectContainer.GetAllShapes(group.Shapes);
             foreach (var child in shapes)
             {
                 var previous = child.Style;
                 var next     = (IShapeStyle)style.Copy(null);
                 project?.History?.Snapshot(previous, next, (p) => child.Style = p);
                 child.Style = next;
             }
         }
         else
         {
             var previous = shape.Style;
             var next     = (IShapeStyle)style.Copy(null);
             project?.History?.Snapshot(previous, next, (p) => shape.Style = p);
             shape.Style = next;
         }
     }
 }
コード例 #3
0
        /// <inheritdoc/>
        public async void OnImportData(IProjectContainer project)
        {
            var editor = _serviceProvider.GetService <IProjectEditor>();
            var dlg    = new OpenFileDialog()
            {
                Title = "Open"
            };

            foreach (var reader in editor?.TextFieldReaders)
            {
                dlg.Filters.Add(new FileDialogFilter()
                {
                    Name = reader.Name, Extensions = { reader.Extension }
                });
            }
            dlg.Filters.Add(new FileDialogFilter()
            {
                Name = "All", Extensions = { "*" }
            });
            var result = await dlg.ShowAsync(_serviceProvider.GetService <MainWindow>());

            if (result != null)
            {
                var path = result.FirstOrDefault();
                if (path == null)
                {
                    return;
                }
                string ext    = System.IO.Path.GetExtension(path).ToLower().TrimStart('.');
                var    reader = editor.TextFieldReaders.Where(w => string.Compare(w.Extension, ext, StringComparison.OrdinalIgnoreCase) == 0).FirstOrDefault();
                if (reader != null)
                {
                    editor.OnImportData(project, path, reader);
                }
            }
        }
コード例 #4
0
ファイル: ContainerFactory.cs プロジェクト: bangush/Core2D
        private IPageContainer CreateDefaultTemplate(IContainerFactory containerFactory, IProjectContainer project, string name)
        {
            var factory  = _serviceProvider.GetService <IFactory>();
            var template = containerFactory.GetTemplate(project, name);

            template.IsGridEnabled       = true;
            template.IsBorderEnabled     = true;
            template.GridOffsetLeft      = 30.0;
            template.GridOffsetTop       = 30.0;
            template.GridOffsetRight     = -30.0;
            template.GridOffsetBottom    = -30.0;
            template.GridCellWidth       = 30.0;
            template.GridCellHeight      = 30.0;
            template.GridStrokeColor     = factory.CreateArgbColor(0xFF, 0xDE, 0xDE, 0xDE);
            template.GridStrokeThickness = 1.0;

            return(template);
        }
コード例 #5
0
 public ProjectsController(IProjectContainer pContainer, IUsersContainer uContainer)
 {
     this._pContainer = pContainer;
     this._uContainer = uContainer;
 }
コード例 #6
0
 /// <inheritdoc/>
 void IProjectExporter.Save(string path, IProjectContainer project)
 {
     throw new NotSupportedException("Saving projects as png drawing is not supported.");
 }
コード例 #7
0
 /// <summary>
 /// Add group.
 /// </summary>
 /// <param name="project">The project instance.</param>
 /// <param name="library">The group library instance.</param>
 /// <param name="group">The group instance.</param>
 public static void AddGroup(this IProjectContainer project, ILibrary <IGroupShape> library, IGroupShape group)
 {
     AddItem(project, library, group);
 }
コード例 #8
0
 /// <summary>
 /// Add style.
 /// </summary>
 /// <param name="project">The project instance.</param>
 /// <param name="library">The style library instance.</param>
 /// <param name="style">The style instance.</param>
 public static void AddStyle(this IProjectContainer project, ILibrary <IShapeStyle> library, IShapeStyle style)
 {
     AddItem(project, library, style);
 }
コード例 #9
0
ファイル: ContainerFactory.cs プロジェクト: bamfbamf/Core2D
        /// <summary>
        /// Creates a new instance of the <see cref="PageContainer"/> class.
        /// </summary>
        /// <param name="containerFactory">The container factory.</param>
        /// <param name="project">The new container owner project.</param>
        /// <param name="name">The new container name.</param>
        /// <returns>The new instance of the <see cref="PageContainer"/>.</returns>
        private IPageContainer CreateGridTemplate(IContainerFactory containerFactory, IProjectContainer project, string name)
        {
            var factory  = _serviceProvider.GetService <IFactory>();
            var template = containerFactory.GetTemplate(project, name);

            var style = project
                        .StyleLibraries.FirstOrDefault(g => g.Name == "Template")
                        .Items.FirstOrDefault(s => s.Name == "Grid");
            var layer   = template.Layers.FirstOrDefault();
            var builder = layer.Shapes.ToBuilder();
            var grid    = factory.CreateRectangleShape(
                0, 0,
                template.Width, template.Height,
                style,
                project.Options.PointShape);

            grid.IsStroked    = true;
            grid.IsFilled     = false;
            grid.IsGrid       = true;
            grid.OffsetX      = 30.0;
            grid.OffsetY      = 30.0;
            grid.CellWidth    = 30.0;
            grid.CellHeight   = 30.0;
            grid.State.Flags &= ~ShapeStateFlags.Printable;
            builder.Add(grid);
            layer.Shapes = builder.ToImmutable();

            return(template);
        }
コード例 #10
0
 /// <inheritdoc/>
 public void Save(Stream stream, IProjectContainer project)
 {
     throw new NotSupportedException("Saving projects as webp drawing is not supported.");
 }
コード例 #11
0
 public SubtasksController(ISubtasksContainer subtasksContainer, IProjectContainer projectsContainer)
 {
     this._subtasksContainer = subtasksContainer;
     this._pContainer        = projectsContainer;
 }
コード例 #12
0
ファイル: ContainerFactory.cs プロジェクト: dagrigorev/Core2D
        private IPageContainer CreateDefaultTemplate(IContainerFactory containerFactory, IProjectContainer project, string name)
        {
            var factory  = _serviceProvider.GetService <IFactory>();
            var template = containerFactory.GetTemplate(project, name);

            var style   = factory.CreateShapeStyle("Default", 255, 222, 222, 222, 255, 222, 222, 222, 1.0);
            var layer   = template.Layers.FirstOrDefault();
            var builder = layer.Shapes.ToBuilder();
            var grid    = factory.CreateRectangleShape(
                30.0, 30.0,
                template.Width - 30.0, template.Height - 30.0,
                style);

            grid.IsStroked    = true;
            grid.IsFilled     = false;
            grid.IsGrid       = true;
            grid.OffsetX      = 30.0;
            grid.OffsetY      = 30.0;
            grid.CellWidth    = 30.0;
            grid.CellHeight   = 30.0;
            grid.State.Flags &= ~ShapeStateFlags.Printable;
            builder.Add(grid);
            layer.Shapes = builder.ToImmutable();

            return(template);
        }
コード例 #13
0
 public NotesController(INotesContainer nContainer, IProjectContainer pContainer)
 {
     this._nContainer = nContainer;
     this._pContainer = pContainer;
 }