2010-10-19 17 views
0

Ceci est mon code de travail. Ce que je pensais faire, est d'ajouter quelques cases à cocher, et sélectionnez une option dans la zone de liste. Cette option est appliquée aux valeurs cochées, après avoir cliqué sur le bouton Appliquer, de préférence un appel asynchrone. est-ce possible? J'ai essayé quelques choses comme définir un écouteur pour le bouton, puis essayer d'obtenir les valeurs cochées, et lancer une requête, ou simplement les sortir.Sélectionnez une action dans la liste, exécutez-la sur les valeurs cochées dans GWT

public void onModuleLoad() { 

    VerticalPanel panel = new VerticalPanel(); 
    Button applyButton = new Button("Apply"); 
    ListBox box = new ListBox(false); 

    CheckBox cb = new CheckBox(); 
    TabPanel tabpanel = new TabPanel(); 
    FlowPanel flowpanel; 

    flowpanel = new FlowPanel(); 
    flowpanel.setSize("500px", "250px"); 
    flowpanel.add(cb); 

    tabpanel.add(flowpanel, "All"); 

    flowpanel = new FlowPanel(); 
    tabpanel.add(flowpanel, "Active"); 

    flowpanel = new FlowPanel(); 
    tabpanel.add(flowpanel, "In-active"); 

    tabpanel.selectTab(0); 
    tabpanel.setSize("500px", "250px"); 

    box.addItem("Set Active"); 
    box.addItem("Set In-Active"); 


    panel.add(box); 
    panel.add(applyButton); 
    panel.add(tabpanel); 

    RootPanel.get().add(panel); 

} 

Merci.

Répondre

1

Quelque chose comme ça? Rassembler l'option sélectionnée ainsi que les éléments sélectionnés pour envoyer ces valeurs pour le traitement au serveur (faire dans la méthode onClick):

public void onModuleLoad() { 
     final CheckBox[] items = new CheckBox[3]; 
     items[0] = new CheckBox("item 1"); 
     items[1] = new CheckBox("item 2"); 
     items[2] = new CheckBox("item 3"); 
     final ListBox options = new ListBox(); 
     Button apply = new Button("apply"); 
     FlowPanel panel = new FlowPanel(); 
     panel.add(items[0]); 
     panel.add(items[1]); 
     panel.add(items[2]); 
     panel.add(options); 
     panel.add(apply); 

     options.addItem("option 1"); 
     options.addItem("option 2"); 

     apply.addClickHandler(new ClickHandler() { 

      @Override 
      public void onClick(ClickEvent event) { 
       String selectedOption = options.getValue(options.getSelectedIndex()); 
       System.out.print("Apply " + selectedOption 
         + " to: "); 
       for (CheckBox checkBox : items) { 
        if (checkBox.getValue()) { 
         System.out.print(checkBox.getText()); 
        } 
       } 
       System.out.println(); 
      } 
     }); 

     RootPanel.get().add(panel); 
    } 

ou si les ListBox contiennent l'action (un coup d'oeil à l'interface Command de GWT) qui devrait être appliqué sur les cases à cocher sélectionnées?

+0

ouais, ça devrait le faire. mais est-il nécessaire d'utiliser array? Mes cases à cocher seront remplies en fonction des résultats d'une requête. Et si je n'utilise pas un tableau, comment puis-je itérer sur les cases à cocher? – theTuxRacer

+1

utiliser une liste: 'LinkedList items = new LinkedList ();'. La boucle foreach fonctionne exactement de la même manière. – z00bs