GWT notification widget?

后端 未结 1 882
南方客
南方客 2021-02-10 06:31

do you know if there is any notification widget for GWT out there, like this one here?

http://demo.vaadin.com/sampler#NotificationHumanized

1条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-02-10 07:25

    AFAIK there is no such widget in core GWT, but why not roll your own:

    public class DelayedPopup extends PopupPanel {
    
        public DelayedPopup(String text, boolean autoHide, boolean modal) {
            super(autoHide, modal);
            setWidget(new Label(text));
        }
    
        void show(int delayMilliseconds) {
            show();
            Timer t = new Timer() {
                @Override
                public void run() {
                    DelayedPopup.this.hide();
                }
            };
    
            // Schedule the timer to close the popup in 3 seconds.
            t.schedule(3000);
        }
    }
    

    This is out of my head so it might not compile, but you get the idea.

    Update:

    As per comment, I'm adding notification that hides itself on mouse move:

    public class Notification extends PopupPanel {
    
        public Notification(String text) {
            super(false, false);
            setWidget(new Label(text));
        }
    
        @Override
        public void show() {
            installCloseHandler();
            super.show();
        }
    
        public native void installCloseHandler() /*-{
            var tmp = this;
            $wnd.onmousemove = function() {
                // edit the com.google.gwt.sample.contacts.client package 
                // to match your own package name
                tmp.@com.google.gwt.sample.contacts.client.Notification::hide()();
                $wnd.onmousemove = null;
            }
        }-*/;
    }
    

    0 讨论(0)
提交回复
热议问题