if (! hasSavedPossibleMetaObjects()) { possibleMetaObjects.add(metaObject); }
        public HtmlComponent createComponent(Object object, Class type) {            Collection collection = (Collection) object;                        HtmlCheckBoxList listComponent = new HtmlCheckBoxList();            listComponent.setSelectAllShown(isSelectAllShown());                        Schema schema = RenderKit.getInstance().findSchema(getEachSchema());                        List<MetaObject> possibleMetaObjects;            if (hasSavedPossibleMetaObjects()) {                possibleMetaObjects = getPossibleMetaObjects();            } else {                possibleMetaObjects = new ArrayList<MetaObject>();                                for (Object possibility : getPossibleObjects()) {                    possibleMetaObjects.add(MetaObjectFactory.createObject(possibility, schema));                }            }                        for (MetaObject metaObject : possibleMetaObjects) {                Object obj = metaObject.getObject();                MetaObjectKey key = metaObject.getKey();                                if (! hasSavedPossibleMetaObjects()) {                    possibleMetaObjects.add(metaObject);                }                                String layout = getEachLayout();                                PresentationContext newContext = getContext().createSubContext(metaObject);                newContext.setLayout(layout);                newContext.setRenderMode(RenderMode.getMode("output"));                                RenderKit kit = RenderKit.getInstance();                HtmlComponent component = kit.render(newContext, obj);                HtmlCheckBox checkBox = listComponent.addOption(component, key.toString());                                if (collection != null && collection.contains(obj)) {                    checkBox.setChecked(true);                }            }            if (isSaveOptions()) {            	    savePossibleMetaObjects(possibleMetaObjects);            }                        // TODO: make providers only provide a converter for a single object            //       make a wrapper converter that calls that converter for each value            //       this allows converters to be used to menus and checkboxes             listComponent.setConverter(new OptionConverter(possibleMetaObjects, getConverter()));            listComponent.setTargetSlot((MetaSlotKey) getInputContext().getMetaObject().getKey());                        return listComponent;        }