private String copyGridToText() {
        StringBuilder buf = new StringBuilder();
        int columnsCount = columnController.getColumnsCount();
        {
            // Header
            for (int i = 0; i < columnsCount; i++) {
                ObjectColumn column = getColumnByIndex(i);
                if (i > 0) buf.append("\t");
                buf.append(column.displayName);
            }
            buf.append("\n");
        }
        List<OBJECT_TYPE> elementList = itemsViewer.getStructuredSelection().toList();
        for (OBJECT_TYPE element : elementList) {
            Object object = getObjectValue(element);
            for (int i = 0; i < columnsCount; i++) {
                ObjectPropertyDescriptor property = getColumnByIndex(i).getProperty(object);
                try {
                    Object cellValue = property == null ? null : property.readValue(object, new VoidProgressMonitor(), true);
                    if (i > 0) buf.append("\t");
                    String strValue = DBValueFormatting.getDefaultValueDisplayString(cellValue, DBDDisplayFormat.UI);
                    if (strValue.contains("\n") || strValue.contains("\t")) {
                        strValue = '"' + strValue + '"';
                    }
                    buf.append(strValue);
                } catch (Throwable e) {
                    // ignore
                }
            }
            buf.append("\n");
        }

        return buf.toString();
    }
Searcher. Filters elements by name and description
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/itemlist/ObjectListControl.java