示例#1
0
        private void Start()
        {
            m_parentDialog                 = GetComponentInParent <Dialog>();
            m_parentDialog.Ok             += OnOk;
            m_parentDialog.OkText          = m_localization.GetString("ID_RTEditor_SaveAssetsDialog_Save", "Save");
            m_parentDialog.IsOkVisible     = true;
            m_parentDialog.CancelText      = m_localization.GetString("ID_RTEditor_SaveAssetsDialog_Cancel", "Cancel");
            m_parentDialog.IsCancelVisible = true;

            m_treeView      = GetComponentInChildren <VirtualizingTreeView>();
            m_windowManager = IOC.Resolve <IWindowManager>();

            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemDoubleClick  += OnItemDoubleClick;
            m_treeView.CanDrag           = false;
            m_treeView.CanEdit           = false;
            m_treeView.CanUnselectAll    = false;
            m_treeView.CanRemove         = false;

            m_project = IOC.Resolve <IProject>();
            if (m_project == null)
            {
                Debug.LogError("ProjectManager.Instance is null");
                return;
            }

            m_treeView.Items        = new[] { m_project.Root };
            m_treeView.SelectedItem = m_project.Root;
            m_treeView.Expand(m_project.Root);

            Input.ActivateInputField();
        }
        protected override void AwakeOverride()
        {
            base.AwakeOverride();
            if (!TreeViewPrefab)
            {
                Debug.LogError("Set TreeViewPrefab field");
                return;
            }

            m_treeView = Instantiate(TreeViewPrefab).GetComponent <VirtualizingTreeView>();
            m_treeView.transform.SetParent(transform, false);
            //m_treeView.RemoveKey = KeyCode.None;

            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemsRemoved     += OnItemsRemoved;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.ItemBeginDrag    += OnItemBeginDrag;
            m_treeView.ItemBeginDrop    += OnItemBeginDrop;
            m_treeView.ItemDrop         += OnItemDrop;
            m_treeView.ItemEndDrag      += OnItemEndDrag;
            m_treeView.ItemDoubleClick  += OnItemDoubleClicked;
            m_treeView.ItemBeginEdit    += OnItemBeginEdit;
            m_treeView.ItemEndEdit      += OnItemEndEdit;

            m_project = RTSL2Deps.Get.Project;
            m_typeMap = RTSL2Deps.Get.TypeMap;
        }
示例#3
0
        private void Start()
        {
            ExtToIcon();

            m_treeView                   = GetComponentInChildren <VirtualizingTreeView>();
            m_windowManager              = IOC.Resolve <IWindowManager>();
            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemDoubleClick  += OnItemDoubleClick;
            m_treeView.CanDrag           = false;
            m_treeView.CanEdit           = false;
            m_treeView.CanUnselectAll    = false;
            m_treeView.CanRemove         = false;

            if (m_allowedExt != null)
            {
                m_allowedExtHs = new HashSet <string>(m_allowedExt.Distinct());
            }

            if (string.IsNullOrEmpty(CurrentDir))
            {
                CurrentDir = NormalizePath(Application.persistentDataPath);
            }
            else
            {
                m_currentDir = NormalizePath(m_currentDir);
                BindDataItems(m_currentDir);
            }
        }
        protected override void AwakeOverride()
        {
            base.AwakeOverride();

            m_project = RTSL2Deps.Get.Project;

            m_treeView                = Instantiate(TreeViewPrefab).GetComponent <VirtualizingTreeView>();
            m_treeView.CanReorder     = false;
            m_treeView.CanReparent    = ShowRootFolder;
            m_treeView.CanUnselectAll = false;
            m_treeView.CanDrag        = ShowRootFolder;
            m_treeView.CanRemove      = false;

            m_treeView.transform.SetParent(transform, false);
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.ItemsRemoving    += OnItemsRemoving;
            m_treeView.ItemsRemoved     += OnItemsRemoved;
            m_treeView.ItemBeginEdit    += OnItemBeginEdit;
            m_treeView.ItemEndEdit      += OnItemEndEdit;
            m_treeView.ItemBeginDrop    += OnItemBeginDrop;
            m_treeView.ItemDrop         += OnItemDrop;
            m_treeView.ItemDoubleClick  += OnItemDoubleClick;
        }
示例#5
0
        protected override void AwakeOverride()
        {
            base.AwakeOverride();

            m_typeMap = RTSL2Deps.Get.TypeMap;
            m_assetDB = RTSL2Deps.Get.AssetDB;
            m_project = RTSL2Deps.Get.Project;

            if (!ListBoxPrefab)
            {
                Debug.LogError("Set ListBoxPrefab field");
                return;
            }


            m_listBox = GetComponentInChildren <VirtualizingTreeView>();
            if (m_listBox == null)
            {
                m_listBox            = Instantiate(ListBoxPrefab).GetComponent <VirtualizingTreeView>();
                m_listBox.CanDrag    = true;
                m_listBox.CanReorder = false;
                //m_listBox.MultiselectKey = KeyCode.None;
                // m_listBox.RangeselectKey = KeyCode.None;
                //m_listBox.RemoveKey = KeyCode.None;
                m_listBox.transform.SetParent(transform, false);
            }

            m_listBox.ItemDataBinding += OnItemDataBinding;
        }
        protected override void AwakeOverride()
        {
            WindowType = RuntimeWindowType.ProjectFolder;
            base.AwakeOverride();


            if (!ListBoxPrefab)
            {
                Debug.LogError("Set ListBoxPrefab field");
                return;
            }

            m_project = IOC.Resolve <IProject>();

            m_listBox = GetComponentInChildren <VirtualizingTreeView>();
            if (m_listBox == null)
            {
                m_listBox            = Instantiate(ListBoxPrefab).GetComponent <VirtualizingTreeView>();
                m_listBox.CanDrag    = true;
                m_listBox.CanReorder = false;
                //m_listBox.MultiselectKey = KeyCode.None;
                // m_listBox.RangeselectKey = KeyCode.None;
                //m_listBox.RemoveKey = KeyCode.None;
                m_listBox.transform.SetParent(transform, false);
            }

            m_listBox.ItemDataBinding += OnItemDataBinding;
            m_listBox.ItemBeginDrag   += OnItemBeginDrag;
            m_listBox.ItemDragEnter   += OnItemDragEnter;
            m_listBox.ItemDrag        += OnItemDrag;
            m_listBox.ItemDragExit    += OnItemDragExit;
            m_listBox.ItemDrop        += OnItemDrop;
            m_listBox.ItemEndDrag     += OnItemEndDrag;
        }
