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