protected override void CommandUpdate(object target, CommandInfo cinfo) { NodeCommandHandler nc = (NodeCommandHandler)target; base.CommandUpdate(target, cinfo); if (nc.MultipleSelectedNodes) { bool allowMulti = false; ICommandUpdateHandler h = ((ICommandUpdateHandler)this).Next; while (h != null) { if (h is AllowMultiSelectionAttribute) { allowMulti = true; break; } h = h.Next; } if (!allowMulti) { cinfo.Enabled = false; } } }
public void AddCustomHandlers (ICommandUpdateHandler handlerChain, ICommandArrayUpdateHandler arrayHandlerChain) { this.customHandlerChain = handlerChain; this.customArrayHandlerChain = arrayHandlerChain; }
ICommandUpdateHandler ChainHandler (ICommandUpdateHandler chain, object attr) { ICommandUpdateHandler h = attr as ICommandUpdateHandler; if (h == null) return chain; h.Next = chain ?? DefaultCommandHandler.Instance; return h; }