Component ( final JTable table, @NotNull final Object value, final boolean selected, final boolean hasFocus, final int row, int column ) { myPropertyNameRenderer.getTableCellRendererComponent(table,value,selected,hasFocus,row,column); column=table.convertColumnIndexToModel(column); final Property property=(Property)value; final Color background; final Property parent = property.getParent(); if (property instanceof IntrospectedProperty){ background = table.getBackground(); } else { background = parent == null ? SYNTHETIC_PROPERTY_BACKGROUND : SYNTHETIC_SUBPROPERTY_BACKGROUND; } if (!selected){ myPropertyNameRenderer.setBackground(background); } if(column==0){ // painter for first column SimpleTextAttributes attrs = getTextAttributes(row, property); myPropertyNameRenderer.append(property.getName(), attrs); // 2. Icon if(getPropChildren(property).length>0) { // This is composite property and we have to show +/- sign if (parent != null) { if(isPropertyExpanded(property)){ myPropertyNameRenderer.setIcon(myIndentedCollapseIcon); }else{ myPropertyNameRenderer.setIcon(myIndentedExpandIcon); } } else { if(isPropertyExpanded(property)){ myPropertyNameRenderer.setIcon(myCollapseIcon); }else{ myPropertyNameRenderer.setIcon(myExpandIcon); } } }else{ // If property doesn't have children then we have shift its text // to the right myPropertyNameRenderer.setIcon(myIndentIcons [getPropertyIndentDepth(property)]); } } else if(column==1){ // painter for second column try { final PropertyRenderer renderer=property.getRenderer(); //noinspection unchecked final JComponent component = renderer.getComponent(myEditor.getRootContainer(), getSelectionValue(property), selected, hasFocus); if (!selected) { component.setBackground(background); } if (isModifiedForSelection(property)) { component.setFont(table.getFont().deriveFont(Font.BOLD)); } else { component.setFont(table.getFont()); } return component; } catch(Exception ex) { LOG.debug(ex); myErrorRenderer.clear(); myErrorRenderer.append(UIDesignerBundle.message("error.getting.value", ex.getMessage()), SimpleTextAttributes.ERROR_ATTRIBUTES); return myErrorRenderer; } } else{ throw new IllegalArgumentException("wrong column: "+column); } if (!selected) { myPropertyNameRenderer.setForeground(PropertyInspectorTable.this.getForeground()); if(property instanceof IntrospectedProperty){ final RadComponent component = mySelection.get(0); final Class componentClass = component.getComponentClass(); if (Properties.getInstance().isExpertProperty(component.getModule(), componentClass, property.getName())) { myPropertyNameRenderer.setForeground(Color.LIGHT_GRAY); } } } return myPropertyNameRenderer; }