GWT タブ パネルがあり、特定のイベント (ボタン クリックなど) が別のタブで発生したときに、単一のタブをリロードしたいと考えています。それを行う方法はありますか?もう 1 つの可能性は、タブが選択されたときに何らかのコードを実行することです (タブに新しい要素を追加するなど)。どんな助けでも本当にありがたいです、私はすでにしばらくの間これにこだわっています。
質問をより具体的にするために、以下のコードを提供しています。
コードを画面に整理しました。タブ パネルを開始するホーム画面があります。また、各タブを開始するための個別の画面があります。
ホーム画面の簡略化されたコード:
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);
}
groupTab で newGroupButton がクリックされたときに、profileTab のラベルのテキストを変更したいとします (実際には ListBox とその他の要素になります)。
私が言ったように、 profileTab が選択されるたびに全体をリロードすることも許容されます。