public virtual void EditorActionGetState(EditorAction.GetStateContext context) { switch (context.Action.Name) { case "Save": if (!string.IsNullOrEmpty(RealFileName)) { context.Enabled = true; } break; case "Save As": if (!string.IsNullOrEmpty(RealFileName)) { context.Enabled = CanSaveAs(); } break; case "Undo": context.Enabled = undoSystem != null && undoSystem.GetTopUndoAction() != null; break; case "Redo": context.Enabled = undoSystem != null && undoSystem.GetTopRedoAction() != null; break; case "Play": { var component = LoadedResource?.ResultComponent; if (component != null && RunSimulation.CheckTypeSupportedByPlayer(component.BaseType)) { context.Enabled = true; } } break; case "Find Resource": context.Enabled = !string.IsNullOrEmpty(RealFileName); break; } }
public virtual void EditorActionClick(EditorAction.ClickContext context) { switch (context.Action.Name) { case "Save": Save(null); break; case "Save As": { #if !PROJECT_DEPLOY var dialog = new CommonSaveFileDialog(); dialog.InitialDirectory = Path.GetDirectoryName(RealFileName); dialog.DefaultFileName = Path.GetFileName(RealFileName); dialog.Filters.Add(new CommonFileDialogFilter("All Files", ".*")); if (dialog.ShowDialog() != CommonFileDialogResult.Ok) { return; } var saveAsFileName = dialog.FileName; //if( File.Exists( saveAsFileName ) ) //{ // var text = string.Format( EditorLocalization.Translate( "General", "A file with the name \'{0}\' already exists. Overwrite?" ), saveAsFileName ); // if( EditorMessageBox.ShowQuestion( text, MessageBoxButtons.OKCancel ) != DialogResult.OK ) // return; //} if (string.Compare(RealFileName, saveAsFileName, true) == 0) { Save(); } else { Save(saveAsFileName, false); EditorAPI.OpenFileAsDocument(saveAsFileName, true, true); } #endif } break; case "Undo": if (undoSystem != null) { if (undoSystem.DoUndo()) { Modified = true; } } break; case "Redo": if (undoSystem != null) { if (undoSystem.DoRedo()) { Modified = true; } } break; case "Play": { var component = LoadedResource?.ResultComponent; if (component != null && RunSimulation.CheckTypeSupportedByPlayer(component.BaseType)) { if (!EditorAPI.SaveDocuments()) { return; } //if( Modified ) //{ // if( !Save( null ) ) // return; //} //!!!!не только standalone var realFileName = VirtualPathUtility.GetRealPathByVirtual(LoadedResource.Owner.Name); RunSimulation.Run(realFileName, RunSimulation.RunMethod.Player); } } break; case "Find Resource": if (!string.IsNullOrEmpty(RealFileName)) { EditorAPI.SelectFilesOrDirectoriesInMainResourcesWindow(new string[] { RealFileName }); } break; } }