package com.akjava.gwt.lib.client.widget;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.TextArea;
/**
* only work on Chrome(web-kit)
* to catch new value add addValueChangeHandler
*
* addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
GWT.log("changed:"+event.getValue());
}
});
* ref
* https://groups.google.com/forum/?fromgroups#!topic/google-web-toolkit/CaNSdwfSK-A
* @author aki
*
*/
public class PasteValueReceiveArea extends TextArea{
public PasteValueReceiveArea(){
super();
sinkEvents(Event.ONPASTE);
setReadOnly(true);
}
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
switch (event.getTypeInt()) {
case Event.ONPASTE: {
ValueChangeEvent.fire(this, getPastedText(event));
break;
}
}
}
/**
ref
* https://groups.google.com/forum/?fromgroups#!topic/google-web-toolkit/CaNSdwfSK-A
*/
public static native String getPastedText(Event event)
/*-{
var text = "";
if (event.clipboardData) // WebKit/Chrome/Safari
{
try
{
text = event.clipboardData.getData("Text");
return text;
}
catch (e)
{
}
}
return text;
}-*/;
}