Exemplo n.º 1
0
        public static async Task UpdateFigmaFilesAsync(this Project sender, IEnumerable <ProjectFile> projectFiles, FigmaBundle figmaBundle, FigmaFileVersion version, bool translateStrings)
        {
            var includeImages = true;
            var fileProvider  = new ControlRemoteNodeProvider()
            {
                Version = version
            };
            await fileProvider.LoadAsync(figmaBundle.FileId);

            Console.WriteLine($"[Done] Loaded Remote File provider for Version {version?.id ?? "Current"}");
            var codeRendererService = new NativeViewCodeService(fileProvider)
            {
                TranslationService = new Services.MonoDevelopTranslationService()
            };

            await Task.Run(() => {
                figmaBundle.Update(version, fileProvider, includeImages: includeImages);
            });

            await sender.IncludeBundleAsync(figmaBundle, includeImages : includeImages);

            foreach (var designerFile in projectFiles)
            {
                if (designerFile.TryGetFigmaNode(fileProvider, out var figmaNode))
                {
                    var fileView = figmaBundle.GetFigmaFileView(figmaNode);
                    fileView.GeneratePartialDesignerClass(codeRendererService,
                                                          designerFile.FilePath.ParentDirectory,
                                                          figmaBundle.Namespace,
                                                          translateStrings);
                }
            }
        }
Exemplo n.º 2
0
        public void Init()
        {
            FigmaControlsApplication.Init(Resources.PublicToken);
            converters = FigmaControlsContext.Current.GetConverters(true);

            provider = new ControlRemoteNodeProvider();
            provider.Load("sjjkWQHVrvxVDuQnm7AFMS");
        }
Exemplo n.º 3
0
        public void Init()
        {
            NSApplicationInitializer.Initialize();
            FigmaControlsApplication.Init(Resources.PublicToken);
            converters = FigmaControlsContext.Current.GetConverters(true);

            provider = new ControlRemoteNodeProvider();
            provider.Load("NSYKxXXvFAoEsf0c42NaHh");
        }
Exemplo n.º 4
0
        public void Init()
        {
            NSApplicationInitializer.Initialize();
            FigmaControlsApplication.Init(Resources.PublicToken);
            converters = FigmaControlsContext.Current.GetConverters(true);

            provider = new ControlRemoteNodeProvider();
            provider.Load("oc3h9FQGFDtiRcR5goEnzy");
        }
Exemplo n.º 5
0
        public override void Init()
        {
            base.Init();
            converters = FigmaControlsContext.Current.GetConverters(true);

            provider = new ControlRemoteNodeProvider();
            provider.Load("6AMAixZCkmIrezBY7W7jKU");

            propertyConfigure = new CodePropertyConfigure();
            service           = new CodeRenderService(provider, converters, propertyConfigure);
        }
Exemplo n.º 6
0
        async Task GenerateBundle(string fileId, FigmaFileVersion version, string namesSpace, bool includeImages, bool translateLabels)
        {
            IdeApp.Workbench.StatusBar.AutoPulse = true;
            IdeApp.Workbench.StatusBar.BeginProgress($"Adding package ‘{fileId}’…");

            //we need to ask to figma server to get nodes as demmand
            var fileProvider = new ControlRemoteNodeProvider();
            await fileProvider.LoadAsync(fileId);

            //bundle generation
            var currentBundle = await Task.Run(() =>
            {
                var bundle = currentProject.CreateBundle(fileId, version, fileProvider, namesSpace);
                bundle.SaveAll(includeImages, fileProvider);
                return(bundle);
            });

            //now we need to add to Monodevelop all the stuff
            await currentProject.IncludeBundleAsync(currentBundle, includeImages, savesInProject : false);

            //to generate all layers we need a code renderer
            var codeRendererService = new NativeViewCodeService(fileProvider)
            {
                TranslationService = new MonoDevelopTranslationService()
            };

            var mainFigmaNodes = fileProvider.GetMainGeneratedLayers();

            foreach (var figmaNode in mainFigmaNodes)
            {
                if (!(figmaNode is FigmaFrame) || (figmaNode is FigmaGroup))
                {
                    continue;
                }
                var figmaBundleView = currentBundle.GetFigmaFileView(figmaNode);
                figmaBundleView.Generate(codeRendererService, writePublicClassIfExists: false, namesSpace: currentBundle.Namespace, translateLabels);

                await currentProject.AddFigmaBundleViewAsync(figmaBundleView, savesInProject : false);
            }

            await IdeApp.ProjectOperations.SaveAsync(currentProject);

            IdeApp.Workbench.StatusBar.EndProgress();
            IdeApp.Workbench.StatusBar.AutoPulse = false;
        }
Exemplo n.º 7
0
        public static async Task UpdateFigmaFilesAsync(this Project sender, ProgressMonitor monitor, IEnumerable <ProjectFile> projectFiles, FigmaBundle figmaBundle, FigmaFileVersion version, bool translateStrings)
        {
            var includeImages = true;
            var fileProvider  = new ControlRemoteNodeProvider()
            {
                Version = version
            };
            await fileProvider.LoadAsync(figmaBundle.FileId);

            FigmaSharp.Services.LoggingService.LogInfo($"[Done] Loaded Remote File provider for Version {version?.id ?? "Current"}");
            var codeRendererService = new NativeViewCodeService(fileProvider)
            {
                TranslationService = new Services.MonoDevelopTranslationService()
            };

            await Task.Run(() => {
                figmaBundle.Update(version, fileProvider, includeImages: includeImages);
            });

            await sender.IncludeBundleAsync(monitor, figmaBundle, includeImages : includeImages);

            foreach (var designerFile in projectFiles)
            {
                if (designerFile.TryGetFigmaNode(fileProvider, out var figmaNode))
                {
                    try
                    {
                        var fileView = figmaBundle.GetFigmaFileView(figmaNode);
                        fileView.GeneratePartialDesignerClass(codeRendererService,
                                                              designerFile.FilePath.ParentDirectory,
                                                              figmaBundle.Namespace,
                                                              translateStrings);
                        await sender.FormatFileAsync(designerFile.FilePath);
                    }
                    catch (Exception ex)
                    {
                        FigmaSharp.Services.LoggingService.LogError($"Cannot update {designerFile.FilePath}' with '{figmaNode.name}' node.", ex);
                    }
                }
            }
        }
Exemplo n.º 8
0
        static void Example1()
        {
            const string fileName = "FwVa4JS5QsohRhNEnEBKslFk";

            var fileProvider = new ControlRemoteNodeProvider();

            fileProvider.Load(fileName);

            var rendererService = new ControlViewRenderingService(fileProvider);

            //we want to include some special converters to handle windows like normal view containers
            rendererService.CustomConverters.Add(new EmbededSheetDialogConverter(fileProvider));
            rendererService.CustomConverters.Add(new EmbededWindowConverter(fileProvider));

            rendererService.RenderInWindow(mainWindow);

            new StoryboardLayoutManager()
            .Run(mainWindow.Content, rendererService);

            mainWindow.Center();
        }