Search in sources :

Example 1 with Gestionnaire

use of fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire in project esup-ecandidat by EsupPortail.

the class UserController method getSecurityCentreCandidature.

/**
 * Renvoi le centre de candidature à rattacher à l'utilisateur
 * @param  id
 *                      l'id du ctrCand
 * @param  username
 *                      le user
 * @return          L'element de connexion ctrCand
 */
private SecurityCentreCandidature getSecurityCentreCandidature(final Integer id, final String username) {
    for (final DroitProfilInd droitProfilInd : droitProfilController.searchDroitByLoginAndIdCtrCand(id, username)) {
        if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCtrCand()) {
            final Gestionnaire gestionnaire = droitProfilInd.getGestionnaire();
            if (gestionnaire != null && gestionnaire.getCentreCandidature() != null && gestionnaire.getCentreCandidature().getTesCtrCand()) {
                final List<Integer> listComm = new ArrayList<>();
                gestionnaire.getCommissions().forEach(e -> listComm.add(e.getIdComm()));
                return new SecurityCentreCandidature(droitProfilInd.getGestionnaire().getCentreCandidature(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), individuController.getCodCgeForGestionnaire(gestionnaire, username), false, gestionnaire.getTemAllCommGest(), listComm);
            }
        }
    }
    return null;
}
Also used : DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) ArrayList(java.util.ArrayList) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire)

Example 2 with Gestionnaire

use of fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire in project esup-ecandidat by EsupPortail.

the class UserController method connectOther.

/**
 * Connect un membre de commission ou centre cand
 * @param  username
 *                      le username
 * @return          le user connecte
 */
