@Override
    protected void onEnterKeyDown(final Context context,
                                  final Element parent,
                                  final T_ROW value,
                                  final NativeEvent event,
                                  final ValueUpdater<T_ROW> valueUpdater) {
        final Element element = event.getEventTarget().cast();
        final DocRef docRef = NullSafe.get(value, docRefFunction);
        if (docRef != null) {
            if (ElementUtil.hasClassName(element, COPY_CLASS_NAME, 5)) {
                final String text = cellTextFunction.apply(value).asString();
                if (text != null) {
                    ClipboardUtil.copy(text);
                }
            } else if (ElementUtil.hasClassName(element, OPEN_CLASS_NAME, 5)) {
                OpenDocumentEvent.fire(this, docRef, true);
            }
        } else {
            final String text = cellTextFunction.apply(value).asString();
            if (ElementUtil.hasClassName(element, CopyTextUtil.COPY_CLASS_NAME, 5)) {
                if (text != null) {
                    ClipboardUtil.copy(text);
                }
            }
        }
    }
@param showIcon         Set to true to show the type icon next to the text
@param cellTextFunction Function to provide the cell 'text' in HTML form.
@param docRefFunction   Function to provide a doc ref if the value can give us one.
@param cssClassFunction Function to provide additional css class names.
stroom-core-client/src/main/java/stroom/data/client/presenter/DocRefCell.java