Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2011
    Messages : 5
    Points : 4
    Points
    4

    Par défaut p:schedule non affiché

    Bonjour,

    Je suis en train de développer un portlet dans Liferay6.1, en utilisant JSF+Primefaces. J'ai un petit souci avec le Schedule...

    Ma liste d'events est remplie (vérifié avec le debug), le ScheduleModel également.

    J'ai testé la liste retournée par mon webservice avec une datatable, et je n'ai aucun souci de ce côté là : la datatable est parfaitement remplie et s'affiche bien.

    Voici le code :

    Managed Bean :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    @ManagedBean (name="affichageCalendrierManagedBean")
    @ViewScoped
    public class AffichageCalendrierManagedBean implements Serializable {
     
    	private static final long serialVersionUID = 1L;
     
    	IWSSServices wsCtech = new WSServicesAccessor();
     
    	private ScheduleModel eventModel;
     
    	private ScheduleEvent event = new DefaultScheduleEvent();
     
    	public int idEventPourAffichage;
     
    	private List <Evenement> eventListe;
     
     
    	/**
    	 * Constructeur
    	 */
    	public AffichageCalendrierManagedBean() {
    		init();
    	}
     
    	// Getters and Setters
    	public ScheduleModel getEventModel() {
    		return eventModel;
    	}
     
    	public void setEventModel(ScheduleModel eventModel) {
    		this.eventModel = eventModel;
    	}
     
    	public ScheduleEvent getEvent() {
    		return event;
    	}
     
    	public void setEvent(ScheduleEvent event) {
    		this.event = event;
    	}
     
    	public int getIdEventPourAffichage() {
    		return idEventPourAffichage;
    	}
     
    	public void setIdEventPourAffichage(int idEventPourAffichage) {
    		this.idEventPourAffichage = idEventPourAffichage;
    	}
     
     
    	public List <Evenement> getEventListe() {
    		return eventListe;
    	}
     
    	public void setEventListe(List <Evenement> eventListe) {
    		this.eventListe = eventListe;
    	}
     
    	/**
    	 * Méthode qui ajoute des ScheduleEvents à l'objet eventModel (utilisé pour contenir
    	 * les events affichés dans le Schedule) ou les met à jour
    	 * Schedule.
    	 * @param actionEvent
    	 */
    	public void addEvent(ActionEvent actionEvent) {  
            if(event.getId() == null)  
                eventModel.addEvent(event);  
            else  
                eventModel.updateEvent(event);  
     
            event = new DefaultScheduleEvent();  
        }  
     
        /**
         * Méthode appelée par le listener Ajax à la sélection d'un event dans le Schedule
         * On récupère l'objet TEvenement contenu dans l'event sélectionné et on extrait son
         * id, qui permettra de le passer en paramètre si l'utilisateur choisit de gérer les souscriptions
         * @param selectEvent
         */
    	public void onEventSelect(ScheduleEntrySelectEvent selectEvent) {  
                 event = selectEvent.getScheduleEvent();
                 Evenement evenementSelected = (Evenement) event.getData();
                 idEventPourAffichage = evenementSelected.getIdEvenement();
        }  
     
    	/**
    	 * Méthode d'init de la page 
    	 * Initialisation des events du Schedule pour affichage
    	 */
    	private void init()
    	{
    		eventModel = new DefaultScheduleModel();
    		List<Evenement> listOfEvents = new ArrayList<Evenement>();
    		listOfEvents = wsCtech.getListTEvenements();
    		eventListe = new ArrayList<Evenement>();
    		eventListe = listOfEvents;
    		for (Evenement evt : listOfEvents) {
    			eventModel.addEvent(new DefaultScheduleEvent(evt
    					.getLibelleEvenement(), evt.getDateDebutEvenement(), evt
    					.getDateFinEvenement(), evt));
    			System.out.println(evt.getLibelleEvenement());
    		}
    	}
    }
    (eventListe est juste utilisé pour ma datatable d'essai)

    page xhtml
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <f:view xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:p="http://primefaces.org/ui"
        xmlns:aui="http://liferay.com/faces/aui">
     
     
    <h:head>
    </h:head>
    <h:body>
     
        <h:form id="formDt">
             <p:dataTable id="dtLstEvt" var="evt" value="#{affichageCalendrierManagedBean.eventListe}" widgetVar="evtTable" emptyMessage="Pas d'événements"  >
                  <f:facet name="header">
                       <p:outputPanel>
                            <h:outputText value="#{message.labelRechGlobale} "/>
                            <p:inputText id="globalFilter" onkeyup="evtTable.filter()" /> 
                       </p:outputPanel>
                  </f:facet>
     
                  <p:column id="idEvt" headerText="Id Event" >
                       <h:outputText value="#{evt.idEvenement}" />
                  </p:column>
     
                  <p:column id="libelleEvt" filterBy="#{evt.libelleEvenement}" filterMatchMode="contains" headerText="Libellé Evénement" >
                       <h:outputText value="#{evt.libelleEvenement}" />
                  </p:column>
     
                  <p:column id="localisationEvt" filterBy="#{evt.localisationEvenement}" filterMatchMode="contains" headerText="Localisation" >
                       <h:outputText value="#{evt.localisationEvenement}" />
                  </p:column>
     
                  <p:column id="catEvt" filterBy="#{evt.categorie}" filterMatchMode="contains"  headerText="Catégorie" >
                       <h:outputText value="#{evt.categorie}" />
                  </p:column>
     
                  <p:column id="datDbtEvt" headerText="Date de début" >
                       <h:outputText value="#{evt.dateDebutEvenement}" >
                            <f:convertDateTime pattern="yyyy/MM/dd" timeZone="Europe/Paris" />
                       </h:outputText>
                  </p:column>
     
                  <p:column id="datFinEvt" headerText="Date de fin" >
                       <h:outputText value="#{evt.dateFinEvenement}" >
                            <f:convertDateTime pattern="yyyy/MM/dd" timeZone="Europe/Paris" />
                       </h:outputText>
                  </p:column> 
             </p:dataTable>
        </h:form> 
     
        <h:form id="form">
             <p:growl id="messages" showDetail="true" />
             <p:schedule value="#{affichageCalendrierManagedBean.eventModel}"
    				widgetVar="mySchedule" aspectRatio="2" id="mySchedule" timeFormat="H:mm" axisFormat="H:mm"
    				locale="fr">				   
                 <p:ajax event="eventSelect" listener="#{affichageCalendrierManagedBean.onEventSelect}" update="eventDetails" oncomplete="eventDialog.show()" />  
    	</p:schedule>
     
    	<p:dialog widgetVar="eventDialog" header="Détails de l'événement" showEffect="clip" hideEffect="clip">  
                 <h:panelGrid id="eventDetails" columns="2">  
                      <h:outputLabel for="title" value="Libellé :" />  
                      <h:outputText id="title" value="#{affichageCalendrierManagedBean.event.title}" />
     
                      <h:outputLabel for="from" value="De :" />  
            	  <h:outputText id="from" value="#{affichageCalendrierManagedBean.event.startDate}" >  
                           <f:convertDateTime pattern="dd/MM/yyyy" />  
                      </h:outputText>  
     
                      <h:outputLabel for="to" value="A :" />  
                      <h:outputText id="to" value="#{affichageCalendrierManagedBean.event.endDate}" >  
                           <f:convertDateTime pattern="dd/MM/yyyy" />  
                      </h:outputText>
     
                      <h:outputLabel for="lieu" value="Lieu :" />  
                      <h:outputText id="lieu" value="#{affichageCalendrierManagedBean.event.data.localisationEvenement}" />   
                 </h:panelGrid>  
            </p:dialog>
       </h:form>
    </h:body>
    </f:view>

    Le code xhtml est le même que j'utilise dans une appli JEE (il y a uniquement des balises <f:ajax> en plus pour gérer les modifications des events sur la grille et fonctionne correctement.
    Ai-je oublié quelque chose?

    Peut être y a t'il un souci avec mes jars importés (dans docroot/WEB-INF/lib)?
    javax.faces-2.1.13
    liferay-faces-alloy-3.1.0-ga1
    liferay-faces-bridge-3.1.0-ga1
    liferay-faces-bridge-impl-3.1.0-ga1
    liferay-faces-portal-3.1.0-ga1
    liferay-faces-util-3.1.0-ga1
    primefaces-3.4.2

    Merci d'avance

  2. #2
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2011
    Messages : 5
    Points : 4
    Points
    4

    Par défaut

    Trouvé la réponse : utilisation de JQuery dans le thème du portail qui entre en conflit avec le JQuery de PrimeFaces dans la portlet...

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •