Couple browser item to resource browser.

This commit is contained in:
2023-11-29 22:04:04 +08:00
parent 0f13d2d5fd
commit 700af29e43
5 changed files with 10 additions and 10 deletions

View File

@@ -2,11 +2,13 @@ using UnityEngine;
namespace Cryville.Crtr.Browsing.UI {
internal abstract class BrowserItem : MonoBehaviour {
protected ResourceBrowser Browser { get; private set; }
protected int? Id { get; private set; }
protected bool IsDir { get; private set; }
protected IResourceMeta Meta { get; private set; }
internal void Load(int id, bool isDir, IResourceMeta item, bool selected) {
internal void Load(ResourceBrowser browser, int id, bool isDir, IResourceMeta item, bool selected) {
OnReset();
Browser = browser;
Id = id;
IsDir = isDir;
Meta = item;

View File

@@ -67,8 +67,7 @@ namespace Cryville.Crtr.Browsing.UI {
}
public void OnClick() {
if (Id == null) return;
var resourceBrowser = GetComponentInParent<PathedResourceBrowser>();
resourceBrowser.OnObjectItemClicked(Id.Value);
Browser.OnItemClicked(Id.Value);
}
public void OnPointerClick(PointerEventData eventData) {
OnClick();

View File

@@ -86,19 +86,15 @@ namespace Cryville.Crtr.Browsing.UI {
_items[id] = bi;
try {
var item = _manager[id];
bi.Load(id, _manager.IsDirectory(id), item, _selectedItems.Contains(id));
bi.Load(this, id, _manager.IsDirectory(id), item, _selectedItems.Contains(id));
}
catch (Exception) {
bi.Load(id, _manager.IsDirectory(id), null, _selectedItems.Contains(id));
bi.Load(this, id, _manager.IsDirectory(id), null, _selectedItems.Contains(id));
}
return true;
}
public virtual void OnDirectoryItemClicked(int id) {
_manager.OpenDirectory(id);
}
public void OnObjectItemClicked(int id) {
public override void OnItemClicked(int id) {
foreach (var item in _selectedItems) _items[item].OnDeselect();
_selectedItems.Clear();
_items[id].OnSelect();

View File

@@ -12,6 +12,8 @@ namespace Cryville.Crtr.Browsing.UI {
Master = master;
}
public abstract void OnItemClicked(int index);
public abstract void InvokeAction(IResourceAction action);
}
}

View File

@@ -7,6 +7,7 @@ namespace Cryville.Crtr.Browsing.UI {
protected virtual void Awake() {
GetComponent<PropertyMasterPanel>().Adapter = new DefaultPropertyMasterAdapter(Settings.Default);
}
public override void OnItemClicked(int index) { }
public override void InvokeAction(IResourceAction action) { }
}
}