Установить выделенный текст в GWT (для упрощения копирования и вставки) - PullRequest
1 голос
/ 21 октября 2010

В GWT, видимо, вам нужно использовать какой-то Flash-компонент для изменения буфера обмена. Поскольку я не хочу использовать Flash, но хочу копировать и вставлять текст из своего приложения, я хотел бы выбрать текст, выбранный, если кто-то щелкнет по нему. Единственное, что нужно сделать пользователю, это нажать Ctrl-C / Ctrl-V для копирования и вставки (в Windows). Это возможно? Как мне это сделать?

Дополнительная информация:

Приложение, в котором я хотел бы использовать это на http://borkent -app2.appspot.com / . Это приложение, которое я сделал, чтобы учить себя на иврите (мой родной язык - голландский). Еврейское слово размещается на RootPanel с помощью метки. Иногда я хотел бы скопировать и вставить слово на иврите (когда я хочу найти его в Google, например), но выбрать его несколько громоздко (вероятно, из-за направления текста справа налево). Поэтому я хотел бы выбрать текст слова на иврите, просто нажав на ярлык, в котором он находится.

1 Ответ

7 голосов
/ 21 октября 2010

Как то так?

public void onModuleLoad() {
    final Label word = new Label("some text");
    word.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            markText(word.getElement());
        }
    });
    word.getElement().setId("test");
    RootPanel.get().add(word);
}

private native void markText(Element elem) /*-{
    if ($doc.selection && $doc.selection.createRange) {
        var range = $doc.selection.createRange();
        range.moveToElementText(elem);
        range.select();
    } else if ($doc.createRange && $wnd.getSelection) {
        var range = $doc.createRange();
        range.selectNode(elem);
        var selection = $wnd.getSelection();
        selection.removeAllRanges();
        selection.addRange(range);
    }
}-*/;
...