2011-06-10 3 views
0

사용자가 매주 시간을 입력 할 수있는 웹 응용 프로그램을 만들려하고 GWT에서 사용자 작업에 따라 데이터로 다시 그려지는 단일 페이지 개념에 대해 머리를 터지려 애 쓰고 있습니다. . 이 사이트와 구글에서 많은 것을 연구 한 후에, 나는 에뮬레이트하고 싶지만 GWT에서 그것을 수행하는 방법을 모르는 링크를 발견했다. 그들의 소스 코드를 사용할 수 있지만, 나는 그것이 완벽하고 완벽하다고 생각하지 않는다. 이 링크 - Multiple pages tutorial in Google Web Toolkit (GWT)에서 아이디어를 얻었지만 작동 버전으로 구현하는 방법을 모릅니다. 작은 작업 샘플 하나를 이해하고 시작하는 데 도움이 될 것입니다.GWT 응용 프로그램 내에서의 자제력

아래 링크를 사용하여 화면의 모양과 느낌을 얻는 방법과 서버의 데이터로 내용을 다시 칠하는 방법에 대해 알려주십시오. 하나의 EntryPoint 클래스에 모든 로직을 넣어야합니까? 왼쪽 탐색 패널에 하이퍼 링크가 있고 오른쪽 패널에 내용을 표시하고 싶습니다. 나는 몇 시간의 연구 끝에 완전히 잃어버린 것처럼 보인다.

http://gwt.google.com/samples/Showcase/Showcase.html#!CwHyperlink

도와 주셔서 감사합니다 많이.

감사합니다. Sonu.

답변

0

단일 페이지 응용 프로그램 레이아웃은 실제로 매우 쉽게 구현할 수 있습니다.

먼저 할 일은 GWT layout panels을 사용하여 일반 레이아웃을 정의하는 것입니다. 레이아웃을 위해 DockLayoutPanel을 사용하시기 바랍니다.

Content content = new Content(); 
Button switchContent = new Button(content); 
Navigation navigation = new Navigation(); 
navigation.add(switchContent); 

DockLayoutPanel pageLayout = new DockLayoutPanel(Unit.EM); 
p.addWest(new HTML(navigation), 7.5); 
p.add(new HTML(content)); 

여기에서 탐색 패널의 너비는 고정되지만 콘텐츠는 나머지 공간을 차지합니다. 컨텐트 영역의 전환을 수행하는 버튼 (또는 다른 위젯)에 대한 참조를 전달하고 탐색 영역에 버튼을 추가해야합니다.

MasterPageFactory 전화 :

public class MasterPageFactory { 
    private MasterPageFactory() {} 

    public static MasterPage newInstance() { 

     Content content = new Content(); 
     Button switchContent = new Button(content); 
     Navigation navigation = new Navigation(); 
     navigation.add(switchContent); 

     DockLayoutPanel masterPage = new DockLayoutPanel(Unit.EM); 
     masterPage.addWest(new HTML(navigation), 7.5); 
     masterPage.add(new HTML(content)); 

     return masterPage; 
    } 
} 

지금, 당신의 EntryPoint 클래스, 공장 전화 :

RootLayoutPanel.get().add(MasterPageFactory.newInstance()); 

이 예제는 당신에게 아이디어를 얻을 것이다. 다른 옵션은 Guice 또는 Command 패턴과 같은 DI 프레임 워크를 사용하는 것입니다.

+0

감사 지원자는 아이디어를 제공합니다. 저의 무지를 용서해주십시오 - 어느 항아리가 귀하가 작성한 코드에서 언급 한 내용 수업을 갖게 될까요? Eclipse가 gwt 항아리에서 찾지 못했기 때문에 사용자 정의 클래스 또는 jar 파일의 일부입니까? – Prashanth

+0

Sry, 나는 언급하는 것을 잊는다. 당신이 직접 만들어야합니다. – helpermethod

+0

감사합니다. 어떤 Composite 또는 Widget 클래스를 확장해야합니까? 그리고 도우미 메서드를 사용하여 콘텐츠를 표시해야한다고 생각합니까? – Prashanth

0

귀하의 질문에 몇 가지 개념이 혼합되어 있습니다. 사용자가 링크처럼 보이는 것을 클릭하고 응답을 보내려면 응용 프로그램이 서버에 요청을 보내고 페이지가 다른 페이지와 다른 페이지를 표시하고 해당 페이지에 막 온 데이터가 있습니다 서버, 그럼 당신은 완벽하게 정상적인 앵커 또는 양식 제출 버튼을 원한다. GWT에서 특별하거나 이상한 것이 필요하지 않습니다.

사용자가 참조한 쇼케이스 예제를 통해 사용자는 링크처럼 보이고 다시 새로운 페이지를로드하는 것처럼 보이지만 뒤로 버튼이 예상대로 작동하지만 실제로 서버에 도달하지는 않습니다. 새 페이지 또는 새 데이터를 얻으십시오.

+0

Gatkin에게 감사의 말을 전합니다. GWT에 명시된 쇼케이스 예제를 구현하는 방법을 알고 싶습니다. 페이지를 프레임으로 분할하고 왼쪽에서 클릭 한 내용에 따라 콘텐츠 영역 (서버에서 정적 또는 동적이든간에)을 새로 고치는 방법을 알지 못했습니다. 나 혼란은 레이아웃과 하나의 진입 점 클래스에이 모든 논리를 덤프 할 것인지 여부입니다. – Prashanth

관련 문제