Exemple #1
0
        public InspectorPanel(EditorWindow window, WidgetTreeType treeType, InspectorService inspectorService,
                              float?splitOffset = null)
        {
            this.m_Window           = window;
            this.treeType           = treeType;
            this.m_InspectorService = inspectorService;
            this.m_InspectorService.selectionChanged += this.handleSelectionChanged;
            this.m_TreeView = new InspectorTreeView(new TreeViewState());
            this.m_TreeView.onNodeSelectionChanged += this.OnNodeSelectionChanged;
            this.m_TreeView.Reload();
            if (treeType == WidgetTreeType.Widget)
            {
                this.m_DetailTreeView = new InspectorTreeView(new TreeViewState());
                this.m_DetailTreeView.Reload();
            }

            this.m_GroupName = Singleton <InspectorObjectGroupManager> .Instance.nextGroupName("inspector");

            this.m_SplitOffset = splitOffset ?? window.position.height / 2;
        }
        public DiagnosticsNode getSelection(DiagnosticsNode previousSelection, WidgetTreeType treeType, bool localOnly,
                                            string groupName)
        {
            InspectorInstanceRef previousSelectionRef =
                previousSelection == null ? null : previousSelection.diagnosticRef;
            string          previousSelectionId = previousSelectionRef == null ? null : previousSelectionRef.id;
            DiagnosticsNode result = null;

            this.window.withBinding(() => {
                switch (treeType)
                {
                case WidgetTreeType.Widget:
                    result = localOnly
                            ? this.toNode(
                        this._widgetInspectorService.getSelectedSummaryWidget(previousSelectionId, groupName))
                            : this.toNode(
                        this._widgetInspectorService.getSelectedWidget(previousSelectionId, groupName));
                    break;

                case WidgetTreeType.Render:
                    result = this.toNode(
                        this._widgetInspectorService.getSelectedRenderObject(previousSelectionId, groupName));
                    break;
                }
            });


            if (result != null && result.diagnosticRef == previousSelectionRef)
            {
                return(previousSelection);
            }
            else
            {
                return(result);
            }
        }