示例#7
0
        private void Start()
        {
            m_parentPopup = GetComponentInParent <PopupWindow>();
            if (m_parentPopup != null)
            {
                m_parentPopup.OK.AddListener(OnOK);
            }

            m_treeView = GetComponentInChildren <VirtualizingTreeView>();
            if (m_treeView == null)
            {
                m_treeView = Instantiate(TreeViewPrefab);
                m_treeView.transform.SetParent(transform, false);
            }

            m_treeView.ItemDataBinding += OnItemDataBinding;
            m_treeView.ItemDoubleClick += OnItemDoubleClick;
            m_treeView.CanDrag          = false;
            m_treeView.CanEdit          = false;
            m_treeView.CanUnselectAll   = false;

            m_project                = IOC.Resolve <IProject>();
            m_treeView.Items         = m_project.AssetLibraries;
            m_treeView.SelectedIndex = 0;
        }
        protected virtual void Awake()
        {
            m_localization  = IOC.Resolve <ILocalization>();
            m_hierarchyView = GetComponent <HierarchyView>();
            if (!m_hierarchyView.TreeViewPrefab)
            {
                Debug.LogError("Set TreeViewPrefab field");
                return;
            }

            m_project = IOC.Resolve <IProject>();
            m_editor  = IOC.Resolve <IRuntimeEditor>();

            m_filterInput = m_hierarchyView.FilterInput;
            if (m_filterInput != null)
            {
                m_filterInput.onValueChanged.AddListener(OnFiltering);
            }

            Transform parent = m_hierarchyView.TreePanel != null ? m_hierarchyView.TreePanel : transform;

            m_treeView                   = Instantiate(m_hierarchyView.TreeViewPrefab, parent).GetComponent <VirtualizingTreeView>();
            m_treeView.name              = "HierarchyTreeView";
            m_treeView.CanSelectAll      = false;
            m_treeView.SelectOnPointerUp = true;

            RectTransform rt = (RectTransform)m_treeView.transform;

            rt.Stretch();

            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemsRemoving    += OnItemRemoving;
            m_treeView.ItemsRemoved     += OnItemsRemoved;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.ItemBeginDrag    += OnItemBeginDrag;
            m_treeView.ItemBeginDrop    += OnItemBeginDrop;
            m_treeView.ItemDrag         += OnItemDrag;
            m_treeView.ItemDrop         += OnItemDrop;
            m_treeView.ItemEndDrag      += OnItemEndDrag;
            m_treeView.ItemDragEnter    += OnItemDragEnter;
            m_treeView.ItemDragExit     += OnItemDragExit;
            m_treeView.ItemDoubleClick  += OnItemDoubleClicked;
            m_treeView.ItemClick        += OnItemClick;
            m_treeView.ItemBeginEdit    += OnItemBeginEdit;
            m_treeView.ItemEndEdit      += OnItemEndEdit;
            m_treeView.PointerEnter     += OnTreeViewPointerEnter;
            m_treeView.PointerExit      += OnTreeViewPointerExit;

            m_window = GetComponent <RuntimeWindow>();

            m_window.DragEnterEvent += OnDragEnter;
            m_window.DragLeaveEvent += OnDragLeave;
            m_window.DragEvent      += OnDrag;
            m_window.DropEvent      += OnDrop;
        }
        private void UpdateDetailsList(Terrain terrain)
        {
            VirtualizingTreeView detailsList = m_detailsList;

            detailsList.Items = terrain.terrainData.detailPrototypes;
            if (detailsList.Items == null || !detailsList.Items.OfType <DetailPrototype>().Contains(detailsList.SelectedItem))
            {
                detailsList.SelectedItem = null;
            }
        }
        private void UpdateTreeList(Terrain terrain)
        {
            VirtualizingTreeView treeList = m_treeList;

            treeList.Items = terrain.terrainData.treePrototypes;
            if (treeList.Items == null || !treeList.Items.OfType <TreePrototype>().Contains(treeList.SelectedItem))
            {
                treeList.SelectedItem = null;
            }
        }
        private void Start()
        {
            m_treeViewItem = GetComponentInParent <VirtualizingTreeViewItem>();
            m_treeView     = GetComponentInParent <VirtualizingTreeView>();
            m_toggle       = GetComponent <Toggle>();
            m_toggle.isOn  = m_treeView.IsItemSelected(m_treeViewItem.Item);
            m_toggle.onValueChanged.AddListener(OnValueChanged);

            VirtualizingItemContainer.Selected   += OnSelected;
            VirtualizingItemContainer.Unselected += OnUnselected;
        }
