示例#1
0
    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;
        }
    }
示例#2
0
        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;
        }
示例#3
0
    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;
        }
    }