http://gwtbootstrap3.github.io/gwtbootstrap3-demo/#fullcalendar에 언급 된 gwtbootstrap3 fullcalendar 를 UiBinder와 함께 사용할 수 있습니까 ?
UiBinder와 함께 사용하려고하는데 해당 페이지에 아무것도 나타나지 않습니다.
내 UiBinder 클래스에 코드
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:org.gwtbootstrap3.client.ui.gwt">
<g:HTMLPanel ui:field="calendarContainer">
</g:HTMLPanel>
</ui:UiBinder>
해당 뷰 클래스에 대한 코드
public class EventView extends ReverseCompositeView<IEventView.IEventPresenter> implements IEventView {
private static EventViewUiBinder uiBinder = GWT.create( EventViewUiBinder.class );
interface EventViewUiBinder extends UiBinder<Widget, EventView> {
}
@UiField
HTMLPanel calendarContainer;
@Override
public void createView() {
//don't create the view before to take advantage of the lazy loading mechanism
initializeCalendar();
initWidget( uiBinder.createAndBindUi( this ) );
}
private void initializeCalendar() {
final FullCalendar fc = new FullCalendar("event-calendar", ViewOption.month, true);
fc.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent loadEvent) {
addEvents();
}
private void addEvents() {
for (int i = 0; i < 15; i++) {
Event calEvent = new Event("id "+ i, "this is event "+i);
int day = Random.nextInt(10);
Date start = new Date();
CalendarUtil.addDaysToDate(start, -1 * day);
calEvent.setStart(start);
if(i%3 ==0){
calEvent.setAllDay(true);
}else{
Date d = new Date(start.getTime());
d.setHours(d.getHours()+1);
calEvent.setEnd(d);
}
fc.addEvent(calEvent);
}
}
});
calendarContainer.add(fc);
}
}
mvp4g
프레임 워크를 사용하고 있습니다.
initializeCalendar();
initWidget( uiBinder.createAndBindUi( this ) );
먼저 위젯을 초기화 한 다음 캘린더를 초기화해야합니다. 당신이 추가되기 때문입니다 FullCalendar
받는 사람 calendarContainer
HTMLPanel
에서 initializeCalendar
. 그리고 호출하기 전에 initWidget
, calendarContainer
이다 null
.
한 단계 더 나아가 다음과 같이 할 수 있다고 생각합니다.
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:org.gwtbootstrap3.client.ui.gwt"
xmlns:f="urn:import:org.gwtbootstrap3.extras.fullcalendar">
<g:HTMLPanel>
<f:FullCalendar ui:field="fullCalendar" />
</g:HTMLPanel>
</ui:UiBinder>
그리고 당신의 EventView
:
@UiField(provided = true) FullCalendar fullCalendar;
@UiField(provided = true)
를 호출 하기 전에이 위젯을 초기화하는 것은 사용자에게 달려 있음을 의미합니다 initWidget
. 그래서,에 ,이 경우 순서 :
initializeCalendar();
initWidget( uiBinder.createAndBindUi( this ) );
괜찮습니다. 또한 FullCalendar
더 이상 패널에을 추가 할 필요가 없습니다. 이미 추가되었으므로 초기화 만하면됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다