void InitIfNeeded() { if (!m_Initialized) { // Check if it already exists (deserialized from window layout file or scriptable object) if (m_TreeViewState == null) { m_TreeViewState = new TreeViewState(); } bool firstInit = m_MultiColumnHeaderState == null; var headerState = MultiColumnTreeView.CreateDefaultMultiColumnHeaderState(multiColumnTreeViewRect.width); if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_MultiColumnHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(m_MultiColumnHeaderState, headerState); } m_MultiColumnHeaderState = headerState; var multiColumnHeader = new MyMultiColumnHeader(headerState); if (firstInit) { multiColumnHeader.ResizeToFit(); } var treeModel = new TreeModel <MyTreeElement>(GetData()); m_TreeView = new MultiColumnTreeView(m_TreeViewState, multiColumnHeader, treeModel); m_SearchField = new SearchField(); m_SearchField.downOrUpArrowKeyPressed += m_TreeView.SetFocusAndEnsureSelectedItem; m_Initialized = true; } }
internal void InitialiseWithConfiguration(AssetListConfiguration configuration) { rootVisualElement.Clear(); bool changedConfiguration = this.configuration != configuration; this.configuration = configuration; objects = AssetListUtility.LoadAssetsByTypeName(configuration.TypeString, out type, out isComponent, configuration.AssetContext); GUIContent objectContent = EditorGUIUtility.ObjectContent(null, type); titleContent = new GUIContent(configuration.name, objectContent.image); if (treeViewState == null) { treeViewState = new TreeViewState(); } var headerState = new MultiColumnHeaderState(GetColumnsFromConfiguration(configuration)); if (MultiColumnHeaderState.CanOverwriteSerializedFields(multiColumnHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(multiColumnHeaderState, headerState); } if (changedConfiguration) { initialisedSizes = false; multiColumnHeaderState = headerState; } var multiColumnHeader = new MultiColumnHeader(headerState); treeView = new MultiColumnTreeView(treeViewState, multiColumnHeader, this); (StyleSheet styleSheet, VisualTreeAsset uxml) = StyleExtensions.GetStyleSheetAndUXML("AssetList"); uxml.CloneTree(rootVisualElement); rootVisualElement.styleSheets.Add(styleSheet); var toolbarSearchField = rootVisualElement.Q <ToolbarSearchField>("SearchField"); string searchString = treeView.searchString; if (searchString != null) { toolbarSearchField.SetValueWithoutNotify(treeView.searchString); } toolbarSearchField.RegisterValueChangedCallback(evt => treeView.searchString = evt.newValue); var toolbarMenu = rootVisualElement.Q <ToolbarMenu>("ExportMenu"); toolbarMenu.menu.AppendAction("TSV", action => ExportToTSV()); assetListContainer = rootVisualElement.Q <IMGUIContainer>("AssetList"); assetListContainer.onGUIHandler = MultiColumnListGUI; }
void InitIfNeeded () { if (!m_Initialized) { // Check if it already exists (deserialized from window layout file or scriptable object) if (m_TreeViewState == null) m_TreeViewState = new TreeViewState(); bool firstInit = m_MultiColumnHeaderState == null; var headerState = MultiColumnTreeView.CreateDefaultMultiColumnHeaderState(multiColumnTreeViewRect.width); if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_MultiColumnHeaderState, headerState)) MultiColumnHeaderState.OverwriteSerializedFields(m_MultiColumnHeaderState, headerState); m_MultiColumnHeaderState = headerState; var multiColumnHeader = new MultiColumnHeader(headerState); multiColumnHeader.canSort = false; if (firstInit) multiColumnHeader.ResizeToFit (); var treeModel = new TreeModel<ParticleSystemElement>(particleSystemElements); m_TreeView = new MultiColumnTreeView(m_TreeViewState, multiColumnHeader, treeModel); m_Initialized = true; } }