示例#12
0
        protected override void AwakeOverride()
        {
            WindowType = RuntimeWindowType.ProjectTree;
            base.AwakeOverride();
            if (Editor == null)
            {
                Debug.LogError("Editor is null");
                return;
            }

            if (TreeViewPrefab == null)
            {
                Debug.LogError("TreeViewPrefab is null");
                return;
            }

            m_project      = IOC.Resolve <IProject>();
            m_wm           = IOC.Resolve <IWindowManager>();
            m_localization = IOC.Resolve <ILocalization>();

            m_treeView      = Instantiate(TreeViewPrefab, transform).GetComponent <VirtualizingTreeView>();
            m_treeView.name = "ProjectTreeView";

            m_treeView.CanReorder     = false;
            m_treeView.CanReparent    = ShowRootFolder;
            m_treeView.CanUnselectAll = false;
            m_treeView.CanDrag        = ShowRootFolder;
            m_treeView.CanRemove      = false;
            m_treeView.CanSelectAll   = false;

            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.ItemsRemoving    += OnItemsRemoving;
            m_treeView.ItemsRemoved     += OnItemsRemoved;
            m_treeView.ItemBeginEdit    += OnItemBeginEdit;
            m_treeView.ItemEndEdit      += OnItemEndEdit;
            m_treeView.ItemBeginDrag    += OnItemBeginDrag;
            m_treeView.ItemBeginDrop    += OnItemBeginDrop;
            m_treeView.ItemDragEnter    += OnItemDragEnter;
            m_treeView.ItemDrag         += OnItemDrag;
            m_treeView.ItemDragExit     += OnItemDragExit;
            m_treeView.ItemDrop         += OnItemDrop;
            m_treeView.ItemEndDrag      += OnItemEndDrag;
            m_treeView.ItemDoubleClick  += OnItemDoubleClick;
            m_treeView.ItemClick        += OnItemClick;

            if (!GetComponent <ProjectTreeViewInput>())
            {
                gameObject.AddComponent <ProjectTreeViewInput>();
            }

            IOC.RegisterFallback <IProjectTree>(this);
        }
        protected override void AwakeOverride()
        {
            WindowType = RuntimeWindowType.ProjectFolder;
            base.AwakeOverride();

            if (!ListBoxPrefab)
            {
                Debug.LogError("Set ListBoxPrefab field");
                return;
            }

            m_project       = IOC.Resolve <IProject>();
            m_windowManager = IOC.Resolve <IWindowManager>();
            m_localization  = IOC.Resolve <ILocalization>();

            m_listBox = GetComponentInChildren <VirtualizingTreeView>();
            if (m_listBox == null)
            {
                m_listBox      = Instantiate(ListBoxPrefab, transform).GetComponent <VirtualizingTreeView>();
                m_listBox.name = "AssetsListBox";
            }

            m_listBox.CanDrag           = true;
            m_listBox.CanReorder        = false;
            m_listBox.SelectOnPointerUp = true;
            m_listBox.CanRemove         = false;
            m_listBox.CanSelectAll      = false;

            m_listBox.ItemDataBinding  += OnItemDataBinding;
            m_listBox.ItemBeginDrag    += OnItemBeginDrag;
            m_listBox.ItemDragEnter    += OnItemDragEnter;
            m_listBox.ItemDrag         += OnItemDrag;
            m_listBox.ItemDragExit     += OnItemDragExit;
            m_listBox.ItemDrop         += OnItemDrop;
            m_listBox.ItemEndDrag      += OnItemEndDrag;
            m_listBox.ItemsRemoving    += OnItemRemoving;
            m_listBox.ItemsRemoved     += OnItemRemoved;
            m_listBox.ItemDoubleClick  += OnItemDoubleClick;
            m_listBox.ItemBeginEdit    += OnItemBeginEdit;
            m_listBox.ItemEndEdit      += OnItemEndEdit;
            m_listBox.SelectionChanged += OnSelectionChanged;
            m_listBox.ItemClick        += OnItemClick;
            m_listBox.Click            += OnListBoxClick;

            Editor.Selection.SelectionChanged += EditorSelectionChanged;
            Editor.Object.NameChanged         += OnNameChanged;

            if (!GetComponent <ProjectFolderViewInput>())
            {
                gameObject.AddComponent <ProjectFolderViewInput>();
            }

            IOC.RegisterFallback <IProjectFolder>(this);
        }
        protected virtual void Awake()
        {
            m_projectTreeView = GetComponent <ProjectTreeView>();
            m_showRootFolder  = m_projectTreeView.ShowRootFolder;
            m_folderIcon      = m_projectTreeView.FolderIcon;

            m_editor = IOC.Resolve <IRuntimeEditor>();
            if (Editor == null)
            {
                Debug.LogError("Editor is null");
                return;
            }

            m_project      = IOC.Resolve <IProject>();
            m_wm           = IOC.Resolve <IWindowManager>();
            m_localization = IOC.Resolve <ILocalization>();

            m_treeView      = Instantiate(m_projectTreeView.TreeViewPrefab, transform).GetComponent <VirtualizingTreeView>();
            m_treeView.name = "ProjectTreeView";

            m_treeView.CanReorder     = false;
            m_treeView.CanReparent    = ShowRootFolder;
            m_treeView.CanUnselectAll = false;
            m_treeView.CanDrag        = ShowRootFolder;
            m_treeView.CanRemove      = false;
            m_treeView.CanSelectAll   = false;

            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.ItemsRemoving    += OnItemsRemoving;
            m_treeView.ItemsRemoved     += OnItemsRemoved;
            m_treeView.ItemBeginEdit    += OnItemBeginEdit;
            m_treeView.ItemEndEdit      += OnItemEndEdit;
            m_treeView.ItemBeginDrag    += OnItemBeginDrag;
            m_treeView.ItemBeginDrop    += OnItemBeginDrop;
            m_treeView.ItemDragEnter    += OnItemDragEnter;
            m_treeView.ItemDrag         += OnItemDrag;
            m_treeView.ItemDragExit     += OnItemDragExit;
            m_treeView.ItemDrop         += OnItemDrop;
            m_treeView.ItemEndDrag      += OnItemEndDrag;
            m_treeView.ItemDoubleClick  += OnItemDoubleClick;
            m_treeView.ItemClick        += OnItemClick;

            m_projectTreeView.DragEnterEvent += OnDragEnter;
            m_projectTreeView.DragLeaveEvent += OnDragLeave;
            m_projectTreeView.DragEvent      += OnDrag;
            m_projectTreeView.DropEvent      += OnDrop;

            IOC.RegisterFallback <IProjectTree>(this);
        }
