Some time ago, I wrote about some enhancements I'd made to the NewPrerequisiteEngine package. These enhancements allowed you to mark prerequisites as either Ignored or Explicit.
In the forthcoming VisualWorks 7.7, the prerequisite tool has been enhanced quite significantly, adopting much of what was accomplished by NewPrerequisiteEngine. I think the new tool is a huge improvement over what was there before.
The concept of an Ignored prerequisite was included in the new tool (now called "Disregarded"). However, the concept of an Explicit prerequisite was not carried forward.
In our work, we find that it is important to distinguish between prerequisites that we know are required, even if the tool can't find a reason, and prerequisites that used to be required, but no longer are. We have a set of tests that we run on our code. One of these tests checks to make sure that the prerequisites on all of our packages are up-to-date. That is, that what is specified matches what the tool computes. Without the concept of an explicit prerequisite, we can't keep this test passing.
To that end, I've just published ExplicitPrerequisites to the public repository. Under the hood, it uses the same storage format as NewPrerequisiteEngine (a property on the CodeComponent) so it is backwards-compatible. The package adds a toggle menu item to any current prerequisites, along with some modifications to the status icon to allow a direct-manipulation interface. Clicking on the "no reasons" icon will mark the prerequisite as explicit; clicking on the "explicit" icon, will un-mark it.
In order to add the new icon and clicking behavior, I had to override one method from the base tool.
Feel free to try it out and let me know what you think.