Example usage for com.google.gwt.user.client Timer cancel

List of usage examples for com.google.gwt.user.client Timer cancel

Introduction

In this page you can find the example usage for com.google.gwt.user.client Timer cancel.

Prototype

public synchronized void cancel() 

Source Link

Document

Cancels this timer.

Usage

From source file:org.bonitasoft.web.toolkit.client.ui.component.AutoCompleteTextInput.java

License:Open Source License

private void setEvents() {

    final GQuery input = $(inputElement);

    // ON TEXT CHANGE
    input.keypress(new Function() {

        @Override/*from w w w . j  a v  a2  s  .  com*/
        public boolean f(final Event e) {

            // Window.alert(e.getKeyCode() + " - " + e.getCharCode());

            switch (e.getKeyCode()) {
            case KeyCodes.KEY_ENTER:
                e.stopPropagation();
                return false;
            case KeyCodes.KEY_ESCAPE:
                AutoCompleteTextInput.this.reset();
                break;
            case KeyCodes.KEY_DELETE:
            case KeyCodes.KEY_BACKSPACE:
            case 0: // Character
            default:

                AutoCompleteTextInput.this.resetValue();

                // ClearTimeout if another key is pressed before the end of previous timeout
                if (input.data(AUTOCOMPLETE_ONCHANGE_TIMER) != null) {
                    final Timer t = (Timer) input.data(AUTOCOMPLETE_ONCHANGE_TIMER);
                    t.cancel();
                    input.removeData(AUTOCOMPLETE_ONCHANGE_TIMER);
                }

                final Timer t = new Timer() {

                    @Override
                    public void run() {
                        input.removeData(AUTOCOMPLETE_ONCHANGE_TIMER);
                        AutoCompleteTextInput.this.refresh();
                    }
                };
                input.data("AUTOCOMPLETE_ONCHANGE_TIMER", t);
                t.schedule(500);
                break;
            }

            return true;
        }
    });

    // ON TEXT BLUR
    input.blur(new Function() {

        @Override
        public void f() {
            if (input.data(AUTOCOMPLETE_ONCHANGE_TIMER) != null) {
                final Timer t = (Timer) input.data(AUTOCOMPLETE_ONCHANGE_TIMER);
                t.cancel();
                input.removeData(AUTOCOMPLETE_ONCHANGE_TIMER);
            }
            boolean isFocused = childrenFocused(dropdown.getElement());
            // && $(AutoCompleteTextInput.this.dropdown.getElement()).find(":focus").size() == 0) {
            if (!$(inputElement).is(".completed") && !isFocused) {

                AutoCompleteTextInput.this.reset();
                dropdown.close();
            }
        }

    });
}

From source file:org.dataconservancy.dcs.access.client.ui.WfEventRefresherPanel.java

License:Apache License

