Я пытаюсь заменить содержимое части CENTER DockLayoutPanel из MenuBar. MenuBar будет сидеть на Севере, но «контент» (формы, отчеты и т. Д.) Будут находиться в Центре.Заменить GWT DockLayoutPanel Содержание
Я думал, что смогу сделать это, захватив всю DockLayoutPanel из RootPanel (индекс 0, так как это единственный виджет, непосредственно привязанный к нему), а затем как-то удалите текущее содержимое центра и вставьте новое. К сожалению, getWidget (int index) не статичен, поэтому он не работает.
Может ли кто-нибудь, как я, с правильным способом сделать это? Неработающий код ниже:
// snipped package and import details
public class menubar extends Composite {
private static menubarUiBinder uiBinder = GWT.create(menubarUiBinder.class);
interface menubarUiBinder extends UiBinder<Widget, menubar> {
}
@UiField MenuBar applicationMenuBar;
@UiField MenuBar processMenuBar;
@UiField MenuBar reportsMenuBar;
@UiField MenuItem addPowerRequirementCmd;
@UiField MenuItem powerUsageReportCmd;
public menubar() {
initWidget(uiBinder.createAndBindUi(this));
// command to replace whatever is in DockLayoutPanel.CENTER w/ AddPowerRequirement
// FormPanel
addPowerRequirementCmd.setCommand(new Command() {
@Override
public void execute() {
// get DockLayoutPanel from the RootPanel (it's the only widget, should be
// index 0
DockLayoutPanel dlp = (DockLayoutPanel) RootPanel.getWidget(0);
// clear out DockLayoutPanel.CENTER
// insert the FormLayoutPanel into DockLayoutPanel.CENTER
dlp.add(new PowerRequirementForm());
}
});
// command to replace whatever is in DockLayoutPanel.CENTER w/ power usage report
powerUsageReportCmd.setCommand(new Command() {
@Override
public void execute() {
}
});
}
}
Спасибо!
ли это общее решение, если у вас есть несколько «страниц», которые должны быть показаны ? Я даже не запустил опции меню для большинства административных функций для приложения. – Jason
Да. Вручное добавление/удаление Widgets будет менее ремонтопригодным. –
Хорошо, спасибо. Вопрос помечен как ответ. – Jason