Menu dinámico en función de si el usuario está logeado o no.

This commit is contained in:
mgarcianun
2019-12-04 00:11:01 +01:00
parent d7d214f1e9
commit be46189d97
5 changed files with 159 additions and 50 deletions

View File

@@ -1,5 +1,6 @@
package managedbean.common;
import java.awt.MenuItem;
import java.io.Serializable;
import javax.annotation.PostConstruct;
@@ -10,49 +11,115 @@ import javax.inject.Named;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSeparator;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuModel;
import org.primefaces.model.menu.Submenu;
/**
*
* @author Marcos García Núñez (mgarcianun@uoc.edu)
*
*/
@Named("menuView")
@RequestScoped
public class MenuMBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private MenuModel model;
@PostConstruct
public void init() {
model = new DefaultMenuModel();
DefaultMenuItem item;
DefaultSubMenu subMenu;
// First submenu
DefaultSubMenu firstSubmenu = new DefaultSubMenu("Dynamic submenu");
DefaultMenuItem item = new DefaultMenuItem("External", "", "www.google.com");
// item.setUrl("www.google.com");
firstSubmenu.getElements().add(item);
model.addElement(createMenuItem("Home", "pi pi-home", "home", null));
model.getElements().add(firstSubmenu);
if (SessionUtils.isLogedIn() == true) {
// Second submenu
DefaultSubMenu secondSubmenu = new DefaultSubMenu("Dynamic Actions");
// Administracion Sistema
// TODO: mostrar este menú solo si el usuario es administrador
if (1 == 1) {
subMenu = new DefaultSubMenu("Administración del sistema", "pi pi-settings");
subMenu.addElement(createMenuItem("Esp. médicas", "pi pi-calendar", "ManageMedicalSpecialties", null));
subMenu.addElement(createMenuItem("Centros At. Primaria", "pi pi-briefcase", "ManageCAPs", null));
subMenu.addElement(new DefaultSeparator());
subMenu.addElement(createMenuItem("Añadir usuario Admin", "pi pi-calendar", "AddUserAdmin", null));
model.addElement(subMenu);
}
item = new DefaultMenuItem("Save", "pi pi-save");
item.setCommand("#{menuView.save}");
item.setUpdate("messages");
secondSubmenu.getElements().add(item);
// Visitas
// TODO: mostrar este menú solo si el usuario es paciente
if (1 == 1) {
subMenu = new DefaultSubMenu("Visitas", "pi pi-calendar");
subMenu.addElement(createMenuItem("Agendar", "pi pi-calendar", "ScheduleVisit", null));
subMenu.addElement(createMenuItem("Consultar", "pi pi-briefcase", "QueryVisit", null));
model.addElement(subMenu);
}
item = new DefaultMenuItem("Delete", "pi pi-times");
item.setCommand("#{menuView.delete}");
item.setAjax(false);
secondSubmenu.getElements().add(item);
// Pruebas médicas
// TODO: mostrar este menú solo si el usuario es medico // etc...
if (1 == 1) {
item = new DefaultMenuItem("Redirect", "pi pi-search");
item.setCommand("#{menuView.redirect}");
secondSubmenu.getElements().add(item);
subMenu = new DefaultSubMenu("Pruebas Medicas", "pi pi-clone");
subMenu.addElement(createMenuItem("Añadir", "pi pi-clone", "AddMedicalTest", null));
subMenu.addElement(createMenuItem("Gestionar", "pi pi-briefcase", "MedicaltestManage", null));
subMenu.addElement(new DefaultSeparator());
subMenu.addElement(createMenuItem("Consultar médicos pro esp.", "pi pi-search", "QueryDoctorBySpecialty", null));
subMenu.addElement(new DefaultSeparator());
subMenu.addElement(createMenuItem("Listar médicos", "pi pi-list", "ListDoctorsbySpecialty", null));
model.addElement(subMenu);
}
model.getElements().add(secondSubmenu);
// Preguntas
// TODO: mostrar este menú solo si el usuario es paciente o medico
if (1 == 1) {
subMenu = new DefaultSubMenu("Preguntas", "pi pi-clone");
// TODO: Si es paciente puede preguntar
if (true == true)
subMenu.addElement(createMenuItem("Añadir pregunta", "pi pi-clone", "AskQuestion", null));
// TODO: Si es medico de familia puede responder
if (true == true)
subMenu.addElement(createMenuItem("Responder pregunta", "pi pi-question", "AnswerQuestion", null));
model.addElement(subMenu);
}
}
// Perfil
subMenu = new DefaultSubMenu("Gestionar perfil", "pi pi-id-card");
if (SessionUtils.isLogedIn() == false) {
subMenu.addElement(createMenuItem("Registro de usuario", "pi pi-id-card", "RegisterUser", null));
subMenu.addElement(createMenuItem("Registro de paciente", "pi pi-id-card", "AddPatient", null));
subMenu.addElement(createMenuItem("Registro de médico", "pi pi-id-card", "AddFamilyDoctor", null));
subMenu.addElement(createMenuItem("Registro de especialista", "pi pi-id-card", "AddFamilyDoctor", null));
subMenu.addElement(createMenuItem("Registro de médico", "pi pi-id-card", "AddSpecialistDoctor", null));
subMenu.addElement(new DefaultSeparator());
} else {
subMenu.addElement(createMenuItem("Actualizar mi perfil", "pi pi-search", "UpdateProfile", null));
subMenu.addElement(new DefaultSeparator());
// TODO: mostrar este menú solo si el usuario es paciente
if (true == true) {
subMenu.addElement(createMenuItem("Cambiar médico de familia", "pi pi-search", "ChangeFamilyDoctor", null));
subMenu.addElement(new DefaultSeparator());
}
// TODO: mostrar este menú solo si el usuario es médico de familia
if (true == true)
subMenu.addElement(createMenuItem("Cambiar centro de atención", "pi pi-search", "changecap", null));
}
model.addElement(subMenu);
}
private DefaultMenuItem createMenuItem(String name, String icon, String outcome, String command) {
DefaultMenuItem item = new DefaultMenuItem(name, icon);
if (outcome != null)
item.setOutcome(outcome);
if (command != null)
item.setCommand(command);
return item;
}
public MenuModel getModel() {