If a nice map was made similar to this one.
http://i.imgur.com/QKTgU.png but a bit more fancy with highlights and other things. You could simply check either each item discovery you have made and create a simple if statement for each one to unlock specific crafteble items. It would be a semi complicated if check but not to hard to implement map. Each discovery would simply indicate that you have unlocked enough items to craft a specific item or show what is not discovered and is required before it is possible to craft the item.
Here is an example of a crude map:

The discovered items would simply be an array of booleans that would be checked by showing up on the arraylist of items sent from the server. If its found in that list they turn true. The list of boolean would simply be checked by an list of if statments making green or gray backgrounds for each item discoverd and not discovered. If the item is discovered it can also make other craftable gray background turn green.
Here on this map string and leather shows up on that arraylist sent from the server and turns leather and string true. This means those background colors are turned green instead of gray indicating whats been discovered. When both wax and leather is discovered the hard leather can be seen on the craftable menu. A different colored background could indicate this but to keep it simple to start of with it would stay gray until the item is discovered.