void DeleteRequestedParam() { if (_paramToDelete != null) { DeleteParameterViaEditor(_parameterList, _paramToDelete); _paramToDelete = null; } }
static void GenericObjectField(AnyParameter param) { Object currentValue = param.ObjectValue; var edited = EditorGUILayout.ObjectField("Value", currentValue, param.MinorType, true); if (currentValue != edited) { Undo.RecordObject(param, "Change " + param.MinorType + " Value"); param.ObjectValue = edited; } }
Editor EditorForParameter(AnyParameter paramToFind) { foreach (var editor in _editors) { if (Object.ReferenceEquals(editor.target, paramToFind)) { return(editor); } } return(null); }
// delete method, conforms to Undo public void DeleteParameterViaEditor(AnyParameterList paramList, AnyParameter param) { Undo.RecordObject(_parameterList, "Delete Parameter"); var index = paramList.Parameters.IndexOf(param); if (index < 0) { Debug.LogError("DeleteParameter(): param<" + param.Id + "> not found in AnyParameterList."); return; } paramList.Parameters.Remove(param); Undo.DestroyObjectImmediate(param); }
Editor CreateParameterEditor(AnyParameter param) { Editor previousEditor = null; Editor.CreateCachedEditor(param, typeof(AnyParameterEditor), ref previousEditor); var newEditor = (AnyParameterEditor)previousEditor; if (newEditor == null) { newEditor = (AnyParameterEditor)Editor.CreateEditor(param, typeof(AnyParameterEditor)); } newEditor.OnParameterEvent += OnParameterAction; return(newEditor); }
public void AnyParameter001() { // Arrange var container = new List <string>(); var parameter = new AnyParameter <TestDocument>(); parameter.Configure("x", "y"); // Act parameter.Execute(container); // Assert Assert.Equal(1, container.Count); Assert.Equal("x=y", container[0]); }
void OnParameterAction(AnyParameter param, AnyParameterEditor.Action action) { switch (action) { case AnyParameterEditor.Action.Delete: _paramToDelete = param; break; case AnyParameterEditor.Action.MoveUp: _paramToMoveUp = param; break; case AnyParameterEditor.Action.MoveDown: _paramToMoveDown = param; break; } }
public void AnyParameter001() { // Arrange var container = new List <string>(); var parameter = new AnyParameter { Name = "x", Value = "y" }; // Act parameter.Execute(); parameter.AddResultInContainer(container); // Assert Assert.Single(container); Assert.Equal("x=y", container[0]); }
void MoveDownRequestedParam() { if (_paramToMoveDown != null) { int index = _parameterList.Parameters.IndexOf(_paramToMoveDown); if (index >= 0 && index < _parameterList.Parameters.Count - 1) { Undo.RecordObject(_parameterList, "MoveDown Parameter"); _parameterList.Parameters.Remove(_paramToMoveDown); _parameterList.Parameters.Insert(index + 1, _paramToMoveDown); } else { Debug.Log("MoveDown not executable."); } _paramToMoveDown = null; } }
void MoveUpRequestedParam() { if (_paramToMoveUp != null) { int index = _parameterList.Parameters.IndexOf(_paramToMoveUp); if (index > 0) { Undo.RecordObject(_parameterList, "MoveUp Parameter"); _parameterList.Parameters.Remove(_paramToMoveUp); _parameterList.Parameters.Insert(index - 1, _paramToMoveUp); } else { Debug.Log("MoveUp not executable."); } _paramToMoveUp = null; } }
public override void OnInspectorGUI() { // start modifying serializedObject.Update(); // comment GUI EditorGUILayout.PropertyField(serializedObject.FindProperty("_comment")); // apply to object serializedObject.ApplyModifiedProperties(); // parameters GUI DrawParametersInspectorGUI(); if (GUILayout.Button("Add New Parameter")) { Undo.RecordObject(_parameterList, "Add New Parameter"); AnyParameter newParam = _parameterList.AddParameter(); Undo.RegisterCreatedObjectUndo(newParam, "Add New Parameter"); } }
public void AnyParameter001() { // Arrange var expected = JObject.Parse(@" { ""params"":{ ""x"": ""y"" } }"); string actual; var jObject = new JObject(); var parameter = new AnyParameter <TestDocument>(); parameter.Configure("x", "y"); // Act parameter.Execute(jObject); actual = jObject.ToString(); // Assert Assert.Equal(expected.ToString(), actual); }
void OnEnable() { _style = new GUIStyle(EditorStyles.foldout); _style.fontStyle = FontStyle.Bold; _param = (AnyParameter)target; }