ui : binder 구성 요소 내부의 일부 객체에 액세스하려고 시도하지만 불쾌한 코드를 작성하지 않고 eventBus, requestFactory 등에 액세스하는 방법을 알지 못합니다. 밤에 나를 깨워 둡니다. (자바가 완전히 새롭고, 배경은 Perl/Python/PHP입니다.)ui : binder로 만든 위젯에 GIN을 삽입 한 Spring ROO GWT
내 ui.xml 파일 :이 방법은 com.ig.client.scaffold.ui.widget.R에 실패 eventBus를 주입
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:ig='urn:import:com.ig.client.scaffold.ui.widget'>
<ui:style>
...
</ui:style>
<g:HorizontalPanel>
...
</g:HorizontalPanel>
</ui:UiBinder>
는 디폴트 (제로 인수) 생성자가 없습니다.
public class R extends Composite {
interface MyUiBinder extends UiBinder<Widget, R> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
private final EventBus eventBus;
@UiField SimplePanel fieldA, ...;
@Inject
public R(EventBus eventBus){
this.eventBus = eventBus;
initWidget(uiBinder.createAndBindUi(this));
}
}
그래서, 오류 메시지에 따라, 나는 나타내는 UIFactory를 만든 다음 나는 오류 를 얻을 ... '{style.entityComponent}'> 필수 속성 (들)이 누락 : eventBus 요소 (는 UI의 eventBus 찾기 위해 노력하고있는 것처럼 보인다. 바인더 스타일 시트를
public class R extends Composite {
interface MyUiBinder extends UiBinder<Widget, R> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
private final EventBus eventBus;
@UiField SimplePanel fieldA, ...;
public @UiConstructor R(EventBus eventBus){
this.eventBus = eventBus;
initWidget(uiBinder.createAndBindUi(this));
}
@Inject
@UiFactory R makeR(){
return new R(eventBus);
}
}
읽기와 읽기와 일 지난 몇 더 읽기에서, 나는 eventBus, requestFactory 및 historyController 액세스하는 사람을 보지 못했다 ui : 바인더 위젯에 바인딩 된 뷰에서 직접적으로 이것이 베스트 프랙티스가 아님을 결론 내 렸습니다. a 너.
내가 객체를 가지고 있다고 가정 해 봅시다. 프록시라고 부르죠. 프록시에는 handleButtonClick이 포함되어 있으며이 객체는 eventBus.doSomething()을 호출합니다. 이 프록시 객체를 인스턴스화하지 않거나 모든 위젯에 전달하지 않고 ui : 바인더 위젯에 어떻게 연결합니까?
인터페이스에서 GIN 삽입을 수행 한 다음 클래스 R을 통해 해당 인터페이스를 구현할 수 있습니까? 그러면 내가 찾고있는 객체가 어떻게 든 포함될 것입니까?
기본적으로 ROO가 만든 서비스의 나머지 부분과 프론트 엔드를 연결할 수있는 샘플 (Java n00b가 이해할 수 있음)을 찾는 데 도움이되는 모든 솔루션이 환영입니다.
감사 J Model, View, Presenter pattern 밖으로
감사 제이슨, 오늘 아침 구글 코드의 MVP 워드 프로세서를 통해 읽기되고 나중에 오늘 밤을 구현하는 것, 내가 찾던 정확히 것 같았다. 감사합니다 백만 :-) –
안녕하세요 제이슨, 나는 당신의 예제를 작동시키지 않고 있습니다. 소스를 사용할 수 있습니까? 아니면 내 코드를보고 문제를 지적 해 주시겠습니까? 일을하고 지금 몇 주 동안 고투하고있다. –
내가 겪어야 할 문제에 대한 새로운 질문을하고 여기에있는 의견의 링크를 클릭하면보실 수 있습니다. –