2011-06-30 6 views
-1

で歴史を追加し、私はHistory.newItem(「STEP2」)を書いていますが、でも、この命令を実行した後、それが呼び出す必要があります方法は、公共のボイドonValueChange(ValueChangeEventイベント) { //コード }GWTプログラム

ですしかし、私がそうしているときにメソッドが呼び出されていないので、メソッドを呼び出さない理由を理解できません。

以下はコード全体です。

{ 
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(); 
     } 
    } 


} 
} 

これはHistory.newItem(( "STEP2")命令で(ValueChangeEventイベント) メソッド公共ボイドonValueChange呼び出す作ることができる方法を教えてください。

答えて

1

あなたが呼び出す必要があります

どこかにあなたのコード内
History.addValueChangeHandler(this) 

。それは歴史のオブジェクトは、それが解雇だとき、あなたのメソッドを呼び出すために知っている方法です。

GWT's documentationをチェックいくつかのコード例があります。

+0

本当にありがとうございました。 –