Добавление истории в программу GWT - PullRequest
0 голосов
/ 30 июня 2011

Я пишу History.newItem ("step2"), но даже после выполнения этой инструкции метод, который она должна вызвать, является public void onValueChange (событие ValueChangeEvent) { //код }

но когда я это делаю, метод не вызывается, я не понимаю, почему он не вызывает метод.

Ниже приведен весь код.

{
package org.adrianwalker.gwt.uploadprogress.client;

import com.google.gwt.user.client.History;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import org.adrianwalker.gwt.uploadprogress.client.view.UploadProgressView;

public final class UploadProgress implements EntryPoint, ValueChangeHandler {

  private static final UploadProgressView UPLOAD_PROGRESS_VIEW = new UploadProgressView();
    Label step_co=new Label("Step1");
  @Override
  public void onModuleLoad() {
    Button next1=new Button("Next");

    AbsolutePanel master_panel=new AbsolutePanel();
    //RootPanel rootPanel = RootPanel.get("content");
      master_panel.setStyleName("master_panel");
      master_panel.setHeight("100px");
      master_panel.setWidth("300px");


    master_panel.add(step_co,100,25);
    RootPanel.get("master").add(master_panel,100,25);
    RootPanel.get("content").add(UPLOAD_PROGRESS_VIEW,100,150);
    RootPanel.get("content").add(next1);

      next1.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                History.newItem("step2",true);

               RootPanel.get().add(new Label(History.getToken()));
//                changeStep("token");
          }});

    RootPanel.get("content").add(next1,150,550);

  }



   public void onValueChange(ValueChangeEvent event)
 {
RootPanel.get().add(new Label("In value change"));
 String token=History.getToken();
 changeStep(token);
 }
   public void changeStep(String token)
    {
       if(token.equals("step2"))
       {
           step_co.setText("Step2");
           RootPanel.get("content").clear();
        }
   }


}
}

Скажите, пожалуйста, как можно сделать этот вызов открытым методом void onValueChange (событие ValueChangeEvent) в инструкции History.newItem (("step2").

1 Ответ

1 голос
/ 30 июня 2011

Вам нужно будет позвонить

History.addValueChangeHandler(this)

где-нибудь в вашем коде.Вот как объект истории знает, как вызывать ваш метод, когда он запущен.

Ознакомьтесь с документацией GWT для примера кода.

...