diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefGraphEditorWindow.cs b/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefGraphEditorWindow.cs index e49211f..63b9932 100644 --- a/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefGraphEditorWindow.cs +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefGraphEditorWindow.cs @@ -5,6 +5,7 @@ using UnityEditor.Compilation; namespace AsmdefHelper.DependencyGraph.Editor { public class AsmdefGraphEditorWindow : EditorWindow { + static AsmdefSelectionView selectionWindow; [MenuItem("AsmdefHelper/Open DependencyGraph", priority = 2000)] public static void Open() { GetWindow("Asmdef Dependency"); @@ -18,6 +19,18 @@ namespace AsmdefHelper.DependencyGraph.Editor { style = { flexGrow = 1 } }; rootVisualElement.Add(graphView); + + // 選択ウィンドウも作成 + selectionWindow = GetWindow("Asmdef Selection"); + selectionWindow.SetAsmdef(asmdefs); + } + + // 片方を閉じる + void OnDestroy() { + if (selectionWindow != null) { + selectionWindow.Close(); + } + selectionWindow = null; } } } diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView.meta b/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView.meta new file mode 100644 index 0000000..e7c1312 --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 686371b55f14bdb4ca1a0ee236361071 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.cs b/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.cs new file mode 100644 index 0000000..a98565e --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using UnityEditor; +using UnityEditor.Compilation; +using UnityEngine; +using UnityEngine.UIElements; + +namespace AsmdefHelper.DependencyGraph.Editor { + public class AsmdefSelectionView : EditorWindow { + static EditorWindow graphWindow; + public void OnEnable() { + graphWindow = GetWindow(); + } + + VisualTreeAsset LoadVisualTreeAsset() { + // Import UXML + var visualTree = + AssetDatabase.LoadAssetAtPath( + "Assets/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.uxml"); + if (visualTree == null) { + visualTree = + AssetDatabase.LoadAssetAtPath( + "Packages/dev.n5y.asmdefhelper/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.uxml"); + } + return visualTree; + } + + public void SetAsmdef(Assembly[] assemblies) { + VisualElement scroll = new ScrollView(); + rootVisualElement.Add(scroll); + var sorted = assemblies.OrderBy(x => x.name); + foreach (var assembly in sorted) { + var elm = LoadVisualTreeAsset().Instantiate(); + var toggle = elm.Q(className: "CheckBox"); + var label = elm.Q