String name = descriptor.getDisplayName();
String name = descriptor.getName();
    protected void initComponents() {        editorPanel.removeAll();        size = 0;        PropertyDescriptor[] descriptors = getPropertyDescriptors();        for (int i = 0; i < descriptors.length; i++) {            PropertyDescriptor descriptor = descriptors[i];	    String name = descriptor.getDisplayName();	    Class type = descriptor.getPropertyType();	    Method getter = descriptor.getReadMethod();	    Method setter = descriptor.getWriteMethod();	    if (getter == null)		continue;            SPropertyEditor propertyEditor = getPropertyEditor(descriptor);            if (propertyEditor == null) {                System.err.println("no propertyEditor available for: " + name);                continue;            }	    propertyEditor.addPropertyChangeListener(this);	    EditorAdapter editorAdapter = (EditorAdapter)descriptor.getValue(EDITOR_ADAPTER);	    if (editorAdapter == null) {		if (setter == null)		    editorAdapter = new SLabelEditorAdapter();		else		    editorAdapter = getEditorAdapter(propertyEditor);	    }	    editorAdapter.setEditor(propertyEditor);            editorAdapter.init(descriptor);            SComponent nameLabel = new SLabel(descriptor.getDisplayName());            Boolean mayBeNull = (Boolean)descriptor.getValue(MAYBENULL);            if (mayBeNull != null && !mayBeNull.booleanValue()) {                SPanel inner = new SPanel();                SLabel mark = new SLabel(" *");                mark.setForeground(Color.red);                inner.add(nameLabel);                inner.add(mark);                editorPanel.add(inner);            }            else                editorPanel.add(nameLabel);            editorPanel.add(editorAdapter.getComponent());	    properties.put(name, new Property(descriptor, propertyEditor, editorAdapter));                        if (setter != null)                size++;        }    }