Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Portails
Portails Forum d'entraide sur les Portlets (JSR 168 / JSR 286) et les solutions Java de type portail (GateIn, Liferay, JBoss Portal, eXo Platform, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2012, 14h23   #1
Allcats
Invité de passage
 
Homme
Étudiant
Inscription : 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
Allcats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2012, 00h48   #2
Allcats
Invité de passage
 
Homme
Étudiant
Inscription : 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
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...
Allcats est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h39.


 
 
 
 
Partenaires

Hébergement Web