2013-08-13 4 views
0

Некоторые браузеры показывают для HTML Textareas дескриптор для изменения размера текстового поля. Есть ли способ реагировать на события изменения размера в GWT?GWT TextArea - обработчик изменения размера

Я попробовал его с этим кодом, но событие не срабатывает:.

TextArea textArea = new TextArea(); 

textArea.addHandler(new ResizeHandler() { 

    @Override 
    public void onResize(ResizeEvent event) { 
     System.out.println("resize"); 

    } 
}, ResizeEvent.getType()); 
+0

Возможный дубликат [Изменить размер события для textarea?] (Http://stackoverflow.com/questions/5570390/resize-event-for-textarea) – Mathletics

+0

Что вы хотите достичь этим? –

ответ

1

«Это не выглядит, как вы можете определенно приложить событие изменения размера текстового поля срабатывает событие изменения размера, когда окно изменяется. "

https://stackoverflow.com/a/2096352/1467482

+0

Если вы найдете то же сообщение, так как у вас недостаточно репутации, вы должны указать его как дубликат, или оставить комментарий к этому вопросу. –

+0

Это не настоящий дубликат, на мой взгляд. Я думаю, что этот вопрос полезен для разработчиков GWT без предварительного знания Javascript. – Vjeetje

0

вопрос уже два года, но для них, которые подводятся Google на этот вопрос у меня есть решение.

Вы можете использовать события мыши, перемещения мыши и мыши, чтобы реагировать на изменение размера текстовой области. Ниже представлен с каркасный код:

TextArea textArea = new TextArea(); 
... 
textArea.addMouseDownHandler(new MouseDownHandler() { 
    private HandlerRegistration mouseMoveUpRegistration; 
    private int lastWidth; 
    private int lastHeight; 

    @Override 
    public void onMouseDown(MouseDownEvent event) { 
    lastWidth = getOffsetWidth(); 
    lastHeight = getOffsetHeight(); 

    if (mouseMoveUpRegistration == null) { 
     mouseMoveUpRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() { 
     @Override 
     public void onPreviewNativeEvent(NativePreviewEvent event) { 
      if (event.getTypeInt() == Event.ONMOUSEMOVE || event.getTypeInt() == Event.ONMOUSEUP) { 
      int width = getOffsetWidth(); 
      int height = getOffsetHeight(); 
      if (width != lastWidth || height != lastHeight) { 
       // do whatever you want to to while still resizing 
       lastWidth = width; 
       lastHeight = height; 
      } 

      if (event.getTypeInt() == Event.ONMOUSEUP) { 
       // do whatever you want to do when resizing finished 
       // perhaps check actual and initial size to see if the size really changed 
       /* mouse up => additionally remove the handler */ 
       if (mouseMoveUpRegistration != null) { 
       mouseMoveUpRegistration.removeHandler(); 
       mouseMoveUpRegistration = null; 
       } 
      } 
      } 

     }); 
    } 
    } 

});

Смежные вопросы