Hello, im trying to make a menu widget that receives an object with
logged user permissions and paint the menu showing only the links that
the user can see.

My problem is how to know from the page that uses the widget what link
have been selected.

The code (without permissions logic implemented) is:

public class MenuUsuario extends Composite implements
SourcesClickEvents {

        // Atributos de clase
        private ClickListenerCollection clickListeners;

        public MenuUsuario() {
                // Necesario para que funcione gwt-log
                Log.setUncaughtExceptionHandler();

                // DecoratedStackPanel que será el menu de usuario
                DecoratedStackPanel decoratedStackPanelMenu = new
DecoratedStackPanel();
                initWidget(decoratedStackPanelMenu);

                decoratedStackPanelMenu.setSize("150px", "150px");
                decoratedStackPanelMenu.add(crearSubmenuOrganizacion(), "Mi
Clinica", true);
                decoratedStackPanelMenu.add(crearSubmenuTalon(), "Talones", 
true);
                decoratedStackPanelMenu.add(crearSubmenuPerfil(), "Mi perfil",
true);

                //this.sinkEvents(Event.ONCLICK);
        }

        private Tree crearSubmenuOrganizacion() {
                // Arbol con el menú Organización
                Tree treeOrganizacion = new Tree();

                // Rama con los enlaces de gestión de organización y creación de
enlaces
                Hyperlink linkAnadirSede = new 
Hyperlink("Nueva","anadirNuevaSede");
                Hyperlink linkModificarSede = new
Hyperlink("Modificar","modificarSede");
                Hyperlink linkBorrarSede = new Hyperlink("Borrar","borrarSede");

                TreeItem treeItemSedes = treeOrganizacion.addItem("Sedes");
                treeItemSedes.addItem(linkAnadirSede);
                treeItemSedes.addItem(linkModificarSede);
                treeItemSedes.addItem(linkBorrarSede);

                // Rama con los enlaces de gestión de empleados y creación de
enlaces
                Hyperlink linkAnadirEmpleado = new Hyperlink("Nuevo",
"anadirEmpleado");
                Hyperlink linkModificarEmpleado = new Hyperlink("Modificar",
"modificarEmpleado");
                Hyperlink linkEliminarEmpleado = new Hyperlink("Eliminar",
"eliminarEmpleado");

                TreeItem treeItemEmpleados = 
treeOrganizacion.addItem("Empleados");
                treeItemEmpleados.addItem(linkAnadirEmpleado);
                treeItemEmpleados.addItem(linkModificarEmpleado);
                treeItemEmpleados.addItem(linkEliminarEmpleado);

                // Añadimos las ramas al árbol
                treeOrganizacion.addItem(treeItemSedes);
                treeOrganizacion.addItem(treeItemEmpleados);
                treeOrganizacion.setAnimationEnabled(true);

                return treeOrganizacion;
        }

        private VerticalPanel crearSubmenuTalon() {
                // VerticalPanel que contendrá los enlaces de gestión de 
talones y
creación de estos
                VerticalPanel verticalPanelTalon = new VerticalPanel();
                verticalPanelTalon.setSpacing(4);
                Hyperlink linkAnadirTalon = new Hyperlink("Enviar", 
"enviarTalon");
                Hyperlink linkAnularTalon = new Hyperlink("Anular", 
"anularTalon");
                Hyperlink linkLiquidacionTalones = new Hyperlink("Liquidación
mensual", "liquidacionTalones");
                verticalPanelTalon.add(linkAnadirTalon);
                verticalPanelTalon.add(linkAnularTalon);
                verticalPanelTalon.add(linkLiquidacionTalones);

                return verticalPanelTalon;
        }

        private VerticalPanel crearSubmenuPerfil() {
                // VerticalPanel que contendrá los enlaces de gestión de perfil 
y
creación de éstos
                VerticalPanel verticalPanelPerfil = new VerticalPanel();
                verticalPanelPerfil.setSpacing(4);
                Hyperlink linkModificarPerfil = new Hyperlink("Modificar",
"modificarPerfil");
                verticalPanelPerfil.add(linkModificarPerfil);

                return verticalPanelPerfil;
        }

        public void addClickListener(ClickListener listener) {
                if (clickListeners == null)
                        clickListeners = new ClickListenerCollection();
                clickListeners.add(listener);
        }

        public void removeClickListener(ClickListener listener) {
                if (clickListeners != null)
                        clickListeners.remove(listener);
    }

        public void onBrowserEvent(Event event) {
                switch (DOM.eventGetType(event)) {
                        case Event.ONCLICK:
                    if (clickListeners != null)
                        clickListeners.fireClick(this);
                    break;
                }
        }
}

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to