2011-08-23 4 views
0

저는 GWT를 처음 사용하기 때문에 사용자를 다른 양식으로 리디렉션하려는 하이퍼 링크를 사용하고 싶습니다.gwt가있는 하이퍼 링크

제 질문은 하이퍼 링크를 쉽게 만들 수 있지만 어떻게 사용합니까 ?? addClickListener가 더 이상 사용되지 않는 것 같습니다. 다른 방법으로이 문제를 해결할 수 있습니까?

다음 I 하이퍼 링크 코드를 구현 한 업데이트 : 다른되지 않는 위해 I 하나의 하이퍼 링크에 대응하는 형태를 보이는 것을 알 이에

Hyperlink link0 = new Hyperlink("Show Boxes","showbox"); 
    History.addValueChangeHandler(this); 
    History.fireCurrentHistoryState(); 
    public void onValueChange(ValueChangeEvent<String> event) { 
    String eventValue=event.getValue(); 
    if(eventValue.equals("showbox")){ 
    showBox(); 
    } 
} 

하지만 폼이 폐쇄되지 않고 다른 하이퍼 링크를 클릭하면 열립니다. DockPanel을 사용하여 양식을 동쪽 방향으로 표시하고 있습니다. 모든 하이퍼 링크의 양식이 다른 하나의 아래에 표시됩니다.

동일한 의견이나 제안이 있으십니까?

감사합니다, 바뱌

답변

0

사용 Anchor.addClickHandler() 메소드!

Anchor a = new Anchor("text"); 
a.addClickHandler(new ClickHandler(){ 
    // etc 
}); 
0

다른 양식이 GWT 응용 프로그램 내에있는 경우 Hyperlink을 고려해야합니다. 생성자에서 링크를 클릭하면 History 개체에 푸시 된 기록 토큰을 제공합니다. 히스토리 토큰이 변경된 이벤트 만 처리하면됩니다. 그것은 당신의 논리에서 네비게이션 이벤트를 분리합니다. 이렇게하면 응용 프로그램이 뒤로 전달을 인식하게되고 사용자가 북마크를 특정 상태 (사례의 양식)로 저장할 수 있습니다. Anchor은 외부 링크를위한 것입니다.

Coding Basics - History에 설명 된 내용을 참조하십시오.

0

먼저 당신은 역사 토큰으로 HyperLink을 만들어야합니다

위의 예에서
Hyperlink link = new Hyperlink("link to foo", "foo"); 

는 "foo는"이 역사 토큰입니다.

그런 다음 당신은 당신이 event.getValue()를 사용하여 현재 토큰에 읽을 필요합니다, 당신의 값 변경 처리기에서

History.addValueChangeHandler(myValueChangeHandler); 

처럼 History 객체에 값 변경 핸들러를 등록해야합니다.

class MyValueChangeHandler implements ValueChangeHandler<String>() { 
     public void onValueChange(ValueChangeEvent<String> event) { 
     //get the new value of history token 
     //clicking on above example link will return "foo" here 
     String historyToken = event.getValue(); 
     } 
} 

히스토리 토큰의 의미는 애플리케이션 결정에 달린 것입니다. 예를 들어, 히스토리 토큰과 렌더링되어야하는 뷰 사이의 간단한 맵을 유지 보수 할 수 있습니다. 보다 정교한 응용 프로그램에서는 표시해야 할 양식의 초기 상태와 같은 토큰에 더 많은 세부 사항을 인코딩 할 수 있습니다.