@Nullable
        @Override
        public Image getImage(Object element) {
            if (element instanceof ObjectsGroupingWrapper) {
                if (this.objectColumn == groupingColumn) {
                    List<Object> groupedElements = ((ObjectsGroupingWrapper) element).groupedElements;
                    element = groupedElements.get(0);
                } else {
                    return null;
                }
            }
            OBJECT_TYPE object = (OBJECT_TYPE) element;
            final Object objectValue = getObjectValue(object);
            if (objectValue == null) {
                // This may happen if list redraw happens during node dispose
                return null;
            }
            final ObjectPropertyDescriptor prop = getPropertyByObject(objectColumn, objectValue);
            if (prop != null && prop.isNameProperty()) {
                DBPImage objectImage = getObjectImage(object);
                return objectImage == null ? null : DBeaverIcons.getImage(objectImage);
            }
            return null;
        }
Creates service for object loading.
@param forUpdate true if it is update/merge operation. I.e. existing object modifications should remain.
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/itemlist/ObjectListControl.java