Add type constraints for resource managers. Generalize detail panel.

This commit is contained in:
2023-11-29 13:52:34 +08:00
parent a471272c52
commit 111c500f3b
7 changed files with 88 additions and 45 deletions

View File

@@ -22,7 +22,7 @@ namespace Cryville.Crtr.Browsing.UI {
[SerializeField]
ActionBar m_actionBar;
IPathedResourceManager<ChartDetail> _manager;
IPathedResourceManager<IResourceMeta> _manager;
IResourceAction _importAction;
readonly HashSet<int> _selectedItems = new HashSet<int>();
@@ -47,7 +47,7 @@ namespace Cryville.Crtr.Browsing.UI {
_manager.Deactivate();
}
public void Init(ResourceBrowserMaster master, IPathedResourceManager<ChartDetail> manager) {
public void Init(ResourceBrowserMaster master, IPathedResourceManager<IResourceMeta> manager) {
if (_manager != null) {
UnregisterManager();
}
@@ -103,7 +103,7 @@ namespace Cryville.Crtr.Browsing.UI {
_selectedItems.Clear();
_items[id].OnSelect();
_selectedItems.Add(id);
ChartDetail res = _manager[id];
var res = _manager[id];
m_detailPanel.Load(res);
m_actionBar.Load(this, Master.Actions.GetActions(res.GetType()));
}