// TODO in the future, errors in these two things would likely be
// handled, instead of exceptions being thrown
assert state.isAllowable();
assert state.isConfigured();
ManagedVisualItemValueResolver resolver = state.getResolver();
SlotControl slotControl = slotToSlotControls.get(slot);
if (slotControl == null) {
// The slot Control has not yet been initialized, initialize it and
// set the resolverUI
slotControl = createSlotControl(slot, resolver);
} else if (!resolver.getId().equals(
slotControl.getCurrentResolverUIId())) {
// only the factory has changed, and we need to update the
// resolverUI
slotControl.setNewUIModel(createUIControllerFromResolver(slot,
resolver));