2010-05-25 7 views
4

Selon mon exigence, j'ai écrit un panneau personnalisé qui affichera trois ListBoxes pour permettre à l'utilisateur de sélectionner la date de ces boîtes de liste personnalisées.Ces trois zones de liste sont responsables de montrer valeur du mois, du jour et de l'année. Maintenant, je voudrais faire mes trois boîtes de liste sont modifiables et en même temps sélectionnables. Je veux dire que je voudrais fournir un utilisateur préférences que cette date peut être modifiable et en même temps sélectionnable. Comment puis-je faire cela dans GWT. Ici, j'utilise GWT2.0. Quelqu'un s'il vous plaît donner une idée.Comment faire une boîte de liste modifiable GWT une partie de la sélection

Répondre

2

Un navigateur ne fournit pas un tel contrôle. GWT non plus. Vous devrez coder votre propre. EXT-GWT (non libre) ComboBox a cette fonctionnalité. http://www.extjs.com/examples/ Il en va de GWT intelligente (pas non plus gratuit) http://www.smartclient.com/smartgwt/showcase/#styled_combobox_category

Si vous deviez rouler votre propre, vous commencez par un composé qui a une zone de texte et un VerticalPanel qui apparaît lorsque une zone de texte (ou une partie de celui-ci) est cliqué. Votre panneau contiendrait les éléments cliquables.

1

Vous pouvez le faire en utilisant un SuggestBox au lieu de la zone de liste. Mais l'utilisateur devrait commencer à taper pour afficher la liste.

0

Vous pouvez utiliser le panneau absolu pour obtenir le même résultat ... Voici l'extrait de code ci-dessous.

Masquer la selectbox en utilisant textbox ajuster la largeur et l'emplacement de sorte qu'il textbox devrait couvrir la liste déroulante ...

final AbsolutePanel absolute_panel_edit_list = new AbsolutePanel(); 
final TextBox onhold_textbox = new TextBox(); 
final ListBox onhold = new ListBox(); 

for (int onholdcount = 0; onholdcount < onHoldTypes.length; onholdcount++) 
{ 
    onhold.addItem(onHoldTypes[onholdcount]); 
} 

onhold.addKeyPressHandler(new KeyPressHandler() 
{  
    @Override 
    public void onKeyPress(KeyPressEvent event) 
    { 
     onhold_textbox.setStyleName("onhold_textbox"); 
     absolute_panel_edit_list.add(onhold,0,8); 
     absolute_panel_edit_list.add(onhold_textbox,1,10); 
     absolute_panel_edit_list.setSize("142px", "35px"); 

     flex_row4.removeCell(4, 9); 
     flex_row4.setWidget(4, 9, absolute_panel_edit_list); 
     onhold_textbox.addMouseOutHandler(new MouseOutHandler() 
     {   
     @Override 
     public void onMouseOut(MouseOutEvent event) 
     { 
      String customized_time = onhold_textbox.getText(); 
      int no_of_elements = onhold.getItemCount(); 
      onhold.addItem(customized_time); 
      onhold.setSelectedIndex(no_of_elements); 
      flex_row4.removeCell(4, 9); 
      flex_row4.setWidget(4, 9, onhold); 
      flex_row4.setWidget(4, 11, completed_togglebutton); 
      flex_row4.setWidget(4, 13, completed_label);  
     } 
     }); 
    } 
}); 
Questions connexes