示例#15
0
        public static void UpdateLayersList(Terrain terrain)
        {
            TerrainLayerEditor layerEditor = IOC.Resolve <TerrainLayerEditor>("TerrainLayerEditor");

            if (layerEditor != null)
            {
                VirtualizingTreeView layerList = layerEditor.m_layersList;
                layerList.Items = terrain.terrainData.terrainLayers;
                if (layerList.Items == null || !layerList.Items.OfType <TerrainLayer>().Contains(layerList.SelectedItem))
                {
                    layerList.SelectedItem = null;
                }
            }
        }
示例#16
0
        private void Start()
        {
            m_editor      = IOC.Resolve <IRTE>();
            m_parentPopup = GetComponentInParent <PopupWindow>();
            if (m_parentPopup != null)
            {
                m_parentPopup.OK.AddListener(OnOK);
            }

            m_treeView = GetComponentInChildren <VirtualizingTreeView>();
            if (m_treeView == null)
            {
                m_treeView = Instantiate(TreeViewPrefab);
                m_treeView.transform.SetParent(transform, false);
            }

            m_treeView.ItemDataBinding += OnItemDataBinding;
            m_treeView.ItemDoubleClick += OnItemDoubleClick;
            m_treeView.ItemExpanding   += OnItemExpanding;

            m_treeView.CanDrag = false;
            m_treeView.CanEdit = false;

            m_project = IOC.Resolve <IProject>();

            m_editor.IsBusy = true;
            m_project.LoadAssetLibrary(Array.IndexOf(m_project.AssetLibraries, m_selectedAssetLibrary), (error, root) =>
            {
                m_editor.IsBusy = false;
                if (error.HasError)
                {
                    PopupWindow.Show("Unable to load AssetLibrary", error.ErrorText, "OK", arg =>
                    {
                        m_parentPopup.Close(false);
                    });
                }
                else
                {
                    m_treeView.Items         = new[] { root };
                    m_treeView.SelectedItems = root.Flatten(false);
                    ExpandAll(root);


                    IResourcePreviewUtility resourcePreview = IOC.Resolve <IResourcePreviewUtility>();
                    StartCoroutine(ProjectItemView.CoCreatePreviews(root.Flatten(false), m_project, resourcePreview));
                }
            });
        }
