Store table names to reference other tables
Storing table names in other (user) tables is an instance of storing structural metadata and user data side by side.  This has a variety of interesting effects, and some of those effects make it attractive to designers.  The down side is less apparent.  

The down side is this:  you end up doing a lot of data management "by hand" in the SQL that a different design might have allowed the DBMS to do for you.  This makes your code harder to maintain and slower to run.  

Having said that, I'll admit to having pulled this stunt several times, and the results were usually good enough so that I didn't regret the choice.

There's a second thing going on in your case.  Types 1 and 2 of both widgets and products are cases of class/subclass modeling (or, if you prefer type/subtype modeling).  This kind of thing is simple and straightforward in object modeling, because inheritance takes care of most of the difficulties for you.  Not so in relational modeling.  Relational modeling, as such, has no mechanism for inheritance.  Some variants of SQL have extensions that make inheritance easier to model and to implement.

There are many case of questions here in the DBA area that boil down to the question of how to implement subclasses (or subtypes) in SQL tables.  Some of those questions are grouped under this tag:  subtypes.  Over in StackOverflow, there are even more such questions, and there are three tags that relate to three design techniques that might help:  single-table-inheritance, class-table-inheritance, and shared-primary-key.  

Your design resembles a class table inheritance design, except that you use embedded table names instead of shared primary key to implement the IS-A relationships between subclasses and classes.  You might want to explore using shared primary key, and then creating views that collect all the data for each subclass by joining the superclass table with each subclass.  I'm not sure you want to go this way.  It could get awfully unwieldy once you have hundreds of different product types.