Project

General

Profile

1
package eu.dnetlib.client.widgets;
2

    
3
import com.google.gwt.user.client.Event;
4
import com.google.gwt.user.client.Timer;
5

    
6
/**
7
 * Created by stefania on 2/27/15.
8
 */
9
public class TextBox extends com.github.gwtbootstrap.client.ui.TextBox implements ValueChangeCancelField {
10

    
11
    private String oldValue = "";
12
    private ValueChangeHandler handler = null;
13

    
14
    public TextBox() {
15
        super();
16
        sinkEvents(Event.ONPASTE | Event.ONKEYUP);
17
    }
18

    
19
    @Override
20
    public void onBrowserEvent(Event event) {
21

    
22
        super.onBrowserEvent(event);
23

    
24
        switch (event.getTypeInt()) {
25
            case Event.ONPASTE:
26
            case Event.ONKEYUP:
27

    
28
                Timer t = new Timer() {
29

    
30
                    @Override
31
                    public void run() {
32
                        if (handler != null) {
33
                            ValueChangeEvent valueChangeEvent = new ValueChangeEvent(TextBox.this, getId(), oldValue, getText());
34

    
35
                            handler.handle(valueChangeEvent);
36

    
37
                            oldValue = getText();
38
                        }
39
                    }
40
                };
41
                t.schedule(0);
42

    
43
                break;
44
            default:
45
        }
46
    }
47

    
48
    @Override
49
    public void cancel() {
50
        this.setText(oldValue);
51
//        focus();
52
    }
53

    
54
    public void setValueChangeHandler(ValueChangeHandler handler) {
55
        this.handler = handler;
56
    }
57
}
(18-18/21)