Пример #1
0
        void RefreshTree(string docId)
        {
            var converters = NativeControlsContext.Current.GetConverters();

            fileProvider = new FigmaRemoteFileProvider();
            fileProvider.Load(docId);

            var codePropertyConverter = NativeControlsContext.Current.GetCodePropertyConverter();

            codeRenderer = new NativeViewCodeService(fileProvider, converters, codePropertyConverter);

            data = new FigmaNodeView(fileProvider.Response.document);
            figmaDelegate.ConvertToNodes(fileProvider.Response.document, data);
            outlinePanel.GenerateTree(data);

            ((NSTextView)logTextField.DocumentView).Value = string.Empty;
        }
Пример #2
0
        public void ConvertToNodes(FigmaNode figmaNode, FigmaNodeView node)
        {
            var current = new FigmaNodeView(figmaNode);

            node.AddChild(current);

            if (figmaNode is FigmaDocument document)
            {
                if (document.children != null)
                {
                    foreach (var item in document.children)
                    {
                        try
                        {
                            ConvertToNodes(item, current);
                        }
                        catch (Exception ex)
                        {
                            LoggingService.LogError("[FIGMA] Error", ex);
                        }
                    }
                }
                return;
            }

            if (figmaNode is IFigmaNodeContainer container)
            {
                foreach (var item in container.children)
                {
                    try
                    {
                        ConvertToNodes(item, current);
                    }
                    catch (Exception ex)
                    {
                        LoggingService.LogError("[FIGMA] Error", ex);
                    }
                }
            }
        }
Пример #3
0
        public void ConvertToNodes(FigmaNode figmaNode, FigmaNodeView node)
        {
            var current = new FigmaNodeView(figmaNode);

            node.AddChild(current);

            if (figmaNode is FigmaDocument document)
            {
                if (document.children != null)
                {
                    foreach (var item in document.children)
                    {
                        try
                        {
                            ConvertToNodes(item, current);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex);
                        }
                    }
                }
                return;
            }

            if (figmaNode is IFigmaNodeContainer container)
            {
                foreach (var item in container.children)
                {
                    try
                    {
                        ConvertToNodes(item, current);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
            }
        }
Пример #4
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Do any additional setup after loading the view.
            outlinePanel = new OutlinePanel();

            var scrollView = outlinePanel.EnclosingScrollView;

            outlinePanel.RaiseFirstResponder += OutlinePanel_RaiseFirstResponder;

            treeHierarchyContainer.AddSubview(scrollView);

            treeHierarchyContainer.TranslatesAutoresizingMaskIntoConstraints = false;
            scrollView.TranslatesAutoresizingMaskIntoConstraints             = false;

            scrollView.TopAnchor.ConstraintEqualToAnchor(treeHierarchyContainer.TopAnchor).Active       = true;
            scrollView.BottomAnchor.ConstraintEqualToAnchor(treeHierarchyContainer.BottomAnchor).Active = true;
            scrollView.LeftAnchor.ConstraintEqualToAnchor(treeHierarchyContainer.LeftAnchor).Active     = true;
            scrollView.RightAnchor.ConstraintEqualToAnchor(treeHierarchyContainer.RightAnchor).Active   = true;

            figmaDelegate = new FigmaDesignerDelegate();

            var converters = FigmaSharp.AppContext.Current.GetFigmaConverters()
                             .Union(Resources.GetConverters())
                             .ToArray();

            fileProvider = new FigmaRemoteFileProvider();
            fileProvider.Load("CobaSo7LmEYsuGZB0ED0ewSs");

            var addChildConverter = new FigmaCodeAddChildConverter();
            var positionConverter = new FigmaCodePositionConverter();

            codeRenderer = new FigmaCodeRendererService(fileProvider, converters, positionConverter, addChildConverter);

            data = new FigmaNodeView(fileProvider.Response.document);
            figmaDelegate.ConvertToNodes(fileProvider.Response.document, data);
            outlinePanel.GenerateTree(data);
        }
        static FigmaNodeView Search(FigmaNodeView nodeView, FigmaNode view)
        {
            if (nodeView.Wrapper != null && nodeView.Wrapper == view)
            {
                return(nodeView);
            }

            if (nodeView.ChildCount == 0)
            {
                return(null);
            }

            for (int i = 0; i < nodeView.ChildCount; i++)
            {
                var node  = (FigmaNodeView)nodeView.GetChild(i);
                var found = Search(node, view);
                if (found != null)
                {
                    return(found);
                }
            }
            return(null);
        }
 internal void GenerateTree(FigmaDocument document, IFigmaDesignerDelegate figmaDelegate)
 {
     data = new FigmaNodeView(document);
     figmaDelegate.ConvertToNodes(document, data);
     outlinePanel.GenerateTree(data);
 }