143You are currently designing your own Desktop Publishing application, as you have not found any that do exactly what you want with existing applications. As part of the design you are using a Controller to which you send all GUI requests. Not all objects can process the same commands. For example you can't select the spell check tool when an image has the focus. To stop any possible errors you would like to filter out some of the messages as they are passed from these objects to the Controller object. What pattern could you use?
AFirewall BProxy CAdapter DObserver EChain of Responsibility FFilter
IMO you could use both, but there is a subtle difference here. Chain-of-responsability is best applied in situations where you may want to add or re-organize request filters. A proxy controls access to other component, in this case the controller, so Proxy is the best answer, but not the only one.