示例#17
0
        protected virtual void Awake()
        {
            m_projectFolderView = GetComponent <ProjectFolderView>();
            m_editor            = IOC.Resolve <IRuntimeEditor>();
            m_project           = IOC.Resolve <IProject>();
            m_windowManager     = IOC.Resolve <IWindowManager>();
            m_localization      = IOC.Resolve <ILocalization>();

            m_listBox = GetComponentInChildren <VirtualizingTreeView>();
            if (m_listBox == null)
            {
                m_listBox      = Instantiate(m_projectFolderView.ListBoxPrefab, transform).GetComponent <VirtualizingTreeView>();
                m_listBox.name = "AssetsListBox";
            }

            m_listBox.CanDrag           = true;
            m_listBox.CanReorder        = false;
            m_listBox.SelectOnPointerUp = true;
            m_listBox.CanRemove         = false;
            m_listBox.CanSelectAll      = false;

            m_listBox.ItemDataBinding  += OnItemDataBinding;
            m_listBox.ItemBeginDrag    += OnItemBeginDrag;
            m_listBox.ItemDragEnter    += OnItemDragEnter;
            m_listBox.ItemDrag         += OnItemDrag;
            m_listBox.ItemDragExit     += OnItemDragExit;
            m_listBox.ItemDrop         += OnItemDrop;
            m_listBox.ItemEndDrag      += OnItemEndDrag;
            m_listBox.ItemsRemoving    += OnItemRemoving;
            m_listBox.ItemsRemoved     += OnItemRemoved;
            m_listBox.ItemDoubleClick  += OnItemDoubleClick;
            m_listBox.ItemBeginEdit    += OnItemBeginEdit;
            m_listBox.ItemEndEdit      += OnItemEndEdit;
            m_listBox.SelectionChanged += OnSelectionChanged;
            m_listBox.ItemClick        += OnItemClick;
            m_listBox.Click            += OnListBoxClick;

            Editor.Selection.SelectionChanged += EditorSelectionChanged;
            Editor.Object.NameChanged         += OnNameChanged;

            m_projectFolderView.DragEnterEvent += OnDragEnter;
            m_projectFolderView.DragLeaveEvent += OnDragLeave;
            m_projectFolderView.DragEvent      += OnDrag;
            m_projectFolderView.DropEvent      += OnDrop;

            IOC.RegisterFallback <IProjectFolder>(this);
        }
示例#18
0
        private void OnOpened()
        {
            Type[] editableTypes = IOC.Resolve <IEditorsMap>().GetEditableTypes();

            m_filter = GetComponentInChildren <InputField>();
            if (m_filter != null)
            {
                m_filter.onValueChanged.AddListener(OnFilterValueChanged);
                m_filter.text = m_filterText;
                m_filter.Select();
            }

            m_treeView = GetComponentInChildren <VirtualizingTreeView>();
            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_cache = editableTypes.Where(t => t.IsSubclassOf(typeof(Component))).OrderBy(t => t.Name).ToArray();
            InstantApply(m_filterText);
        }