private SecurityUser connectOther(final String username) {
    if (loadBalancingController.isLoadBalancingCandidatMode()) {
        return null;
    }
    List<GrantedAuthority> authoritiesListe = new ArrayList<>();
    final List<DroitProfilInd> listeDroitProfilInd = new ArrayList<>();
    final Individu ind = individuController.getIndividu(username);
    final PreferenceInd pref = (ind != null ? ind.getPreferenceInd() : null);
    if (ind != null) {
        // On recherche les profils autorisé (ctrCand ou commission pour
        // l'utilisateur suivant son login --> On ajoute à la liste
        listeDroitProfilInd.addAll(droitProfilController.searchDroitByLogin(username));
        /* Création de la liste d'autorities */
        SecurityCentreCandidature ctrCand = null;
        SecurityCommission commission = null;
        /* On place la commission favorite si elle existe en tete */
        if (pref != null && pref.getIdCommPref() != null) {
            final Optional<DroitProfilInd> optComm = listeDroitProfilInd.stream().filter(droit -> droit.getCommissionMembre() != null && droit.getCommissionMembre().getCommission() != null && pref.getIdCommPref().equals(droit.getCommissionMembre().getCommission().getIdComm())).findFirst();
            if (optComm.isPresent()) {
                Collections.swap(listeDroitProfilInd, 0, listeDroitProfilInd.indexOf(optComm.get()));
            }
        }
        /* On place le centre de candidature favorit si il existe en tete */
        if (pref != null && pref.getIdCtrCandPref() != null) {
            final Optional<DroitProfilInd> optCtrCand = listeDroitProfilInd.stream().filter(droit -> droit.getGestionnaire() != null && droit.getGestionnaire().getCentreCandidature() != null && pref.getIdCtrCandPref().equals(droit.getGestionnaire().getCentreCandidature().getIdCtrCand())).findFirst();
            if (optCtrCand.isPresent()) {
                Collections.swap(listeDroitProfilInd, 0, listeDroitProfilInd.indexOf(optCtrCand.get()));
            }
        }
        /* On parcourt la liste */
        for (final DroitProfilInd droitProfilInd : listeDroitProfilInd) {
            String codeRole = null;
            if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCandidat()) {
                codeRole = ConstanteUtils.ROLE_GESTION_CANDIDAT;
            } else if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCandidatLS()) {
                codeRole = ConstanteUtils.ROLE_GESTION_CANDIDAT_LS;
            } else if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCtrCand()) {
                codeRole = ConstanteUtils.ROLE_CENTRE_CANDIDATURE;
                final Gestionnaire gestionnaire = droitProfilInd.getGestionnaire();
                if (ctrCand == null && gestionnaire != null && gestionnaire.getCentreCandidature() != null && gestionnaire.getCentreCandidature().getTesCtrCand()) {
                    final List<Integer> listComm = new ArrayList<>();
                    gestionnaire.getCommissions().forEach(e -> listComm.add(e.getIdComm()));
                    ctrCand = new SecurityCentreCandidature(droitProfilInd.getGestionnaire().getCentreCandidature(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), individuController.getCodCgeForGestionnaire(gestionnaire, username), false, gestionnaire.getTemAllCommGest(), listComm);
                }
            } else if (droitProfilInd.getDroitProfil().isDroitProfilCommission()) {
                codeRole = ConstanteUtils.ROLE_COMMISSION;
                final CommissionMembre membre = droitProfilInd.getCommissionMembre();
                if (commission == null && membre != null && membre.getCommission() != null && membre.getCommission().getTesComm() && membre.getCommission().getCentreCandidature().getTesCtrCand()) {
                    commission = new SecurityCommission(droitProfilInd.getCommissionMembre().getCommission(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), false);
                }
            }
            if (codeRole != null) {
                final SimpleGrantedAuthority sga = new SimpleGrantedAuthority(codeRole);
                if (!authoritiesListe.contains(sga)) {
                    authoritiesListe.add(sga);
                }
            }
        }
        // gestion des gestionnaires de candidat
        authoritiesListe = traiteDroitGestionnaireCandidat(authoritiesListe, ctrCand, commission);
        // on verifie qu'il y a bien des droits!
        if (authoritiesListe.size() > 0) {
            return new SecurityUserGestionnaire(username, getDisplayNameFromLdap(username), authoritiesListe, ctrCand, commission, pref);
        }
    }
    return null;
}
Also used : UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) UserDetailsService(org.springframework.security.core.userdetails.UserDetailsService) UI(com.vaadin.ui.UI) HttpSessionSecurityContextRepository(org.springframework.security.web.context.HttpSessionSecurityContextRepository) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) MethodInvocation(org.aopalliance.intercept.MethodInvocation) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire) CustomException(fr.univlorraine.ecandidat.utils.CustomException) SecurityCommission(fr.univlorraine.ecandidat.services.security.SecurityCommission) CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) Page(com.vaadin.server.Page) PreferenceInd(fr.univlorraine.ecandidat.entities.ecandidat.PreferenceInd) SecurityContextHolder(org.springframework.security.core.context.SecurityContextHolder) PasswordHashService(fr.univlorraine.ecandidat.services.security.PasswordHashService) ConfigAttribute(org.springframework.security.access.ConfigAttribute) Droit(fr.univlorraine.ecandidat.services.security.SecurityFonc.Droit) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Predicate(java.util.function.Predicate) SecurityCtrCandFonc(fr.univlorraine.ecandidat.services.security.SecurityCtrCandFonc) Collection(java.util.Collection) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) Resource(javax.annotation.Resource) MethodSecurityInterceptor(org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor) SecurityUser(fr.univlorraine.ecandidat.services.security.SecurityUser) GrantedAuthority(org.springframework.security.core.GrantedAuthority) List(java.util.List) Type(com.vaadin.ui.Notification.Type) DroitProfilFonc(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilFonc) SecurityContext(org.springframework.security.core.context.SecurityContext) Optional(java.util.Optional) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) UsernamePasswordAuthenticationToken(org.springframework.security.authentication.UsernamePasswordAuthenticationToken) Authentication(org.springframework.security.core.Authentication) View(com.vaadin.navigator.View) MainUI(fr.univlorraine.ecandidat.MainUI) MethodInvocationUtils(org.springframework.security.util.MethodInvocationUtils) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) ArrayList(java.util.ArrayList) Value(org.springframework.beans.factory.annotation.Value) PeopleLdap(fr.univlorraine.ecandidat.services.ldap.PeopleLdap) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Notification(com.vaadin.ui.Notification) UserDetails(org.springframework.security.core.userdetails.UserDetails) SwitchUserFilter(org.springframework.security.web.authentication.switchuser.SwitchUserFilter) SecurityAuthenticationProvider(fr.univlorraine.ecandidat.services.security.SecurityAuthenticationProvider) AccessDeniedException(org.springframework.security.access.AccessDeniedException) ApplicationContext(org.springframework.context.ApplicationContext) SecurityUserCandidat(fr.univlorraine.ecandidat.services.security.SecurityUserCandidat) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) InsufficientAuthenticationException(org.springframework.security.authentication.InsufficientAuthenticationException) Component(org.springframework.stereotype.Component) SecurityCommissionFonc(fr.univlorraine.ecandidat.services.security.SecurityCommissionFonc) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) Collections(java.util.Collections) Assert(org.springframework.util.Assert) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) GrantedAuthority(org.springframework.security.core.GrantedAuthority) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) ArrayList(java.util.ArrayList) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) SecurityCommission(fr.univlorraine.ecandidat.services.security.SecurityCommission) PreferenceInd(fr.univlorraine.ecandidat.entities.ecandidat.PreferenceInd) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire)

