code: public void registerWidget(final ConfiguredPropertyDescriptor propertyDescriptor, final PropertyWidget<?> widget) {
          if (widget == null) {
              _widgets.remove(propertyDescriptor);
          } else {
              _widgets.put(propertyDescriptor, widget);
              @SuppressWarnings("unchecked") final PropertyWidget<Object> objectWidget = (PropertyWidget<Object>) widget;
              final Object value = _componentBuilder.getConfiguredProperty(objectWidget.getPropertyDescriptor());
              objectWidget.initialize(value);
          }
      }
docs: Registers a widget in this factory in rare cases when the factory is not
  used to actually instantiate the widget, but it is still needed to
  register the widget for compliancy with eg. the onConfigurationChanged()
  behaviour.
  
  @param propertyDescriptor
  @param widget