MVP, clientFactory, activities, places 및 uiBinder를 사용하는 GWT 2.4 앱이 있습니다. 나는 자신의 ui.xml 파일을 가지고 독립 객체로 만든 복합 위젯을 가지고있다. 이 클래스를 참조하여 기본 viewImpl.ui.xml 파일에 삽입합니다.GWT의 복합 위젯에 발표자를 설정하는 방법
복합 위젯은 백엔드에서 일부 데이터를 수신하므로 표에 표시 될 수 있도록 활동에 다시 가져와야합니다. 활동에 도달하기 위해 뷰와 연관된 발표자를 사용하고 있습니다. 보기 인터페이스에서 :
public interface NameView extends IsWidget
{
void setPresenter(Presenter presenter);
...
public interface Presenter{
void goTo(Place place);
void setRowDataList(List<Data> rowData);
}
내 활동에서 나는에로 View.Presenter을 구현 :
이Activity extends AbstractActivity implements NameView.Presenter
그래서 활동이 내 독립 위젯 내에서 필요로하는 발표자 여기에 코드입니다 활동의 시작 메소드에서 나는 사용한다 :
NameView nameView = clientFactory.getNameView();//NameView is just an example.
nameView.setPresenter(this); ...
발표자를 설정하고 그것을 인스턴스화하는 데 사용한다.
presenter.setRowDataList(rowData);
하지만 위젯에서 인스턴스화 발표자를 참조하는 방법을 잘 모르겠어요 : 내 문제는 위젯에 나는이 필요하다?
실제로이 gwtUpload 위젯은 독립형입니다. 업로드 된 일부 데이터에 대해 서버 측 계산을 수행하고 이것이이 위젯에 반환됩니다.
위젯 데이터를 다시 Activity로 가져와 해당 데이터를 NameViewImpl 클래스로 다시 전달해야합니다.
발표자가 적절한 방법이라고 생각했지만 위젯이 뷰 또는 viewImpl에 연결되어 있지 않으므로 위젯에 대한 발표자를 얻는 방법이 필요합니다.
나는 진이 DI를 가지고 그것을 할 것인지 또는 다른 발표자를 만들 것인지를 알고 있습니다. GWT를 사용하여 GIN을 설정 한 적이 없습니다. 이 작업을 수행하는 올바른 방법에 대한 아이디어가 있습니까?
작업을 구현 :
나는 이것이 최선의 구현인지 아닌지 알아,하지만 토마스의 답변에 따라하지, 난에서 발표자 (활동)의 인스턴스 내 위젯을 설정 ViewImpl 클래스의 setPresenter() 메서드. 그것은 위젯이 다시 활동으로 돌아가는 통로 역할을합니다. 나는 그것이 토마스가 콜백 인터페이스로서 의도 한 것이라고 생각한다.
답변 해 주셔서 감사합니다. –