예제 #1
0
    private void OnEnable()
    {
        if (EditorPrefs.HasKey(LastLanguageDatatableEditedKey))
        {
            string            assetPath         = EditorPrefs.GetString(LastLanguageDatatableEditedKey);
            LanguageDatatable languageDatatable = AssetDatabase.LoadAssetAtPath <LanguageDatatable>(assetPath);
            if (languageDatatable != null)
            {
                _languageDatatableSo = new SerializedObject(languageDatatable);
            }
        }

        if (_languageDatatableSo != null)
        {
            if (_treeViewState == null)
            {
                _treeViewState = new TreeViewState();
            }

            if (_languageDatatableDrawer == null)
            {
                _languageDatatableDrawer = new LanguageDatatableDrawer(_treeViewState, CreateMultiColumnHeader());
            }
        }
    }
    public static bool OnOpenAsset(int instanceID, int line)
    {
        LanguageDatatable datatable = EditorUtility.InstanceIDToObject(instanceID) as LanguageDatatable;

        if (datatable != null)
        {
            SerializedObject datatableSo = new SerializedObject(datatable);
            if (datatableSo != null)
            {
                LanguageDatatableWindow.Init(datatableSo);
                return(true);
            }
        }
        return(false);
    }
    protected override IList <TreeViewItem> BuildRows(TreeViewItem root)
    {
        List <TreeViewItem> treeViewItems = new List <TreeViewItem>();

        if (_languageDatatableSo != null)
        {
            LanguageDatatable           languageDatatable = _languageDatatableSo.targetObject as LanguageDatatable;
            List <LanguageDatatableRow> rows = languageDatatable.GetRows();

            for (int i = 0; i < rows.Count; ++i)
            {
                rows[i].id          = i;
                rows[i].depth       = 0;
                rows[i].displayName = rows[i].key;
                root.AddChild(rows[i]);
                treeViewItems.Add(rows[i]);
            }
        }

        return(treeViewItems);
    }