IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

PrimeFaces Shedule add/resize/move


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Par défaut PrimeFaces Shedule add/resize/move
    Bonjour à tous ,

    J'ai encore des soucis avec le schedule de primefaces 3.2

    Tout d'abord à la création d'un événement je voulais y ajouter l'heure de début et de fin donc voila ce que j'ai fais :

    XHTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <p:dialog widgetVar="detailModal" header="Event Details" showEffect="clip" hideEffect="clip">  
                  <h:panelGrid id="eventDetails" columns="2">  
                    <h:outputLabel for="title" value="Title:" />  
                    <p:inputText id="title" value="#{calendrierSessionBeanOld.event.title}" required="false"/>  
                    <h:outputLabel for="from" value="Du:" />  
                    <p:inputMask id="from" value="#{calendrierSessionBeanOld.event.startDate}" mask="99/99/9999">  
                      <f:convertDateTime pattern="dd/MM/yyyy" />  
                    </p:inputMask>                                  
                    <h:outputLabel for="to" value="Au:" />  
                    <p:inputMask id="to" value="#{calendrierSessionBeanOld.event.endDate}" mask="99/99/9999">  
                      <f:convertDateTime pattern="dd/MM/yyyy" />  
                    </p:inputMask> 
                    <h:outputLabel value="De:" />  
                    <p:calendar value="#{calendrierSessionBeanOld.heureDeb}" pattern="HH:mm" timeOnly="true" size="4"/>
                    <h:outputLabel value="A:" />  
                    <p:calendar value="#{calendrierSessionBeanOld.heureFin}" pattern="HH:mm" timeOnly="true" size="4"/>
                    <h:outputLabel for="allDay" value="All Day:" />  
                    <h:selectBooleanCheckbox id="allDay" value="#{calendrierSessionBeanOld.event.allDay}" />  
     
                   <p:commandButton type="reset" value="Reset" />  
                   <p:commandButton value="Save" actionListener="#{calendrierSessionBeanOld.addEvent()}" oncomplete="myschedule.update();detailModal.hide();"/>  
                 </h:panelGrid>
    BEAN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public class CalendrierSessionBeanOld{
     
     
     
     
     
        private ScheduleModel eventModel;
        private int slot;
        private String view ;
        private Date date;
        private Date dateDebut;
        private Date dateFin;
     
        private ScheduleEvent event;
        private Date heureDeb;
        private Date heureFin;
     
    public void addEvent() {  
     
           dateDebut = event.getStartDate();
           dateFin = event.getEndDate();
     
             if(event.getId() == null){
                event.getStartDate().setTime(ajoutDeHeure(dateDebut, heureDeb).getTime());
                event.getEndDate().setTime(ajoutDeHeure(dateFin, heureFin).getTime());
                eventModel.addEvent(event);  
             }else{
                event.getStartDate().setTime(ajoutDeHeure(dateDebut, heureDeb).getTime());
                event.getEndDate().setTime(ajoutDeHeure(dateFin, heureFin).getTime());
                eventModel.updateEvent(event);  
             }
            event = new DefaultScheduleEvent();  
        } 
     
     
     
       public Date ajoutDeHeure(Date dateRef,Date heure){
          Date dateFinal = new Date();
     
           Calendar calendarDateRef=Calendar.getInstance();
          calendarDateRef.setTime(dateRef); 
     
           Calendar calendarDateHeure=Calendar.getInstance();
           calendarDateHeure.setTime(heure); 
     
          calendarDateRef.set(Calendar.HOUR,calendarDateHeure.get(Calendar.HOUR));
          calendarDateRef.set(Calendar.MINUTE,calendarDateHeure.get(Calendar.MINUTE));
     
     
          dateFinal.setTime(calendarDateRef.getTimeInMillis()); 
     
          return dateFinal;
       }
    Cela fonctionne et même sur plusieurs jour sauf quand l'heure de début ou de fin et après 12H (pb je pense d'AM/PM) je ne sais pas comment résoudre mon problème.


    Ensuite j'ai toujours un décalage d'une heure qui à mon avis est du à l'heure d'hiver/été mais la encore je ne sais pas comment faire ?


    Pour finir lorsqu'on utilise le eventResize je ne sais pas comment mettre à jour l'event quelqu'un aurait-il un exemple ?

    D'avance merci

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Salut,

    tu () es sûr que c'est bien ça que tu veux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    calendarDateRef.set(Calendar.HOUR,calendarDateHeure.get(Calendar.HOUR));
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    calendarDateRef.add(Calendar.HOUR,calendarDateHeure.get(Calendar.HOUR));

    sinon sur tes instances de Calendar ... que donne un "getTimeZone()" en debug ? ainsi que la locale ?

  3. #3
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Autre piste de travail : essaye d'utiliser Apache Commons Date, qui travaille directement sur des Date et pas des Calendar, ce qui pourrait éviter d'avoir de problème de conversion pour satisfaire au ScheduleEvent de PrimeFaces.

    http://commons.apache.org/lang/api-r...DateUtils.html


    DateUtils fait partie de "Commons Lang" :
    http://commons.apache.org/lang/

    Tu as les méthodes utilitaires statiques "addHours(Date date, int amount)" et "addMinutes(Date date, int amount)" qui pourraient te servir.

  4. #4
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    Salut,

    tu () es sûr que c'est bien ça que tu veux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    calendarDateRef.set(Calendar.HOUR,calendarDateHeure.get(Calendar.HOUR));
    oui car je veux remplacer l'heure et non pas ajouter une durée

    Sinon voici le résultat du getTimeZone

    INFO: sun.util.calendar.ZoneInfo[id="Europe/Paris",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=184,lastRule=java.util.SimpleTimeZone[id=Europe/Paris,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]


    je joint aussi le script du schedule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     <script type="text/javascript">
            PrimeFaces.locales ['fr'] = {
            closeText: 'Fermer',
            prevText: 'Précédent',
            nextText: 'Suivant',
            monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ],
            monthNamesShort: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc' ],
            dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
            dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
            dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
            weekHeader: 'Semaine',
            firstDay: 1,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix:'',
            timeOnlyTitle: 'Choisir l\'heure',
            timeText: 'Heure',
            hourText: 'Heures',
            minuteText: 'Minutes',
            secondText: 'Secondes',
            currentText: 'Maintenant',
            ampm: false,
            month: 'Mois',
            week: 'Semaine',
            day: 'Jour',
            allDayText: 'Toute la journée'
            };
            </script>
    le AMPM est bien a FALSE

    c'est chouette de vous savoir sur ce forum

  5. #5
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    regarde ma réponse que j'ai faite dans l'intervalle, juste au dessus la tienne, concernant DateUtils

  6. #6
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    regarde ma réponse que j'ai faite dans l'intervalle, juste au dessus la tienne, concernant DateUtils
    Alors effectivement il y avait un problème de conversion voila ce que donne le nouveau code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     public Date ajoutDeHeure(Date dateRef,Date heure){
          Date dateFinal = new Date();
     
         int i = (int) DateUtils.getFragmentInHours(heure, Calendar.DAY_OF_YEAR);
         dateFinal = DateUtils.setHours(dateRef,i);
     
          return dateFinal;
    En plus c'est bcp plus léger

    maintenant j'ai toujours le souci des une heure de décallage je lui met 14 H il me le place à 13H et les dates en entrée sont bonnes

    merci pour ton aide

  7. #7
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    dans ta partie JAVA est-ce que tu peux debugguer pour voir si la date finale contient la bonne heure, comme ça on isolerait le problème entre la partie purement "Date" de la partie "affichage PrimeFaces".

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

Discussions similaires

  1. Crystal report image move and resize
    Par CLion dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 08/09/2014, 01h57
  2. Primefaces Shedule slotMinute
    Par luperrot dans le forum JSF
    Réponses: 5
    Dernier message: 23/04/2012, 13h47
  3. composant move resize
    Par tintin62 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2009, 13h05
  4. Resize d'une image
    Par Anonymous dans le forum C
    Réponses: 6
    Dernier message: 13/07/2008, 22h23
  5. add int
    Par Bernybon dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/02/2004, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo