private void SpaceUpdated(Core.Space sender, Core.Space.Process[] processSet, Core.Space.Process endedProcess) { if (endedProcess == Core.Space.Process.Fetching) { assetsUpdated = true; } if (endedProcess == Core.Space.Process.Deleting) { sender.onProcessEnd -= SpaceUpdated; } if (endedProcess == Core.Space.Process.FetchingGraph) { if (selectedSpace != null && selectedSpace.isGraphFetched) { SpaceGraphEditor.OpenGraphEditor(selectedSpace.Graph); } } }
void DrawAssociatedAssetsPanel() { if (selectedSpace != null && selectedSpace.assetIDs != null) { Color bgColor = GUI.backgroundColor; GUI.backgroundColor = BG_COLOR_EVEN; EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.MinHeight(SPACE_ASSET_PANEL_MIN_HEIGHT)); { int removeAsset = -1; EditorGUILayout.BeginHorizontal(); { GUILayout.Label("Space Name", GUILayout.Width(SPACE_BUTTON_WIDTH)); updatedSpaceName = GUILayout.TextField(updatedSpaceName); bool wasEnabled = GUI.enabled; GUI.enabled = wasEnabled && updatedSpaceName != selectedSpace.name; if (GUILayout.Button("Update Name", GUILayout.Width(SPACE_WIDE_BUTTON_WIDTH))) { selectedSpace.Update(updatedSpaceName, ""); } GUI.enabled = wasEnabled; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { GUILayout.Label("Space ID", GUILayout.Width(SPACE_BUTTON_WIDTH)); EditorGUILayout.SelectableLabel(selectedSpace.id, GUILayout.Width(ASSET_ID_WIDTH), GUILayout.Height(EditorStyles.label.lineHeight + 1)); GUILayout.Label("", GUILayout.ExpandWidth(true)); if (GUILayout.Button("Edit Space Graph", GUILayout.Width(SPACE_WIDE_BUTTON_WIDTH))) { SpaceGraphEditor.OpenGraphEditor(selectedSpace); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { GUILayout.Label("Asset Name", GUILayout.Width(ASSET_NAME_WIDTH)); GUILayout.Label("Asset Type", GUILayout.Width(ASSET_TYPE_WIDTH)); GUILayout.Label("Asset ID", GUILayout.Width(ASSET_ID_WIDTH)); GUILayout.Label(""); if (GUILayout.Button("Add Assets", GUILayout.Width(SPACE_WIDE_BUTTON_WIDTH))) { SelectAssetDialog.Init(selectedSpace, assets); } //TODO: Add a Remove All button. } EditorGUILayout.EndHorizontal(); scrollPosSpaceAssets = EditorGUILayout.BeginScrollView(scrollPosSpaceAssets, EditorStyles.helpBox); { if (selectedSpace.Assets != null && selectedSpace.Assets.Count > 0) { for (int j = 0; j < selectedSpace.Assets.Count; j++) { EditorGUILayout.BeginHorizontal(); { if (string.IsNullOrEmpty(selectedSpace.Assets[j].name)) { DrawStatus(new Core.StatusMessage() { statusMessage = "", progressing = true }); //selectedSpace.Assets[j].GetStatusMessage()); } else { GUILayout.Label(selectedSpace.Assets[j].name, GUILayout.Width(ASSET_NAME_WIDTH)); } GUILayout.Label(selectedSpace.Assets[j].assetType, GUILayout.Width(ASSET_TYPE_WIDTH)); EditorGUILayout.SelectableLabel(selectedSpace.assetIDs[j], GUILayout.Width(ASSET_ID_WIDTH), GUILayout.Height(EditorStyles.label.lineHeight + 1)); if (GUILayout.Button("Remove")) { removeAsset = j; } } EditorGUILayout.EndHorizontal(); } } else { for (int j = 0; j < selectedSpace.assetIDs.Count; j++) { EditorGUILayout.BeginHorizontal(); { GUILayout.Label(!string.IsNullOrEmpty(assets[j].name) ? assets[j].name : "...", GUILayout.Width(ASSET_NAME_WIDTH)); GUILayout.Label(!string.IsNullOrEmpty(assets[j].assetType) ? assets[j].assetType : "...", GUILayout.Width(ASSET_TYPE_WIDTH)); EditorGUILayout.SelectableLabel(selectedSpace.assetIDs[j], GUILayout.Width(ASSET_ID_WIDTH), GUILayout.Height(EditorStyles.label.lineHeight + 1)); if (GUILayout.Button("Remove")) { removeAsset = j; } } EditorGUILayout.EndHorizontal(); } } if (removeAsset > -1) { var assetToRemove = selectedSpace.Assets[removeAsset]; if (selectedSpace.Assets.Remove(selectedSpace.Assets[removeAsset])) { selectedSpace.RemoveAsset(assetToRemove); } } } EditorGUILayout.EndScrollView(); } EditorGUILayout.EndVertical(); GUI.backgroundColor = bgColor; } }