Couple browser item to resource browser.
This commit is contained in:
@@ -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;
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
@@ -12,6 +12,8 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
Master = master;
|
||||
}
|
||||
|
||||
public abstract void OnItemClicked(int index);
|
||||
|
||||
public abstract void InvokeAction(IResourceAction action);
|
||||
}
|
||||
}
|
||||
|
@@ -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) { }
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user