public WfEventRefresherPanel(final String submitterId, final String wfInstanceId) {
    super(false);
    grid = new Grid(4, 2);
    grid.getRowFormatter().setStyleName(0, "statusPopupPanelText");
    grid.setStyleName("statusPopupPanel");
    setWidget(grid);//from  www. j av a 2s .  c  o  m
    setStyleName("statusPopupPanelContainer");
    grid.setText(0, 1, "Starting");

    image = new Image("images/wait.gif");
    grid.setWidget(0, 0, image);

    final Timer timer = new Timer() {
        @Override
        public void run() {
            if (doneFlag == 1) {
                grid.setText(0, 1, "Ingest Workflow for " + dTitle + " completed");
                image = new Image("images/done.png");
                grid.setWidget(0, 0, image);
                cancel();
                doneFlag = 0;
            }
            dbService.getProv(submitterId, wfInstanceId, latestDate,
                    new AsyncCallback<List<ProvenaceDataset>>() {
                        public void onSuccess(List<ProvenaceDataset> result) {
                            String events = "<ul>";
                            for (final ProvenaceDataset dataset : result) {
                                for (Map.Entry<String, List<ProvenanceRecord>> entry : dataset.provRecordbyWf
                                        .entrySet()) {
                                    for (final ProvenanceRecord provRecord : entry.getValue()) {
                                        int i = 0;
                                        for (Event event : provRecord.getEvents()) {

                                            if (event.getEventType().contains("match"))
                                                events += "<li>"
                                                        + Constants.eventMessages.get(event.getEventType())
                                                        + ": Completed(" + event.getEventDetail() + ")"
                                                        + "</li>";
                                            else
                                                events += "<li>"
                                                        + Constants.eventMessages.get(event.getEventType())
                                                        + ": Completed</li>";
                                            if (i == provRecord.getEvents().size() - 1) {
                                                events += "</ul>";
                                                final String temp = events;
                                                dbService.getDate(event.getEventDate(),
                                                        new AsyncCallback<String>() {

                                                            @Override
                                                            public void onFailure(Throwable caught) {
                                                                // TODO Auto-generated method stub

                                                            }

                                                            @Override
                                                            public void onSuccess(String result) {
                                                                latestDate = result;
                                                                if (provRecord
                                                                        .getStatus() == org.dataconservancy.dcs.access.shared.Status.Completed) {
                                                                    doneFlag = 1;
                                                                    dTitle = dataset.datasetTitle;
                                                                }

                                                                grid.setWidget(0, 1, new HTML(temp));
                                                                image = new Image("images/wait.gif");
                                                                grid.setWidget(0, 0, image);

                                                            }

                                                        });
                                            }

                                            i++;
                                        }
                                    }
                                }

                                //are the dates sorted? looks like it at a glance - please confirm
                            }
                        }

                        @Override
                        public void onFailure(Throwable caught) {
                            // TODO Auto-generated method stub

                        }
                    });
        }

    };
    timer.scheduleRepeating(4 * 1000);//every 20 seconds

    close = new Button("Close");
    close.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            hidePanel();
            timer.cancel();
        }
    });

    //close button
    grid.setWidget(3, 1, close);
    Panel progressPanel = new FlowPanel();
    progressPanel.setStyleName("progressBarContainer");
    insideProgressPanel.setWidth("0%");
    insideProgressPanel.setStyleName("Gradient");
    progressPanel.add(insideProgressPanel);

}

From source file:org.fusesource.restygwt.client.cache.QueuableRuntimeCacheStorage.java

License:Apache License

@Override
public void purge() {
    if (LogConfiguration.loggingIsEnabled()) {
        Logger.getLogger(QueuableRuntimeCacheStorage.class.getName())
                .finer("remove " + cache.size() + " elements from cache.");
    }//from   w  ww . jav  a  2s .  com
    cache.clear();
    if (LogConfiguration.loggingIsEnabled()) {
        Logger.getLogger(QueuableRuntimeCacheStorage.class.getName())
                .finer("remove " + timers.size() + " timers from list.");
    }
    for (Timer t : timers) {
        t.cancel();
    }
    timers.clear();
}

From source file:org.fusesource.restygwt.client.cache.VolatileQueueableCacheStorage.java

License:Apache License

@Override
public void purge() {
    super.purge();
    if (LogConfiguration.loggingIsEnabled()) {
        Logger.getLogger(DefaultQueueableCacheStorage.class.getName())
                .finer("remove " + timers.size() + " timers from list.");
    }/* w  w  w .j  ava  2 s . c o  m*/
    for (Timer t : timers) {
        t.cancel();
    }
    timers.clear();
}

From source file:org.geomajas.hammergwt.example.client.PanelsSample.java

License:Open Source License

