У меня есть панель вкладок GWT, и я хотел бы перезагрузить одну вкладку, когда определенное событие (например, нажатие кнопки) происходит на другой вкладке. Есть ли способ сделать это? Другой возможностью может быть выполнение некоторого кода (например, добавление нового элемента на вкладку), когда эта вкладка выбрана. Любая помощь будет очень признательна, я уже застрял с этим некоторое время.
Чтобы сделать вопрос более конкретным, я предоставляю код ниже.
Мой код организован на экранах, есть домашний экран, который запускает панель вкладок. И есть отдельные экраны для запуска каждой вкладки.
Упрощенный код для домашнего экрана:
public class HomeScreen extends Composite{
public HomeScreen() {
TabPanel tabPanel = new TabPanel();
FlowPanel flowpanel;
flowpanel = new FlowPanel();
ProfileTabScreen profileTabScreen = new ProfileTabScreen();
flowpanel.add(profileTabScreen);
tabPanel.add(flowpanel, "Profile");
flowpanel = new FlowPanel();
GroupsTabScreen groupsTabScreen = new GroupsTabScreen();
flowpanel.add(groupsTabScreen);
tabPanel.add(flowpanel, "Groups");
initWidget(tabPanel);
}
}
Код для экрана вкладки, с которого я хочу инициировать перезагрузку:
private VerticalPanel groupPanel = new VerticalPanel();
private Button newGroupButton = new Button("New group");
public GroupsTabScreen() {
newGroupButton.addClickHandler(new ClickHandler(){
public void onClick(ClickEvent event) {
createNewGroup();
}
});
groupPanel.add(newGroupButton);
initWidget(groupPanel);
}
Код для экрана вкладки, который необходимо перезагрузить:
private VerticalPanel profilePanel = new VerticalPanel();
private Label label = new Label("No groups yet.");
public ProfileTabScreen() {
profilePanel.add(label);
initWidget(profilePanel);
}
Итак, давайте представим, что я просто хочу изменить текст метки в profileTab (хотя на самом деле это будет ListBox и другие элементы), когда нажимается newGroupButton в groupTab.
Как я уже сказал, перезагрузка всего профиляTab каждый раз, когда он выбран, также будет приемлемой.