¿Cómo puedo desactivar una pestaña (es decir, el usuario no puede abrir la pestaña cuando se hace clic en él) en el TabLayoutPanel? Busqué en línea, pero no era capaz de encontrar una soluciónTabLayoutPanel desactivar una pestaña GWT
Gracias
¿Cómo puedo desactivar una pestaña (es decir, el usuario no puede abrir la pestaña cuando se hace clic en él) en el TabLayoutPanel? Busqué en línea, pero no era capaz de encontrar una soluciónTabLayoutPanel desactivar una pestaña GWT
Gracias
utilice un BeforeSelectionHandler
:
TabLayoutPanel myPanel = new TabLayoutPanel();
// Add children...
myPanel.addBeforeSelectionHandler(new BeforeSelectionHandler<Integer>() {
@Override
public void onBeforeSelection(BeforeSelectionEvent<Integer> event) {
// Simple if statement - your test for whether the tab should be disabled
// will probably be more complicated
if (event.getItem() == 1) {
// Canceling the event prevents the tab from being selected.
event.cancel();
}
}
});
Si quieres estilo de la pestaña desactivada de manera diferente que las pestañas habilitadas, puede utilizar TabLayoutPanel#getTabWidget
para obtener el widget ficha y agregar un nombre de estilo a la misma.
Para cualquier persona que viene a través de esta tarde:
A partir de la versión 1.6 de GWT, la desactivación/pestañas que permiten está integrado en GWT. La clase TabBar
tiene un método setTabEnabled(int index, boolean enabled)
que habilita/deshabilita la pestaña en un índice dado.
Por ejemplo, para desactivar todas las pestañas en un TabPanel:
TabPanel myTabPanel = new TabPanel();
// Add children
TabBar tabBar = myTabPanel.getTabBar();
for(int i=0; i<tabBar.getTabCount(); i++) {
tabBar.setTabEnabled(i, false);
}
Véase el GWT javadoc para obtener más información.
Para cambiar el estilo de las pestañas desactivadas de forma diferente (lo que hace GWT automáticamente, pero si desea cambiar el estilo): deshabilitado tabBarItem
divs tienen otra clase de CSS: gwt-TabBarItem-disabled
.
La pregunta era sobre el tipo 'TabLayoutPanel', no' TabBar'. –
@JasonTerk ¡El 'TabLayoutPanel' contiene un' TabBar'! Esa es la parte en la parte superior del 'TabLayoutPanel' que contiene las pestañas. Puede acceder al 'TabBar' de un' TabLayoutPanel' utilizando 'myTabLayoutPanel.getTabBar()' (vea mi respuesta). He actualizado mi respuesta para que quede más claro. –
No hay un método 'getTabBar' en [' TabLayoutPanel'] (http://google-web-toolkit.googlecode.com/svn/javadoc/2.4/com/google/gwt/user/client/ui/TabLayoutPanel. html) tipo. ¿Quizás te refieres a ['TabPanel'] (http://google-web-toolkit.googlecode.com/svn/javadoc/2.4/com/google/gwt/user/client/ui/TabPanel.html)? –
Puede acceder estilo pestaña por clase de fundición a Tab
Widget
TabPanel tabPanel = new TabPanel();
((Widget)tabPanel().getTabBar().getTab(tabsToDisable.iterator().next())).addStyleName("disabled");
¿Cómo se activa de nuevo otra vez? – Barry
Solo llame a event.cancel() en BeforeSelectionHandler cuando desee deshabilitar la pestaña. –
el requisito que tengo es que necesito la pestaña para desactivar cuando la página que tiene la pestaña se carga por primera vez.Pero cuando algo sucede, tengo que habilitar la pestaña de nuevo.¿Cómo puedo lograr esto? – Barry