示例#1
0
  // timer for GeoGebraExam
  private FlowPanel getTimer() {
    final Label timer = new Label();
    timer.getElement().setClassName("timer");
    timer.getElement().setId("timer");
    timer.getElement().setPropertyBoolean("started", false);

    // https://groups.google.com/forum/#!msg/google-web-toolkit/VrF3KD1iLh4/-y4hkIDt5BUJ
    AnimationScheduler.get()
        .requestAnimationFrame(
            new AnimationCallback() {
              @Override
              public void execute(double timestamp) {

                if (app.getExam().isCheating()) {
                  makeRed(getElement());
                }

                timer.setText(app.getExam().timeToString(System.currentTimeMillis()));

                AnimationScheduler.get().requestAnimationFrame(this);
              }
            });
    visibilityEventMain();

    FlowPanel fp = new FlowPanel();
    fp.add(timer);
    Image info = new Image(GuiResourcesSimple.INSTANCE.dialog_info().getSafeUri());
    fp.add(info);
    info.getElement().getStyle().setMarginLeft(5, Unit.PX);
    fp.addDomHandler(
        new ClickHandler() {

          public void onClick(ClickEvent event) {
            app.showMessage(app.getExam().getLog(app.getLocalization()));
          }
        },
        ClickEvent.getType());
    return fp;
  }