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 :

[iceFaces]Tri de colonne sans SortableList ?


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 22
    Par défaut [iceFaces]Tri de colonne sans SortableList ?
    Bonjour,
    J'ai un petit problème pour trier mes colonnes avec une dataTable de iceFaces.
    Après avoir écumé les forum et le site de démo d'iceFaces, j'ai compris que si l'on voulais trier une colonne d'une dataTable, il fallait une classe abstraite SortableList.
    Cette classe abstraite contient une procédure sort() qui permet de classer les éléments si j'ai bien compris et une fonction isAscending() qui renvoie un booléen pour définir le sens de classement.

    Mon problème c'est que ma page dans lequel se trouve mon code et donc l'endroit ou je devrais redéfinir les fonctions abstraite hérite déjà d'un autre classe (AbstractPageBean).

    J'ai essayé de définir les fonctions dans la classe SortableList en enlevant le "abstract" mais ensuite c'est pour l'appel dans le JSP où j'ai un problème car il ne voie ma classe et donc je ne peux pas binder ma dataTable avec les fonctions de classement.

    Voila un peu de code pour visualiser le truc,
    sort () et isAscending :
    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
    /**
         * Sort the list.
         */
        public void sort(){
            Comparator comparator = new Comparator() {
    			public int compare(Object o1, Object o2) {
    				Ical c1 = (Ical) o1;
    				Ical c2 = (Ical) o2;
    				if (sortColumnName == null) {
    					return 0;
    				}
    				if (sortColumnName.equals("Salle")) {
    					return ascending ? c1.getLoc().compareTo(
    							c2.getLoc()) : c2.getLoc()
    							.compareTo(c1.getLoc());
     
    				}
    				if (sortColumnName.equals("Début")) {
    					return ascending ? c1.getDtstart()
    							.compareTo(c2.getDtstart())
    							: c2.getDtstart()
    									.compareTo(c1.getDtstart());
    				} else
    					return 0;
    			}
    		};
     
     
        }
     
        /**
         * Is the default sortColumnName direction for the given column "ascending" ?
         */
        public boolean isDefaultAscending(String sortColumn){
            return true;
        }
    L'appel dans le JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <ice:dataTable binding="#{Page1.dataTable2}" id="dataTable2" rowClasses="evenRow,oddRow" rows="6" sortAscending="#{? ? ?}"
                            sortColumn="#{? ? ?}" style="left: 80px; top: 0px; position: absolute" value="#{Page1.lst}" var="ical">
    <ice:column id="column3" style="width: 200px; height: 150px">
                                <ice:outputText escape="false" id="outputText7" style="text-align: center; font: 30px Arial, Verdana;" value="#{ical.dtstart}"/>
                                <f:facet name="header">
                                    <ice:commandSortHeader columnName="Début" id="debutHeader">
                                        <ice:outputText id="outputText8" style="text-align: center; font: 20px Arial, Verdana;" value="Début"/>
                                    </ice:commandSortHeader>
                                </f:facet>
                            </ice:column>
    Pour la classe SortableList je l'ai récupérer ici tuto icefaces

    Merci d'avance pour votre aide et n'hésité pas à demander des précisions si vous trouvez que je n'ai pas été assez clair.
    =)

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    T'as pas besoin d'une SortableList, personellement j'utilise une simple List

    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
     
    	/**
             * Sort the gived list
             * 
             * @param list
             *            The list to sort
             * @return List<Affaire> returns a sorted list of Affaire
             */
    	private List<Affaire> sortList(List<Affaire> list) {
    		if (this.sortBy.equals("no")) {
    			if (this.descending == true) {
    				/**
                                     * Compares its two arguments for order. Returns a negative
                                     * integer, zero, or a positive integer as the first argument is
                                     * less than, equal to, or greater than the second.
                                     * <p>
                                     */
    				Collections.sort(list, new Comparator<Affaire>() {
    					public int compare(Affaire a1, Affaire a2) {
    						return String.valueOf(a1.getNoAffaire())
    								.compareToIgnoreCase(
    										String.valueOf(a2.getNoAffaire()));
    					}
    				});
     
    			} else {
    				Collections.sort(list, new Comparator<Affaire>() {
    					public int compare(Affaire a1, Affaire a2) {
    						return -(String.valueOf(a1.getNoAffaire())
    								.compareTo(String.valueOf(a2.getNoAffaire())));
    					}
    				});
    			}
    		} 
    ...

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 22
    Par défaut
    Merci pour l'info
    Comme je n'arrivais pas a m'en sortir avec une table sortable, je l'ai trié à la main avant de l'afficher vu que je travaille sur une interface visuelle sans interaction. ^^

    J'essayerais cette méthode quand j'aurais le temps quand même.
    Merci encore.

Discussions similaires

  1. [XL-2007] Tri par colonne sans modifier les lignes associées
    Par babou466 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/09/2012, 18h50
  2. [XL-2007] Tri de Colonne sans permutation
    Par alexis41 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2010, 06h05
  3. Réponses: 7
    Dernier message: 20/03/2009, 11h09
  4. Tri des colonnes d'une DBGRID
    Par Atrebate62 dans le forum Bases de données
    Réponses: 3
    Dernier message: 31/05/2004, 12h20
  5. tri a bulle sans les doublons
    Par comme de bien entendu dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 10/03/2003, 16h29

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