public PanelsSample() {
    layout = new FlowPanel();
    final AbsolutePanel pinkPanel = new AbsolutePanel();
    pinkPanel.setSize("100px", "200px");
    pinkPanel.getElement().setId("pinkPanel");
    pinkPanel.getElement().getStyle().setBackgroundColor("pink");
    pinkPanel.getElement().getStyle().setLeft(0, Style.Unit.PX);
    pinkPanel.getElement().getStyle().setTop(0, Style.Unit.PX);

    final Label pinkPanelLabel = new Label("Drag");
    pinkPanelLabel.getElement().getStyle().setPadding(5, Style.Unit.PX);
    pinkPanel.add(pinkPanelLabel);//from   ww  w.  j  a v a  2s .  c om

    final AbsolutePanel orangePanel = new AbsolutePanel();
    AbsolutePanel blackPanel = new AbsolutePanel();
    //panel.getElement().getStyle().setTop(100, Style.Unit.PX);

    orangePanel.getElement().setId("orangePanel");
    orangePanel.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    orangePanel.getElement().getStyle().setBackgroundColor("orange");
    orangePanel.getElement().getStyle().setLeft(105, Style.Unit.PX);
    orangePanel.getElement().getStyle().setTop(0, Style.Unit.PX);
    orangePanel.setSize("100px", "200px");
    orangePanel.add(new Label("Pinch"));

    blackPanel.getElement().setId("notDraggable");
    blackPanel.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    blackPanel.getElement().getStyle().setBackgroundColor("black");
    blackPanel.getElement().getStyle().setLeft(210, Style.Unit.PX);
    blackPanel.getElement().getStyle().setTop(0, Style.Unit.PX);
    blackPanel.setSize("100px", "200px");

    final Label blackPanelLabel = new Label("Hold");
    blackPanelLabel.getElement().getStyle().setPadding(5, Style.Unit.PX);
    blackPanelLabel.getElement().getStyle().setColor("white");
    blackPanel.add(blackPanelLabel);

    //Hammer GWT widget example
    final HammerGWTExampleWidget hammerGWTWidget = new HammerGWTExampleWidget();

    layout.add(orangePanel);
    layout.add(blackPanel);
    layout.add(hammerGWTWidget);
    layout.add(pinkPanel);

    // add hammer gwt events
    HammerGwt.on(HammerGwt.create(pinkPanel), new HammerHandler() {
        @Override
        public void onHammerEvent(NativeHammerEvent event) {
            log(event);
            event.preventDefault();
            event.preventNativeDefault();

            switch (event.getType()) {
            case TAP:
                //return to start position
                pinkPanel.getElement().getStyle().setLeft(0, Style.Unit.PX);
                pinkPanel.getElement().getStyle().setTop(0, Style.Unit.PX);
                pinkPanelLabel.setText("Drag");

                break;
            case DRAG:
            default:
                pinkPanelLabel.setText("Tap to move to start position");
                int left = event.getPageX() - 50;
                int top = event.getPageY() - 100;
                pinkPanel.getElement().getStyle().setLeft(left, Style.Unit.PX);
                pinkPanel.getElement().getStyle().setTop(top, Style.Unit.PX);

                break;

            }
        }
    }, EventType.TAP, EventType.DRAG);

    // add hammer gwt events
    HammerGwt.on(HammerGwt.create(orangePanel), new HammerHandler() {
        @Override
        public void onHammerEvent(NativeHammerEvent event) {
            log(event);
            switch (event.getType()) {
            case DRAG:
                int left = event.getPageX() - 50;
                int top = event.getPageY() - 100;
                orangePanel.getElement().getStyle().setLeft(left, Style.Unit.PX);
                orangePanel.getElement().getStyle().setTop(top, Style.Unit.PX);

                break;
            case PINCH:
            default:
                double w = (event.getScale() * orangePanel.getElement().getClientWidth());

                double h = (event.getScale() * orangePanel.getElement().getClientHeight());

                orangePanel.setPixelSize((int) w, (int) h);

                break;

            }
        }
    }, EventType.DRAG, EventType.PINCH);

    HammerTime hammerTime3 = HammerGwt.create(blackPanel.getElement());

    // Set hammer gwt options
    hammerTime3.setOption(GestureOptions.HOLD_TIMEOUT, 2);
    hammerTime3.setOption(GestureOptions.DRAG, false);

    // add hammer gwt events
    NativeHammmerHandler sb3 = HammerGwt.on(HammerGwt.create(blackPanel), new HammerHandler() {

        @Override
        public void onHammerEvent(NativeHammerEvent event) {
            log(event);
            Timer timer = new Timer() {
                public void run() {
                    // Timer expired
                    blackPanelLabel.setText("Hold");
                }
            };

            switch (event.getType()) {

            case HOLD:
                blackPanelLabel.setText("Holding...");
                timer.cancel();

                break;
            case RELEASE:
                blackPanelLabel.setText("Released");

                // Execute the timer to expire 1 second in the future
                timer.schedule(1000);

                break;

            }

        }
    }, EventType.HOLD, EventType.RELEASE);

    //HammerGWT.off(hammerTime3, EventType.DRAG, sb3);

}

From source file:org.geosdi.maplite.client.model.LegendBuilder.java