示例#19
0
        protected override void AwakeOverride()
        {
            WindowType = RuntimeWindowType.Hierarchy;
            base.AwakeOverride();
            if (!TreeViewPrefab)
            {
                Debug.LogError("Set TreeViewPrefab field");
                return;
            }

            m_project = IOC.Resolve <IProject>();
            m_editor  = IOC.Resolve <IRuntimeEditor>();

            m_treeView                   = Instantiate(TreeViewPrefab, transform).GetComponent <VirtualizingTreeView>();
            m_treeView.name              = "HierarchyTreeView";
            m_treeView.CanSelectAll      = false;
            m_treeView.SelectOnPointerUp = true;

            RectTransform rt = (RectTransform)m_treeView.transform;

            rt.Stretch();

            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemsRemoved     += OnItemsRemoved;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.ItemBeginDrag    += OnItemBeginDrag;
            m_treeView.ItemBeginDrop    += OnItemBeginDrop;
            m_treeView.ItemDrag         += OnItemDrag;
            m_treeView.ItemDrop         += OnItemDrop;
            m_treeView.ItemEndDrag      += OnItemEndDrag;
            m_treeView.ItemDragEnter    += OnItemDragEnter;
            m_treeView.ItemDragExit     += OnItemDragExit;
            m_treeView.ItemDoubleClick  += OnItemDoubleClicked;
            m_treeView.ItemBeginEdit    += OnItemBeginEdit;
            m_treeView.ItemEndEdit      += OnItemEndEdit;
            m_treeView.PointerEnter     += OnTreeViewPointerEnter;
            m_treeView.PointerExit      += OnTreeViewPointerExit;

            if (!GetComponent <HierarchyViewInput>())
            {
                gameObject.AddComponent <HierarchyViewInput>();
            }
        }
示例#20
0
        protected override void AwakeOverride()
        {
            WindowType = RuntimeWindowType.ProjectTree;
            base.AwakeOverride();
            if (Editor == null)
            {
                Debug.LogError("Editor is null");
                return;
            }

            if (TreeViewPrefab == null)
            {
                Debug.LogError("TreeViewPrefab is null");
                return;
            }

            m_project = IOC.Resolve <IProject>();

            m_treeView                = Instantiate(TreeViewPrefab).GetComponent <VirtualizingTreeView>();
            m_treeView.CanReorder     = false;
            m_treeView.CanReparent    = ShowRootFolder;
            m_treeView.CanUnselectAll = false;
            m_treeView.CanDrag        = ShowRootFolder;
            m_treeView.CanRemove      = false;

            m_treeView.transform.SetParent(transform, false);
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.ItemExpanding    += OnItemExpanding;
            m_treeView.ItemsRemoving    += OnItemsRemoving;
            m_treeView.ItemsRemoved     += OnItemsRemoved;
            m_treeView.ItemBeginEdit    += OnItemBeginEdit;
            m_treeView.ItemEndEdit      += OnItemEndEdit;
            m_treeView.ItemBeginDrop    += OnItemBeginDrop;
            m_treeView.ItemDrop         += OnItemDrop;
            m_treeView.ItemDoubleClick  += OnItemDoubleClick;
        }
