protected ReflectionConsoleCommandBase(string name, Console console, IConsoleCommandHost commandHost) : base(commandHost.Name + "." + name) { Console = console; CommandHost = commandHost; Execute = x => InvokeCommand(x.Skip(1).ToArray()); CommandHostType = CommandHost.GetType(); }
public void HookInto(IConsoleCommandHost commandHost) { if (AlreadyHookedIntoCommandHost(commandHost)) return; AddHost(commandHost); AddHostCommands(commandHost); AddReflectionCommands(commandHost); }
private void AddReflectionCommands(IConsoleCommandHost commandHost) { Console.Interpreter.Commands.Add(new CallCommand(Console, commandHost)); Console.Interpreter.Commands.Add(new PropertySetCommand(Console, commandHost)); Console.Interpreter.Commands.Add(new PropertyGetCommand(Console, commandHost)); Console.Interpreter.Commands.Add(new DumpCommand(Console, commandHost)); Console.Interpreter.Commands.Add(new ToStringCommand(Console,commandHost)); Console.Interpreter.Commands.Add(new GetTypeCommand(Console,commandHost)); Console.Interpreter.Commands.Add(new SliderCommand(Console, commandHost)); Console.Interpreter.Commands.Add(new MethodButtonCommand(Console, commandHost)); }
public ConsoleToolWindow(IConsoleCommandHost host, string methodOrPropertyName) { Height = 70; CanResize = true; Title = host.Name + "." + methodOrPropertyName; StackPanel = new StackPanel { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; Content = StackPanel; }
private void AddHostCommand(IConsoleCommandHost commandHost, ConsoleCommand command) { ConsoleCommand localCommand = command; ConsoleCommand cmd = CreateScopedCommand(commandHost, command, localCommand); Console.Interpreter.Commands.Add(cmd); }
private void AddHost(IConsoleCommandHost commandHost) { Hosts.Add(commandHost); AttachEventHandlerToRemoveCommands(commandHost); Console.WriteLine("Hooked into " + commandHost.Name); }
private ConsoleCommand CreateScopedCommand(IConsoleCommandHost commandHost, ConsoleCommand command, ConsoleCommand localCommand) { return new ConsoleCommand(commandHost.Name + "." + command.Name, command.Description, x => localCommand.Execute(x)); }
public ToStringCommand(Console console, IConsoleCommandHost commandHost) : base("ToString", console, commandHost) { Description = "Writes out the objects ToString method"; }
public PropertySetCommand(Console console, IConsoleCommandHost commandHost) : base("Set", console, commandHost) { Description = "Sets a Property [name, value]"; }
private bool AlreadyHookedIntoCommandHost(IConsoleCommandHost commandHost) { return Hosts.Any(x => x == commandHost); }
public DumpCommand(Console console, IConsoleCommandHost commandHost) : base("Dump", console, commandHost) { Description = "Dumps all the objects properties to the console"; }
public CallCommand(Console console, IConsoleCommandHost commandHost) : this("Call", console, commandHost) { }
public CallCommand(string name, Console console, IConsoleCommandHost commandHost) : base(name, console, commandHost) { Description = "Calls a method on the object [method,(args*)]"; }
public SliderCommand(Console console, IConsoleCommandHost commandHost) : base("Slider", console, commandHost) { Description = "Creates a Slider To Set The Property [property,(min),(max),(autocall)]"; }
public SliderParams(IConsoleCommandHost commandHost, string[] arguments) { string propertyName = arguments[0]; PropertyToControl = commandHost.GetType().GetProperty(propertyName); if (PropertyToControl == null) { throw new ArgumentException("Property not found"); } if (arguments.Length > 2) { try { Minimum = float.Parse(arguments[1]); Maximum = float.Parse(arguments[2]); } catch (Exception ex) { throw new ArgumentException("Minimum or Maximum not a valid float", ex); } } if (arguments.Length > 3) { AutoCall = commandHost.GetType().GetMethod(arguments[3]); if (AutoCall == null) { throw new ArgumentException("AutoCall Method not found"); } } }
private void AddHostCommands(IConsoleCommandHost commandHost) { foreach (ConsoleCommand command in commandHost.Commands) AddHostCommand(commandHost, command); }
public MethodButtonCommand(Console console, IConsoleCommandHost commandHost) : base("Button", console, commandHost) { Description = "Creates a Button To Call A Method [methods,(args*)]"; }
protected ReflectionUiCommandBase(string name, Console console, IConsoleCommandHost commandHost) : base(name, console, commandHost) { }
private void AttachEventHandlerToRemoveCommands(IConsoleCommandHost commandHost) { commandHost.RemoveCommands += (sender, e) => RemoveAllCommands(commandHost.Commands); }
public GetTypeCommand(Console console, IConsoleCommandHost commandHost) : base("GetType", console, commandHost) { Description = "Writes out the objects type"; }