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

Wicket Java Discussion :

pb avec les tab


Sujet :

Wicket Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 30
    Par défaut pb avec les tab
    je souhaite réaliser une page composée comme suit:
    - un premier tab contenant les information (nom, prénom, date de naissance...) d'une personne X
    - un deuxième tab contenant la liste des e-mails de la personne X
    - un bouton da validation permettant de sauvgarder les informations du premier et deuxième tab à la foi!
    ...

    mon problème c'est que j'ai essayé de passer mon bean de la page principale vers les tabs, mais je ne sé pa comment récupérer les modifications??????

    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
     
     
      public DetailPersonne(Final Personne personne)
      {
    	List tabs = new ArrayList();
        tabs.add(new AbstractTab(new Model("informations gen"))
        {
    	public Panel getPanel(String panelId)
          {
              return new TabPanel1(panelId, personne);
     
          }
     
        });
     
        tabs.add(new AbstractTab(new Model("liste des mails"))
        {
          public Panel getPanel(String panelId)
          {
            return new TabPanel2(panelId, personne);
          }
        });
    estce que qq1 peut m'aider à trouver une solution à ce problème ou à trouver un exemple semblable?
    merci d'avance!

  2. #2
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    salut

    je ne me suis jamais servi des tabs donc sur le détail ça va être un peu dur.

    Quel est ton niveau de wicket ? As tu déjà fait des formulaires ?

    En effet, il faudrait que tu englobes le tout dans un formulaire (genre add( new Form<Personne>("PersonneForm")). Regarde par exemple par ici pour avoir un exemple : http://wicket.apache.org/exampleguestbook.html Si c'est ta première fois il faudrait sans doute mieux commencer par quelque chose de simple.

    D'ailleurs ce serait l'occasion de mettre en oeuvre les atouts de wicket : tu pourrais commencer avec l'édition des informations de la personne, dans un tout bête panel inclu dans un formulaire, puis après réutiliser ce panel dans tes tabs et enchainer sur les autres tabs

  3. #3
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Essaies surtout de te familiariser avec les modèles de Wicket
    http://djo-mos.developpez.com/tutori...xplore-models/

  4. #4
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 30
    Par défaut
    merci pour votre réponse;
    en effet, le premier tab contient déjà un formulaire pour la saisie des données nom, prénom...
    mon problème est avec la deuxième partie: la liste des e-mails. en d'autres termes, j'ai pa pu récupérer la liste modifiée des e-mails à partir du deuxième tab pour valider la saisie (formulaire du premier tab).
    ou doit-je tout inclure dans une seule page!
    pouvez vous m'aider à trouver un exemple où le bean principal contient une liste d'un autre bean!

    merci d'avance !

  5. #5
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Peux tu nous montrer un peu de code si possible ?

  6. #6
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 30
    Par défaut
    salut,
    enfin, g opté pour la solution de tt mettre dans une seule page:
    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
    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
     
    public class DetailMvtPage extends WebPage {
    	@SpringBean(name = "stockService")
    	private IStockService stockService;
    	private List<LigneMouvementStock> alllignesMvtStock;
     
    	public List<LigneMouvementStock> getAlllignesMvtStock() {
    		return alllignesMvtStock;
    	}
     
    	public void setAlllignesMvtStock(List<LigneMouvementStock> alllignesMvtStock) {
    		this.alllignesMvtStock = alllignesMvtStock;
    	}
     
    	public DetailMvtPage(MouvementStock mouvementStock) {
    		super();
    		setOutputMarkupId(true);
    //déclarer une form qui englobe le tout
    	Form form = new Form("form",new Model(mouvementStock)){
    	/**
                     * 
                     */
    		private static final long serialVersionUID = 1L;
     
    	/**
             * 
             */
     
    	List<String> typesMvts = Arrays.asList("Entrée", "Sortie");
    	form.add(new DropDownChoice("typeMouvement",
    			new PropertyModel(form.getModelObject(),"typeMouvement"),
    			typesMvts));
    	form.add(new TextField("dateMouvement",new PropertyModel(form.getModelObject(),"dateMouvement")));
    	List<String> typesPieces = Arrays.asList(" ", "BL","BS");
    	form.add(new DropDownChoice("typePieceJointe",
    			new PropertyModel(form.getModelObject(),"typePieceJointe"),
    			typesPieces));
    	form.add(new TextField("numPieceJointe",new PropertyModel(form.getModelObject(),"numPieceJointe")));
    	System.out.println("avant création panel");
    	System.out.println(mouvementStock.getTypeMouvement());
    	alllignesMvtStock =  stockService.getAlllignesMvtStock(mouvementStock);
     
    	//la liste des lignes mouvement sera un composant du form
    	form.add(new ListView("LignesMouvement", alllignesMvtStock) {
    		/**
                     * 
                     */
    		private static final long serialVersionUID = 1L;
     
    		// This method is called for each 'entry' in the list.
    		@Override protected void populateItem(ListItem item) {
    			LigneMouvementStock ligneMouvementStock = (LigneMouvementStock)item.getModelObject();
    			List<Long> gammeArticle = Arrays.asList(new Long(4));
    			item.add(new DropDownChoice("gammeArticle",
    					new PropertyModel(ligneMouvementStock,"gammeArticle"),
    					gammeArticle));
    			item.add(new AjaxEditableLabel("taille", new PropertyModel(ligneMouvementStock,"taille")));
    			item.add(new AjaxEditableLabel("quantite", new PropertyModel(ligneMouvementStock,"quantite")));
    			item.add(new AjaxEditableLabel("notes", new PropertyModel(ligneMouvementStock,"notes")));
     
     
    		}		
    	});
    	form.add(new AjaxLink("createLigneMvt") {
     
    			@Override
    			public void onClick(AjaxRequestTarget target) {
    				alllignesMvtStock.add(new LigneMouvementStock());
    				alllignesMvtStock.get(alllignesMvtStock.size()-1).setId(new Long(1));
    				if (target != null) {
    					target.addComponent(DetailMvtPage.this);
    				}
    			}
     
    		});
    	add(form);
    	}
     
    	public void setStockService(IStockService stockService) {
    		this.stockService = stockService;
    	}
     
    	public IStockService getStockService() {
    		return stockService;
    	}
    	private static final long serialVersionUID = 1L;
    }
    voici l'action du submit:
    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
     
    	@Override
    	public void onSubmit() {
    		MouvementStock mouvementStock = (MouvementStock) getModelObject();
    //associer la liste créée des lignes à mon bean principal
    	mouvementStock.setLigneMouvementStock(new HashSet<LigneMouvementStock>());
    		for(int i =0;i<alllignesMvtStock.size();i++)
    			mouvementStock.getLigneMouvementStock().add(alllignesMvtStock.get(i));
     
    //sauvgarder dans la base de données
     
    		stockService.saveMouvementStock(mouvementStock);
    		setResponsePage(MvtStockPage.class);
    	} 
    	};
    maintenant ma page est construite, mais :
    -la sauvegarde ne s'effectue pas
    - si je clique sur le lien "createLigneMvt", une nouvelle ligne est créée mais la valeur de "gammeArticle" de l'ancienne ligne est supprimée!!!!!!!!!!

Discussions similaires

  1. Problème avec le <tab> et les listeners
    Par bygui dans le forum Composants
    Réponses: 1
    Dernier message: 09/08/2010, 10h55
  2. [Dojo] onglets et les tab panel
    Par sousoujda2 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 02/04/2008, 12h58
  3. ATLAS erreur avec les tabs
    Par moumoune65 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/12/2007, 11h58
  4. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

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