允许/不允许GWT中TabPanel的选项卡选择
我有4个标签。我希望防止用户(使用window.alert示例)进入另一个选项卡,因为它尚未完成当前选项卡的填充。用户填写完所有字段后,当前选项卡中将出现一条文本(表示他可以移动到下一个选项卡)。他可以点击下面的标签 我应该使用BeforeSelectionEvent处理程序还是SelectionHandler?用于GWT选项卡面板:允许/不允许GWT中TabPanel的选项卡选择,gwt,tabpanel,Gwt,Tabpanel,我有4个标签。我希望防止用户(使用window.alert示例)进入另一个选项卡,因为它尚未完成当前选项卡的填充。用户填写完所有字段后,当前选项卡中将出现一条文本(表示他可以移动到下一个选项卡)。他可以点击下面的标签 我应该使用BeforeSelectionEvent处理程序还是SelectionHandler?用于GWT选项卡面板: @Override public boolean onBeforeTabSelected(SourcesTabEvents sender, int tabInde
@Override
public boolean onBeforeTabSelected(SourcesTabEvents sender, int tabIndex)
{
String currentTabName = widget.getTabHTML(widget.getSelectedTab()); // for reference
String tabNameYouTryingToSelect = widget.getTabHTML(tabIndex); // for reference
// check some external self-written method and return true or false to allow/disallow selection
if (isCurrentlyActiveTabBuilt()){
return true;
} else {
Window.alert("You must fill all fields before proceeding to the next step.");
return false;
}
}
我这样做是为了回答我的问题,但是太长了
is there a possibility to turn it into a short function ?
this.addBeforeSelectionHandler(new BeforeSelectionHandler<Integer>() {
public void onBeforeSelection(BeforeSelectionEvent<Integer> event) {
if (Application.get().getChampsObligatoire().values().contains("Fiche")) {
if (event.getItem().intValue() > 0){
event.cancel();
Window.alert("You must fill all fields before proceeding to the next step.");
}
}
if (Application.get().getChampsObligatoire().values().contains("projet")) {
if (event.getItem().intValue() > 1){
event.cancel();
Window.alert("You must fill all fields before proceeding to the next step.");
}
}
if (Application.get().getChampsObligatoire().values().contains("cibles")) {
if (event.getItem().intValue() > 2){
event.cancel();
Window.alert("You must fill all fields before proceeding to the next step.");
}
}
if (Application.get().getChampsObligatoire().values().contains("Ressources")) {
if (event.getItem().intValue() > 3){
event.cancel();
Window.alert("You must fill all fields before proceeding to the next step.");
}
}
if (Application.get().getChampsObligatoire().values().contains("Contrôle")) {
if (event.getItem().intValue() > 4){
event.cancel();
Window.alert("You must fill all fields before proceeding to the next step.");
}
}
}
});
是否有可能将其转换为短函数?
this.addBeforeSelectionHandler(新的BeforeSelectionHandler(){
在BeforeSelection(BeforeSelectionEvent事件)上的公共无效{
if(Application.get().getchampsobligataire().values().contains(“Fiche”)){
if(event.getItem().intValue()>0){
event.cancel();
Window.alert(“在继续下一步之前,必须填写所有字段。”);
}
}
if(Application.get().getChampsObligatoire().values()包含(“projet”)){
if(event.getItem().intValue()>1){
event.cancel();
Window.alert(“在继续下一步之前,必须填写所有字段。”);
}
}
if(Application.get().getChampsObligatoire().values().contains(“cibles”)){
if(event.getItem().intValue()>2){
event.cancel();
Window.alert(“在继续下一步之前,必须填写所有字段。”);
}
}
if(Application.get().getChampsObligatoire().values().contains(“resources”)){
if(event.getItem().intValue()>3){
event.cancel();
Window.alert(“在继续下一步之前,必须填写所有字段。”);
}
}
if(Application.get().getChampsObligatoire().values()包含(“控制”)){
if(event.getItem().intValue()>4){
event.cancel();
Window.alert(“在继续下一步之前,必须填写所有字段。”);
}
}
}
});
iscurrentlyactivetabbuild()是函数还是变量?这必须是定义完整性条件的自定义方法。Smth,类似于:返回field1.isChecked()&&field2.isChecked&&field3.value!=无效的等