Couple browser item to resource browser.
This commit is contained in:
@@ -2,11 +2,13 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace Cryville.Crtr.Browsing.UI {
|
namespace Cryville.Crtr.Browsing.UI {
|
||||||
internal abstract class BrowserItem : MonoBehaviour {
|
internal abstract class BrowserItem : MonoBehaviour {
|
||||||
|
protected ResourceBrowser Browser { get; private set; }
|
||||||
protected int? Id { get; private set; }
|
protected int? Id { get; private set; }
|
||||||
protected bool IsDir { get; private set; }
|
protected bool IsDir { get; private set; }
|
||||||
protected IResourceMeta Meta { 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();
|
OnReset();
|
||||||
|
Browser = browser;
|
||||||
Id = id;
|
Id = id;
|
||||||
IsDir = isDir;
|
IsDir = isDir;
|
||||||
Meta = item;
|
Meta = item;
|
||||||
|
|||||||
@@ -67,8 +67,7 @@ namespace Cryville.Crtr.Browsing.UI {
|
|||||||
}
|
}
|
||||||
public void OnClick() {
|
public void OnClick() {
|
||||||
if (Id == null) return;
|
if (Id == null) return;
|
||||||
var resourceBrowser = GetComponentInParent<PathedResourceBrowser>();
|
Browser.OnItemClicked(Id.Value);
|
||||||
resourceBrowser.OnObjectItemClicked(Id.Value);
|
|
||||||
}
|
}
|
||||||
public void OnPointerClick(PointerEventData eventData) {
|
public void OnPointerClick(PointerEventData eventData) {
|
||||||
OnClick();
|
OnClick();
|
||||||
|
|||||||
@@ -86,19 +86,15 @@ namespace Cryville.Crtr.Browsing.UI {
|
|||||||
_items[id] = bi;
|
_items[id] = bi;
|
||||||
try {
|
try {
|
||||||
var item = _manager[id];
|
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) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void OnDirectoryItemClicked(int id) {
|
public override void OnItemClicked(int id) {
|
||||||
_manager.OpenDirectory(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnObjectItemClicked(int id) {
|
|
||||||
foreach (var item in _selectedItems) _items[item].OnDeselect();
|
foreach (var item in _selectedItems) _items[item].OnDeselect();
|
||||||
_selectedItems.Clear();
|
_selectedItems.Clear();
|
||||||
_items[id].OnSelect();
|
_items[id].OnSelect();
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ namespace Cryville.Crtr.Browsing.UI {
|
|||||||
Master = master;
|
Master = master;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract void OnItemClicked(int index);
|
||||||
|
|
||||||
public abstract void InvokeAction(IResourceAction action);
|
public abstract void InvokeAction(IResourceAction action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ namespace Cryville.Crtr.Browsing.UI {
|
|||||||
protected virtual void Awake() {
|
protected virtual void Awake() {
|
||||||
GetComponent<PropertyMasterPanel>().Adapter = new DefaultPropertyMasterAdapter(Settings.Default);
|
GetComponent<PropertyMasterPanel>().Adapter = new DefaultPropertyMasterAdapter(Settings.Default);
|
||||||
}
|
}
|
||||||
|
public override void OnItemClicked(int index) { }
|
||||||
public override void InvokeAction(IResourceAction action) { }
|
public override void InvokeAction(IResourceAction action) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user