У меня есть панель вкладок GWT и я хочу перезагрузить одну вкладку, когда определенное событие (например, нажатие кнопки) произойдет на другой вкладке. Есть ли способ сделать это? Другая возможность будет выполнять некоторый код (например, добавление нового элемента на вкладку) при выборе этой вкладки. Любая помощь была бы действительно оценена, я застрял с этим на некоторое время уже.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 (whi в действительности это будет ListBox и другие элементы), когда newGroupButton щелкнут в groupTab.
Как я уже сказал, перезагрузка всего профиляTab каждый раз будет выбрана и будет приемлемой.
Я не уверен, как добавить прослушиватель кликов на панель вкладок и как получить доступ к элементам в вкладках с панели вкладок. Чтобы уточнить мой вопрос, я добавил несколько упрощенных кодов моей программы. – april
Я тоже редактировал :-) – Corsair
Спасибо за ваш ответ. Идея определить элементы перед их использованием и использовать геттеры и сеттеры была очень полезной. Но я не мог заставить его работать с примером, который вы предложили: profileTabScreenPanel.getLabel(). SetText («Новый текст»); С другой стороны, он работал с этим: HomeScreen.getProfileTabScreen(). GetLabel(). SetText («некоторый текст»); Я добавил два метода getter, один в классе HomeScreen и один в классе ProfileTabScreen. – april