2010-10-25 17 views
5

Desidero gestire gli eventi quando l'utente incolla del testo in TextBox. Quale evento è stato attivato in questa situazione? Ho provato i gestori ValueChange e Change, ma non hanno funzionato.GWT che incolla evento

risposta

8

This potrebbe aiutarti. Descrive una soluzione alternativa per collegarsi all'evento onpaste. In breve:

  • sottoclasse TextBox

  • affondare l'evento onpaste nel costruttore

    sinkEvents(Event.ONPASTE);
  • esclusione onBrowserEvent(Event event)

    public void onBrowserEvent(Event event) { 
        super.onBrowserEvent(event); 
        switch (event.getTypeInt()) { 
         case Event.ONPASTE: { 
          // do something here 
          break; 
         } 
        } 
    }
+0

Link è morto. Presumo che doveva essere http://groups.google.com/group/google-web-toolkit/browse_thread/thread/5d9a6fbe9e2bacf2 – alexandroid

+0

Grazie, ho aggiornato il link. – z00bs

+0

So che questo è vecchio ora. Sto commentando questo perché sto colpendo una situazione, non sorda, ma merita una certa consapevolezza. La mia scatola è considerata numerica, quindi aggiungo onclick, onblur e sink per onpaste. Il fatto è che, con on paste, gli eventi click e blur non vengono lanciati dai gestori che ho aggiunto, piuttosto vengono lanciati nell'evento onBrowser. Perchè è questo? –

6

GWT non ha ancora il supporto per tagliare, copiare & pasta: http://code.google.com/p/google-web-toolkit/issues/detail?id=4030

Modificato: Un'altra opzione è quella di utilizzare JSNI. Per esempio aggiungere questo alla classe GWT:

public native void addCutHandler(Element element) 
    /*-{ 
     var temp = this; // hack to hold on to 'this' reference 
     element.oncut = function(e) { 
      [email protected]::handleCut()(); 
     } 
    }-*/; 

public void handleCut() { 
    Window.alert("Cut!"); 
}