private static DialogBox getRefreshDialogBox(final ClientRasterInfo raster, final Map map) {
    // Create a dialog box and set the caption text
    final DialogBox refreshDialogBox = new DialogBox();
    refreshDialogBox.ensureDebugId("cwDialogBox");
    refreshDialogBox.setText("REFRESH TIME");

    // Create a table to layout the content
    VerticalPanel dialogContents = new VerticalPanel();
    dialogContents.setSpacing(4);/* w  w w . ja v  a 2 s  .  co m*/
    refreshDialogBox.setWidget(dialogContents);

    // Add some text to the top of the dialog
    HTML details = new HTML("seconds");
    dialogContents.add(details);
    dialogContents.setCellHorizontalAlignment(details, HasHorizontalAlignment.ALIGN_CENTER);

    final TextBox normalText = new TextBox();
    normalText.ensureDebugId("cwBasicText-textbox");
    // Set the normal text box to automatically adjust its direction according
    // to the input text. Use the Any-RTL heuristic, which sets an RTL direction
    // iff the text contains at least one RTL character.
    normalText.setDirectionEstimator(AnyRtlDirectionEstimator.get());

    dialogContents.add(normalText);
    dialogContents.setCellHorizontalAlignment(normalText, HasHorizontalAlignment.ALIGN_CENTER);

    // Add a close button at the bottom of the dialog
    Button closeButton = new Button("Apply", new ClickHandler() {

        private java.util.Map<ClientRasterInfo, Timer> timerMap = Maps.<ClientRasterInfo, Timer>newHashMap();

        @Override
        public void onClick(ClickEvent event) {
            String value = normalText.getValue();
            try {
                int seconds = Integer.parseInt(value);
                if (seconds != 0 && seconds < 30) {
                    Window.alert("The time must be greater or equal to 30 seconds");
                } else {
                    Layer layer = map.getLayer(raster.getWmsLayerId());

                    final WMS wms = WMS.narrowToLayer(layer.getJSObject());
                    Timer timer = timerMap.get(raster);
                    if (timer == null) {
                        timer = new Timer() {

                            @Override
                            public void run() {
                                logger.info("Repeat scheduling");
                                wms.redraw(true);
                            }
                        };
                        timerMap.put(raster, timer);
                    }
                    if (seconds == 0) {
                        timer.cancel();
                    } else {
                        timer.scheduleRepeating(seconds * 1000);
                    }
                    refreshDialogBox.hide();
                }
            } catch (NumberFormatException nfe) {
                Window.alert("The passed value is not a valid integer number");
            }
        }
    });
    dialogContents.add(closeButton);
    if (LocaleInfo.getCurrentLocale().isRTL()) {
        dialogContents.setCellHorizontalAlignment(closeButton, HasHorizontalAlignment.ALIGN_LEFT);

    } else {
        dialogContents.setCellHorizontalAlignment(closeButton, HasHorizontalAlignment.ALIGN_RIGHT);
    }

    // Return the dialog box
    refreshDialogBox.setGlassEnabled(true);
    refreshDialogBox.setAnimationEnabled(true);
    refreshDialogBox.center();
    return refreshDialogBox;
}

From source file:org.jboss.errai.bus.client.api.base.ClientTaskManager.java

License:Apache License

private static AsyncTask createAsyncTask(final Runnable task, final Timer timer) {
    AsyncTask asyncTask = new AsyncTask() {
        boolean cancelled = false;

        public boolean cancel(boolean interrupt) {
            timer.cancel();
            return cancelled = true;
        }// www.  ja  va2 s.com

        public void setExitHandler(Runnable runnable) {
            throw new RuntimeException("not implemented");
        }

        public boolean isCancelled() {
            return cancelled;
        }
    };

    if (task instanceof HasAsyncTaskRef) {
        ((HasAsyncTaskRef) task).setAsyncTask(asyncTask);
    }

    return asyncTask;
}

From source file:org.jboss.errai.otec.client.atomizer.Atomizer.java

License:Apache License