示例#21
0
        private void Start()
        {
            m_parentDialog                 = GetComponentInParent <Dialog>();
            m_parentDialog.IsOkVisible     = true;
            m_parentDialog.OkText          = "Import";
            m_parentDialog.IsCancelVisible = true;
            m_parentDialog.CancelText      = "Cancel";
            m_parentDialog.Ok             += OnOk;
            m_parentDialog.Cancel         += OnCancel;

            m_windowManager = IOC.Resolve <IWindowManager>();

            m_treeView = GetComponentInChildren <VirtualizingTreeView>();
            if (m_treeView == null)
            {
                m_treeView      = Instantiate(TreeViewPrefab, transform);
                m_treeView.name = "ImportAssetsTreeView";
            }

            m_treeView.ItemDataBinding += OnItemDataBinding;
            m_treeView.ItemExpanding   += OnItemExpanding;

            m_treeView.CanDrag = false;
            m_treeView.CanEdit = false;

            m_project = IOC.Resolve <IProject>();

            Editor.IsBusy = true;

            m_project.LoadImportItems(m_selectedLibrary, m_isBuiltIn, (error, root) =>
            {
                m_root = root;

                if (error.HasError)
                {
                    Editor.IsBusy = false;
                    m_windowManager.MessageBox("Unable to load AssetLibrary", error.ErrorText, (sender, arg) =>
                    {
                        m_parentDialog.Close(false);
                    });
                }
                else
                {
                    if (root.Children != null && root.Children.Count > 0)
                    {
                        if (m_txtNoItemsToImport != null)
                        {
                            m_txtNoItemsToImport.SetActive(false);
                        }
                        m_treeView.gameObject.SetActive(true);
                        m_treeView.Items         = new[] { root };
                        m_treeView.SelectedItems = root.Flatten(false);
                        ExpandAll(root);

                        Editor.IsBusy = true;
                        IResourcePreviewUtility resourcePreview = IOC.Resolve <IResourcePreviewUtility>();

                        m_coCreatePreviews = ProjectItemView.CoCreatePreviews(root.Flatten(false), m_project, resourcePreview, () =>
                        {
                            m_project.UnloadImportItems(root);
                            Editor.IsBusy      = false;
                            m_coCreatePreviews = null;
                        });

                        StartCoroutine(m_coCreatePreviews);
                    }
                    else
                    {
                        Editor.IsBusy = false;

                        m_parentDialog.IsOkInteractable = false;

                        if (m_txtNoItemsToImport != null)
                        {
                            m_txtNoItemsToImport.SetActive(true);
                        }

                        m_treeView.gameObject.SetActive(false);
                    }
                }
            });
        }
        private void Start()
        {
            ExtToIcon();

            m_treeView                   = GetComponentInChildren <VirtualizingTreeView>();
            m_windowManager              = IOC.Resolve <IWindowManager>();
            m_treeView.ItemDataBinding  += OnItemDataBinding;
            m_treeView.SelectionChanged += OnSelectionChanged;
            m_treeView.ItemDoubleClick  += OnItemDoubleClick;
            m_treeView.CanDrag           = false;
            m_treeView.CanEdit           = false;
            m_treeView.CanUnselectAll    = false;
            m_treeView.CanRemove         = false;

            if (m_allowedExt != null)
            {
                m_allowedExtHs = new HashSet <string>(m_allowedExt.Distinct());
            }

            if (string.IsNullOrEmpty(CurrentDir))
            {
                CurrentDir = PlayerPrefs.GetString("Battlehub.FileBrowser.CurrentDir");
            }

            if (string.IsNullOrEmpty(CurrentDir))
            {
                CurrentDir = NormalizePath(Application.persistentDataPath);
            }
            else
            {
                m_currentDir = NormalizePath(m_currentDir);
                BindDataItems(m_currentDir);
            }

            FileInfo f            = new FileInfo(m_currentDir);
            string   currentDrive = Path.GetPathRoot(f.FullName);

            DriveInfo[] drives = DriveInfo.GetDrives();
            List <TMP_Dropdown.OptionData> options = new List <TMP_Dropdown.OptionData>();
            int driveIndex = 0;

            for (int i = 0; i < drives.Length; ++i)
            {
                DriveInfo drive = drives[i];
                if (!drive.IsReady)
                {
                    continue;
                }

                if (drive.DriveType != DriveType.Fixed && drive.DriveType != DriveType.Removable)
                {
                    continue;
                }

                options.Add(new TMP_Dropdown.OptionData(drive.VolumeLabel));
                if (currentDrive == drive.VolumeLabel)
                {
                    driveIndex = i;
                }
            }

            Drives.onValueChanged.RemoveListener(OnDriveChanged);
            Drives.options = options;
            Drives.value   = driveIndex;
            Drives.onValueChanged.AddListener(OnDriveChanged);

            Input.onValueChanged.AddListener(OnPathChanged);
            Input.onSubmit.AddListener(OnSubmit);

            m_started = true;
        }