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; }
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); } } } }
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); } } } }
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); }