public static AtomizerSession syncWidgetWith(final OTEngine engine, final OTEntity entity,
        final ValueBoxBase widget) {
    LogUtil.log("NEW ATOMIZER SESSION (engine:" + engine.getId() + ", widget=" + widget + ")");

    final Multimap<Object, HandlerRegistration> HANDLER_REGISTRATION_MAP = HashMultimap.create();
    final EntityChangeStreamImpl entityChangeStream = new EntityChangeStreamImpl(engine, entity);

    final EntityStreamRegistration entityStreamRegistration = engine.getPeerState()
            .addEntityStream(entityChangeStream);

    widget.setValue(entity.getState().get());

    HANDLER_REGISTRATION_MAP.put(widget, widget.addKeyDownHandler(new KeyDownHandler() {
        @Override/*from ww w . ja  va 2s .  co m*/
        public void onKeyDown(final KeyDownEvent event) {
            if (shouldIgnoreKeyPress(event)) {
                return;
            }

            if (widget.getSelectedText().length() > 0) {
                stopEvents();
                entityChangeStream.notifyDelete(widget.getCursorPos(), widget.getSelectedText());
                startEvents();
            } else if (event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE) {
                stopEvents();
                final int index = widget.getCursorPos() - 1;
                entityChangeStream.notifyDelete(index, " ");
                startEvents();
            } else if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                stopEvents();
                entityChangeStream.notifyInsert(widget.getCursorPos(), "\n");
                startEvents();
            }
        }
    }));

    HANDLER_REGISTRATION_MAP.put(widget, widget.addKeyPressHandler(new KeyPressHandler() {
        @Override
        public void onKeyPress(final KeyPressEvent event) {
            if (event.getUnicodeCharCode() != 13 && event.getUnicodeCharCode() != 0) {
                stopEvents();
                entityChangeStream.notifyInsert(widget.getCursorPos(), String.valueOf(event.getCharCode()));
                startEvents();
            }
        }
    }));

    DOM.setEventListener(widget.getElement(), new EventListener() {
        @Override
        public void onBrowserEvent(Event event) {
            if (event.getTypeInt() == Event.ONPASTE) {
                final String before = (String) entity.getState().get();
                new Timer() {
                    @Override
                    public void run() {
                        final String after = (String) widget.getValue();
                        final DiffUtil.Delta diff = DiffUtil.diff(before, after);

                        stopEvents();
                        entityChangeStream.notifyInsert(diff.getCursor(), diff.getDeltaText());
                        startEvents();
                    }
                }.schedule(1);
            }
            widget.onBrowserEvent(event);
        }
    });

    attachCutHandler(widget.getElement(), new Runnable() {
        @Override
        public void run() {
            stopEvents();
            entityChangeStream.notifyDelete(widget.getCursorPos(), widget.getSelectedText());
            startEvents();
        }
    });

    attachTextDragHandler(widget.getElement(), new Runnable() {
        @Override
        public void run() {
            stopEvents();
            entityChangeStream.notifyDelete(widget.getCursorPos(), widget.getSelectedText());
            entityChangeStream.flush();
            startEvents();
        }
    }, new Runnable() {
        @Override
        public void run() {
            final String old = (String) entity.getState().get();
            new Timer() {
                @Override
                public void run() {
                    final DiffUtil.Delta diff = DiffUtil.diff(old, (String) widget.getValue());
                    if (diff.getDeltaText().length() > 0) {
                        stopEvents();
                        entityChangeStream.notifyInsert(diff.getCursor(), diff.getDeltaText());
                        startEvents();
                    }
                }
            }.schedule(1);
        }
    });

    final ListenerRegistration listenerRegistration = entity.getState()
            .addStateChangeListener(new StateChangeListener() {
                @Override
                public int getCursorPos() {
                    return widget.getCursorPos();
                }

                @Override
                public void onStateChange(final int newCursorPos, final Object newValue) {
                    if (NO_PROPAGATE_STATE_CHANGE) {
                        return;
                    }

                    widget.setValue(newValue, false);
                    widget.setCursorPos(newCursorPos);
                }
            });

    DOM.sinkEvents(widget.getElement(), DOM.getEventsSunk(widget.getElement()) | Event.ONPASTE);

    final Timer timer = new Timer() {
        @Override
        public void run() {
            entityChangeStream.flush();
        }
    };
    timer.scheduleRepeating(500);

    return new AtomizerSession() {
        @Override
        public void end() {
            entityChangeStream.close();
            timer.cancel();

            LogUtil.log("END ATOMIZER SESSION");
            entityStreamRegistration.remove();
            listenerRegistration.remove();
            final Collection<HandlerRegistration> values = HANDLER_REGISTRATION_MAP.values();
            for (final HandlerRegistration value : values) {
                value.removeHandler();
            }
        }
    };
}

From source file:org.primaresearch.web.gwt.client.ui.MouseScrollPanel.java

License:Apache License