Example 3 with Gestionnaire

use of fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire in project esup-ecandidat by EsupPortail.

the class CentreCandidatureController method addProfilToGestionnaire.

/**
 * Ajoute un profil à un gestionnaire
 *
 * @param ctrCand
 */
public void addProfilToGestionnaire(final CentreCandidature ctrCand) {
    /* Verrou */
    if (!lockController.getLockOrNotify(ctrCand, null)) {
        return;
    }
    DroitProfilGestionnaireWindow window = new DroitProfilGestionnaireWindow(ctrCand);
    window.addDroitProfilGestionnaireListener((individu, droit, loginApo, centreGestion, isAllCommission, listeCommission) -> {
        /* Contrôle que le client courant possède toujours le lock */
        if (lockController.getLockOrNotify(ctrCand, null)) {
            if (droitProfilController.getProfilIndByCentreCandidatureAndLogin(ctrCand, individu).size() == 0) {
                Individu ind = individuController.saveIndividu(individu);
                DroitProfilInd dpi = droitProfilController.saveProfilInd(ind, droit);
                Gestionnaire gest = new Gestionnaire(ctrCand, dpi, loginApo, centreGestion, isAllCommission, listeCommission);
                ctrCand.getGestionnaires().add(gest);
                centreCandidatureRepository.save(ctrCand);
            } else {
                Notification.show(applicationContext.getMessage("droitprofilind.gest.allready", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
            }
        }
    });
    window.addCloseListener(e -> {
        /* Suppression du lock */
        lockController.releaseLock(ctrCand);
    });
    UI.getCurrent().addWindow(window);
}
Also used : DroitProfilGestionnaireWindow(fr.univlorraine.ecandidat.views.windows.DroitProfilGestionnaireWindow) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire)

Example 4 with Gestionnaire

use of fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire in project esup-ecandidat by EsupPortail.

the class ScolCentreCandidatureView method init.

/**
 * Initialise la vue
 */
@PostConstruct
public void init() {
    /* Style */
    setSizeFull();
    setMargin(true);
    setSpacing(true);
    if (parametreController.getSiScolMode().equals(ConstanteUtils.SI_SCOL_APOGEE)) {
        FIELDS_ORDER_GEST = FIELDS_ORDER_GEST_APOGEE;
    } else {
        FIELDS_ORDER_GEST = FIELDS_ORDER_GEST_SI_SCOL;
    }
    /* Table des centres de candidatures */
    VerticalLayout ctrCandLayout = new VerticalLayout();
    ctrCandLayout.setSizeFull();
    ctrCandLayout.setSpacing(true);
    /* Titre */
    Label titleParam = new Label(applicationContext.getMessage("ctrCand.title", null, UI.getCurrent().getLocale()));
    titleParam.addStyleName(StyleConstants.VIEW_TITLE);
    ctrCandLayout.addComponent(titleParam);
    /* Boutons */
    HorizontalLayout buttonsLayout = new HorizontalLayout();
    buttonsLayout.setWidth(100, Unit.PERCENTAGE);
    buttonsLayout.setSpacing(true);
    ctrCandLayout.addComponent(buttonsLayout);
    OneClickButton btnNew = new OneClickButton(applicationContext.getMessage("ctrCand.btnNouveau", null, UI.getCurrent().getLocale()), FontAwesome.PLUS);
    btnNew.setEnabled(true);
    btnNew.addClickListener(e -> {
        centreCandidatureController.editNewCentreCandidature();
    });
    buttonsLayout.addComponent(btnNew);
    buttonsLayout.setComponentAlignment(btnNew, Alignment.MIDDLE_LEFT);
    OneClickButton btnEdit = new OneClickButton(applicationContext.getMessage("btnEdit", null, UI.getCurrent().getLocale()), FontAwesome.PENCIL);
    btnEdit.setEnabled(false);
    btnEdit.addClickListener(e -> {
        if (centreCandidatureTable.getValue() instanceof CentreCandidature) {
            centreCandidatureController.editCentreCandidature((CentreCandidature) centreCandidatureTable.getValue(), true);
        }
    });
    buttonsLayout.addComponent(btnEdit);
    buttonsLayout.setComponentAlignment(btnEdit, Alignment.MIDDLE_CENTER);
    OneClickButton btnDelete = new OneClickButton(applicationContext.getMessage("btnDelete", null, UI.getCurrent().getLocale()), FontAwesome.TRASH_O);
    btnDelete.setEnabled(false);
    btnDelete.addClickListener(e -> {
        if (centreCandidatureTable.getValue() instanceof CentreCandidature) {
            centreCandidatureController.deleteCentreCandidature((CentreCandidature) centreCandidatureTable.getValue());
        }
    });
    buttonsLayout.addComponent(btnDelete);
    buttonsLayout.setComponentAlignment(btnDelete, Alignment.MIDDLE_RIGHT);
    Button btnExport = new Button(applicationContext.getMessage("btnExport", null, UI.getCurrent().getLocale()), FontAwesome.FILE_EXCEL_O);
    /* Export de la liste des formations */
    btnExport.setDescription(applicationContext.getMessage("btnExport", null, UI.getCurrent().getLocale()));
    btnExport.setDisableOnClick(true);
    new OnDemandFileDownloader(new OnDemandStreamFile() {

        @Override
        public OnDemandFile getOnDemandFile() {
            @SuppressWarnings("unchecked") List<CentreCandidature> liste = (List<CentreCandidature>) centreCandidatureTable.getContainerDataSource().getItemIds();
            if (liste.size() == 0) {
                btnExport.setEnabled(true);
                return null;
            }
            /* Téléchargement */
            OnDemandFile file = centreCandidatureController.generateExport(liste);
            if (file != null) {
                btnExport.setEnabled(true);
                return file;
            }
            btnExport.setEnabled(true);
            return null;
        }
    }, btnExport);
    buttonsLayout.addComponent(btnExport);
    buttonsLayout.setComponentAlignment(btnExport, Alignment.MIDDLE_RIGHT);
    /* Table des centreCandidatures */
    BeanItemContainer<CentreCandidature> container = new BeanItemContainer<>(CentreCandidature.class, centreCandidatureController.getCentreCandidatures());
    centreCandidatureTable.setContainerDataSource(container);
    centreCandidatureTable.addBooleanColumn(CentreCandidature_.tesCtrCand.getName());
    centreCandidatureTable.addBooleanColumn(CentreCandidature_.temDematCtrCand.getName());
    centreCandidatureTable.setVisibleColumns((Object[]) FIELDS_ORDER);
    for (String fieldName : FIELDS_ORDER) {
        centreCandidatureTable.setColumnHeader(fieldName, applicationContext.getMessage("ctrCand.table." + fieldName, null, UI.getCurrent().getLocale()));
    }
    centreCandidatureTable.setSortContainerPropertyId(CentreCandidature_.codCtrCand.getName());
    centreCandidatureTable.setColumnCollapsingAllowed(true);
    centreCandidatureTable.setColumnReorderingAllowed(true);
    centreCandidatureTable.setSelectable(true);
    centreCandidatureTable.setImmediate(true);
    centreCandidatureTable.addItemSetChangeListener(e -> centreCandidatureTable.sanitizeSelection());
    centreCandidatureTable.addValueChangeListener(e -> {
        /* Les boutons d'édition et de suppression de centreCandidature sont actifs seulement si une centreCandidature est sélectionnée. */
        boolean centreCandidatureIsSelected = centreCandidatureTable.getValue() instanceof CentreCandidature;
        btnEdit.setEnabled(centreCandidatureIsSelected);
        btnDelete.setEnabled(centreCandidatureIsSelected);
        btnNewGest.setEnabled(centreCandidatureIsSelected);
        if (centreCandidatureIsSelected) {
            majGestionnaireTable((CentreCandidature) centreCandidatureTable.getValue());
        } else {
            majGestionnaireTable(null);
        }
    });
    centreCandidatureTable.addItemClickListener(e -> {
        if (e.isDoubleClick()) {
            centreCandidatureTable.select(e.getItemId());
            btnEdit.click();
        }
    });
    ctrCandLayout.addComponent(centreCandidatureTable);
    ctrCandLayout.setExpandRatio(centreCandidatureTable, 1);
    centreCandidatureTable.setSizeFull();
    addComponent(ctrCandLayout);
    setExpandRatio(ctrCandLayout, 3);
    /* Gestionnaires */
    VerticalLayout ctrCandGestLayout = new VerticalLayout();
    ctrCandGestLayout.setSizeFull();
    ctrCandGestLayout.setSpacing(true);
    /* Titre */
    HorizontalLayout layoutCtrGestLabel = new HorizontalLayout();
    layoutCtrGestLabel.setSpacing(true);
    Label titleGest = new Label(applicationContext.getMessage("ctrCand.title.gest", null, UI.getCurrent().getLocale()));
    titleGest.addStyleName(StyleConstants.VIEW_SUBTITLE);
    layoutCtrGestLabel.addComponent(titleGest);
    layoutCtrGestLabel.setComponentAlignment(titleGest, Alignment.BOTTOM_LEFT);
    labelCtrCandGest.setValue(applicationContext.getMessage("ctrCand.gest.noctrCand", null, UI.getCurrent().getLocale()));
    labelCtrCandGest.addStyleName(ValoTheme.LABEL_SMALL);
    layoutCtrGestLabel.addComponent(labelCtrCandGest);
    layoutCtrGestLabel.setComponentAlignment(labelCtrCandGest, Alignment.BOTTOM_LEFT);
    ctrCandGestLayout.addComponent(layoutCtrGestLabel);
    /* Boutons */
    HorizontalLayout buttonsLayoutGest = new HorizontalLayout();
    buttonsLayoutGest.setWidth(100, Unit.PERCENTAGE);
    buttonsLayoutGest.setSpacing(true);
    ctrCandGestLayout.addComponent(buttonsLayoutGest);
    btnNewGest.setCaption(applicationContext.getMessage("droitprofilind.btnNouveauGest", null, UI.getCurrent().getLocale()));
    btnNewGest.setEnabled(false);
    btnNewGest.addClickListener(e -> {
        centreCandidatureController.addProfilToGestionnaire((CentreCandidature) centreCandidatureTable.getValue());
    });
    buttonsLayoutGest.addComponent(btnNewGest);
    buttonsLayoutGest.setComponentAlignment(btnNewGest, Alignment.MIDDLE_LEFT);
    /* Edit profil */
    OneClickButton btnEditGest = new OneClickButton(applicationContext.getMessage("btnEdit", null, UI.getCurrent().getLocale()), FontAwesome.PENCIL);
    btnEditGest.setEnabled(false);
    btnEditGest.addClickListener(e -> {
        if (centreCandidatureGestTable.getValue() instanceof Gestionnaire) {
            centreCandidatureController.updateProfilToGestionnaire((Gestionnaire) centreCandidatureGestTable.getValue());
        }
    });
    buttonsLayoutGest.addComponent(btnEditGest);
    buttonsLayoutGest.setComponentAlignment(btnEditGest, Alignment.MIDDLE_CENTER);
    /* Delete profil */
    OneClickButton btnDeleteGest = new OneClickButton(applicationContext.getMessage("btnDelete", null, UI.getCurrent().getLocale()), FontAwesome.TRASH_O);
    btnDeleteGest.setEnabled(false);
    btnDeleteGest.addClickListener(e -> {
        if (centreCandidatureGestTable.getValue() instanceof Gestionnaire) {
            centreCandidatureController.deleteProfilToGestionnaire((Gestionnaire) centreCandidatureGestTable.getValue());
        }
    });
    buttonsLayoutGest.addComponent(btnDeleteGest);
    buttonsLayoutGest.setComponentAlignment(btnDeleteGest, Alignment.MIDDLE_RIGHT);
    /* Table des gestionnaires */
    BeanItemContainer<Gestionnaire> containerGest = new BeanItemContainer<>(Gestionnaire.class);
    containerGest.addNestedContainerProperty(Gestionnaire_.droitProfilInd.getName() + "." + DroitProfilInd_.individu.getName() + "." + Individu_.loginInd.getName());
    containerGest.addNestedContainerProperty(Gestionnaire_.siScolCentreGestion.getName() + "." + SiScolCentreGestion_.libCge.getName());
    containerGest.addNestedContainerProperty(Gestionnaire_.droitProfilInd.getName() + "." + DroitProfilInd_.individu.getName() + "." + Individu_.libelleInd.getName());
    containerGest.addNestedContainerProperty(Gestionnaire_.droitProfilInd.getName() + "." + DroitProfilInd_.droitProfil.getName() + "." + DroitProfil_.libProfil.getName());
    centreCandidatureGestTable.setContainerDataSource(containerGest);
    centreCandidatureGestTable.setVisibleColumns((Object[]) FIELDS_ORDER_GEST);
    for (String fieldName : FIELDS_ORDER_GEST) {
        centreCandidatureGestTable.setColumnHeader(fieldName, applicationContext.getMessage("droit." + fieldName, null, UI.getCurrent().getLocale()));
    }
    centreCandidatureGestTable.setSortContainerPropertyId(Gestionnaire_.droitProfilInd.getName() + "." + DroitProfilInd_.individu.getName() + "." + Individu_.loginInd.getName());
    centreCandidatureGestTable.setColumnCollapsingAllowed(true);
    centreCandidatureGestTable.setColumnReorderingAllowed(true);
    centreCandidatureGestTable.setSelectable(true);
    centreCandidatureGestTable.setImmediate(true);
    centreCandidatureGestTable.addItemSetChangeListener(e -> centreCandidatureGestTable.sanitizeSelection());
    centreCandidatureGestTable.addValueChangeListener(e -> {
        /* Les boutons d'édition et de suppression de centreCandidature sont actifs seulement si une centreCandidature est sélectionnée. */
        boolean gestIsSelected = centreCandidatureGestTable.getValue() instanceof Gestionnaire;
        btnDeleteGest.setEnabled(gestIsSelected);
        btnEditGest.setEnabled(gestIsSelected);
    });
    centreCandidatureGestTable.addItemClickListener(e -> {
        if (e.isDoubleClick()) {
            centreCandidatureGestTable.select(e.getItemId());
            btnEditGest.click();
        }
    });
    ctrCandGestLayout.addComponent(centreCandidatureGestTable);
    ctrCandGestLayout.setExpandRatio(centreCandidatureGestTable, 1);
    centreCandidatureGestTable.setSizeFull();
    addComponent(ctrCandGestLayout);
    setExpandRatio(ctrCandGestLayout, 2);
    /* Inscrit la vue aux mises à jour de centreCandidature */
    centreCandidatureEntityPusher.registerEntityPushListener(this);
}
Also used : OnDemandStreamFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileUtils.OnDemandStreamFile) OneClickButton(fr.univlorraine.ecandidat.vaadin.components.OneClickButton) OnDemandFileDownloader(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileDownloader) Label(com.vaadin.ui.Label) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) BeanItemContainer(com.vaadin.data.util.BeanItemContainer) OnDemandFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFile) HorizontalLayout(com.vaadin.ui.HorizontalLayout) Button(com.vaadin.ui.Button) OneClickButton(fr.univlorraine.ecandidat.vaadin.components.OneClickButton) VerticalLayout(com.vaadin.ui.VerticalLayout) List(java.util.List) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) PostConstruct(javax.annotation.PostConstruct)

Aggregations

Gestionnaire (fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire)4 DroitProfilInd (fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd)3 CentreCandidature (fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature)2 Individu (fr.univlorraine.ecandidat.entities.ecandidat.Individu)2 SecurityCentreCandidature (fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature)2 SecurityUserGestionnaire (fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 BeanItemContainer (com.vaadin.data.util.BeanItemContainer)1 View (com.vaadin.navigator.View)1 Page (com.vaadin.server.Page)1 Button (com.vaadin.ui.Button)1 HorizontalLayout (com.vaadin.ui.HorizontalLayout)1 Label (com.vaadin.ui.Label)1 Notification (com.vaadin.ui.Notification)1 Type (com.vaadin.ui.Notification.Type)1 UI (com.vaadin.ui.UI)1 VerticalLayout (com.vaadin.ui.VerticalLayout)1 MainUI (fr.univlorraine.ecandidat.MainUI)1 Candidat (fr.univlorraine.ecandidat.entities.ecandidat.Candidat)1