private void autoScroll(int refreshTimespan, Timer refreshTimer) {

    //There are two different modes:
    //  1: Inertia scrolling: Slowing down after mouse drag
    //  2: Smooth moving to target position

    //Mode 1 (inertia)
    if (targetScrollX == Double.MIN_VALUE) {
        double dx = scrollingSpeedX * refreshTimespan;
        double dy = scrollingSpeedY * refreshTimespan;

        moveScrollWidget(dx, dy);/*from   ww  w.j  a va2 s  .  c  om*/

        //Slow down
        scrollingSpeedX /= scrollingDecelerationFactor;
        scrollingSpeedY /= scrollingDecelerationFactor;

        //Stop timer?
        if (Math.abs(scrollingSpeedX) < 0.0001 && Math.abs(scrollingSpeedY) < 0.0001) {
            refreshTimer.cancel();
        }
    }
    //Mode 2 (smooth moving to target)
    else {
        boolean reachedTargetX = false;
        boolean reachedTargetY = false;

        Point refPos = getScrollWidgetPos();

        double dx = targetScrollX - refPos.x;
        double dy = targetScrollY - refPos.y;

        //X
        if (Math.abs(dx) <= 4.0)
            reachedTargetX = true;
        //Y
        if (Math.abs(dy) <= 4.0)
            reachedTargetY = true;

        //Finished?
        if (reachedTargetX && reachedTargetY) {
            refreshTimer.cancel();
        } else {
            moveScrollWidget(dx / 3.0, dy / 3.0);
        }
    }
}

From source file:org.rebioma.client.OccurrenceView.java

License:Apache License

public void onClick(ClickEvent event) {
    Object sender = event.getSource();
    if (sender == mapLink) {
        switchView(MAP, false);//from  www.  j  ava2  s . co m
        addHistoryItem(false);
        searchForm.restoreStatesFromHistory(History.getToken());
    } else if (sender == listLink) {
        switchView(LIST, false);
        addHistoryItem(false);
        searchForm.restoreStatesFromHistory(History.getToken());
    } else if (sender == uploadLink) {
        switchView(UPLOAD, false);
        activeViewInfo.getView().resetToDefaultState();
        addHistoryItem(false);
    } else if (sender == searchForm.advanceLink) {
        switchView(ADVANCE, false);
        helpLink.setStyleName("helplink");
        switchViewPanel.add(helpLink);
        addHistoryItem(false);
    } else if (sender == searchForm.shapeDialogLink) {
        ShapeFileWindow window = new ShapeFileWindow(constants);
        window.setWidth(400);
        window.setHeight(300);
        window.show();
        window.addTreeSelectHandler(this);
    } else if (sender == revalidateLink) {
        addHistoryItem(false);
        String sessionId = Cookies.getCookie(ApplicationView.SESSION_ID_NAME);
        if (revalidateLink.getText().equals(constants.Revalidating())) {
            /*RevalidationService.Proxy.get().cancelRevalidation(sessionId, new AsyncCallback<Void>() {
                    
               @Override
               public void onFailure(Throwable caught) {
                  revalidateLink.setHTML(constants.Revalidate());
                          
               }
                    
               @Override
               public void onSuccess(Void result) {
                  revalidateLink.setHTML(constants.Revalidate());
                          
               }
            });*/
        } else {

            revalidateLink.setStyleName("revalidating", true);//add loading image
            final ServerPingServiceAsync pingService = ServerPingService.Proxy.get();
            final Timer sessionAliveTimer = new Timer() {
                public void run() {
                    pingService.ping(new AsyncCallback<Void>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            GWT.log("Error while pinging the server", caught);
                        }

                        @Override
                        public void onSuccess(Void result) {
                            GWT.log("Ping success");
                        }
                    });
                }
            };
            sessionAliveTimer.scheduleRepeating(REVALIDATION_SERVER_PING_INTERVAL);

            RevalidationService.Proxy.get().revalidate(sessionId, new AsyncCallback<RevalidationResult>() {

                @Override
                public void onSuccess(RevalidationResult result) {
                    GWT.log("Revalidation success");
                    revalidateLink.setHTML(constants.Revalidate());
                    new RevalidationResultPopup(result).show();
                    revalidateLink.setStyleName("revalidatelink");
                    revalidateLink.setStyleName("revalidatelink_success", true);
                    //Window.alert(constants.RevalidationSuccess());
                    sessionAliveTimer.cancel();

                }

                @Override
                public void onFailure(Throwable caught) {
                    GWT.log("Error while revalidating", caught);
                    revalidateLink.setHTML(constants.Revalidate());
                    revalidateLink.setStyleName("revalidatelink");
                    revalidateLink.setStyleName("revalidatelink_error", true);
                    Window.alert(caught.getLocalizedMessage());
                    sessionAliveTimer.cancel();
                }
            });
            revalidateLink.setHTML(constants.Revalidating());
        }

    } else if (sender == ativityLink) {
        new ActivityLogDialog(constants).show();
    }
}