Portée des composants GXT
Bonjour,
Je suis débutant en GWT , donc vous sera surement surpris par la stupidité de mon codage.
Voilà , je veux mettre en place une grid GXT qui permet d'être personnalisé via un model , le probleme est que je veux charger mes données ( une table ) depuis la base de donnée via une methode qui comporte la requete, l'ors de l'appelle de cette methode (getAll() ) la liste des customers ( table ) est bien remplie car qu'on je fais un System.out.println() ça m'affiche une donnée d'un indice donné.
Maintenant je veux affecter cette liste à ma grid, hors la grid n'est pas reconnu dans le Handler du boutton qui permet de charger les données , IntellijIDEA (l'IDE avec le quel je travaille me demande de mettre la Grid en Final , si je fais ça , alors je ne peux plus mettre le new ... bon je vous montre le code.
à savoir que j'ai pensé à mettre le tous dans la methode de Handler mais si je veux mettre ' this.add(grd) ( grd = Grid ) et this c'est la classe qui hérite de LayoutContainer et qui comporte tous le traitement , mais si je met this il m'affiche une erreur comme quoi le this n'est pas reconnu au sein de la methode Handler .. que faire ! ne vous souciez pas du code qui permet de récuperer les données il est bien fonctionnel mais en revanche comment appliquer ceci à la grid .. voilà la classe qui traite tous ça :
Code:
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
| public class CustomerGridPanel extends LayoutContainer
{
Grid<CustomersBean> m_grdPersonModel = null;
ListStore<CustomersBean> m_lstPersonModel = null;
Button m_btn = null;
public CustomerGridPanel ()
{
final List<ColumnConfig> configs = new ArrayList<ColumnConfig> ();
ColumnConfig column = new ColumnConfig ();
column.setId ("Id");
column.setHeader (KeysI.KSTR_CUSTOMER_ID_HEADER);
column.setWidth (200);
TextField<String> text = new TextField<String> ();
text.setAllowBlank (false);
column.setEditor (new CellEditor (text));
configs.add (column);
column = new ColumnConfig ();
column.setId ("first");
column.setHeader (KeysI.KSTR_CUSTOMER_FIRSTNAME_HEADER);
column.setWidth (150);
text = new TextField<String> ();
text.setAllowBlank (false);
column.setEditor (new CellEditor (text));
configs.add (column);
column = new ColumnConfig ();
column.setId ("last");
column.setHeader (KeysI.KSTR_CUSTOMER_LASTNAME_HEADER);
column.setWidth (100);
text = new TextField<String> ();
text.setAllowBlank (false);
column.setEditor (new CellEditor (text));
configs.add (column);
column = new ColumnConfig ();
column.setId ("name");
column.setHeader (KeysI.KSTR_CUSTOMER_NAME_HEADER);
column.setWidth (100);
text = new TextField<String> ();
text.setAllowBlank (false);
column.setEditor (new CellEditor (text));
configs.add (column);
column = new ColumnConfig ();
column.setId ("phone");
column.setHeader (KeysI.KSTR_CUSTOMER_PHONE_HEADER);
column.setWidth (100);
text = new TextField<String> ();
text.setAllowBlank (false);
column.setEditor (new CellEditor (text));
configs.add (column);
column = new ColumnConfig ();
column.setId ("adresse");
column.setHeader (KeysI.KSTR_CUSTOMER_ADRESSE_HEADER);
column.setWidth (100);
text = new TextField<String> ();
text.setAllowBlank (false);
column.setEditor (new CellEditor (text));
configs.add (column);
column = new ColumnConfig ();
column.setId ("city");
column.setHeader (KeysI.KSTR_CUSTOMER_CITY_HEADER);
column.setWidth (100);
text = new TextField<String> ();
text.setAllowBlank (false);
column.setEditor (new CellEditor (text));
configs.add (column);
// chargement des buttons
m_btn = new Button (" charger ");
this.add (m_btn);
// chargement des données
m_lstPersonModel = new ListStore<CustomersBean> ();
m_btn.addClickHandler (new ClickHandler ()
{
String str = "";
public void onClick ( ClickEvent event )
{
MyGridApplicationService.App.getInstance ().getAll (new AsyncCallback<ArrayList<CustomersBean>> ()
{
public void onFailure ( Throwable caught )
{
//To change body of implemented methods use File | Settings | File Templates.
}
public void onSuccess ( ArrayList<CustomersBean> result )
{
//To change body of implemented methods use File | Settings | File Templates.
if (result != null) {
// for ( int i = 0; i < result.size (); i++ ) {
// adresse.setText (result.get (i).getCity ());
// m_lstPersonModel = new ListStore<CustomersBean> ();
m_lstPersonModel.add (new CustomersBean (result.get (5).getCustomerNumber (), result.get (5).getCustomerName (),
result.get (5).getContactLastName (), result.get (5).getContactFirstName (),
result.get (5).getPhone (), result.get (5).getAddressLine1 (), result.get (5).getCity ()));
System.out.println (m_lstPersonModel.getAt (1).getContactFirstName ());
System.out.println ("Liste result " + result.isEmpty ());
}
}
});
}
});
// fin de chargement
ColumnModel columnModel = new ColumnModel (configs);
columnModel.getColumn (0).setStyle ("background-image:url('cell.png');color:white;");
columnModel.getColumn (1).setStyle ("background-image:url('cell.png');color:white;");
columnModel.getColumn (2).setStyle ("background-image:url('cell.png');color:white;");
final RowEditor<CustomersBean> re = new RowEditor<CustomersBean> ();
m_grdPersonModel = new Grid<CustomersBean> (m_lstPersonModel, columnModel);
m_grdPersonModel.setAutoExpandColumn (KeysI.KSTR_CUSTOMER_NUMBER);
m_grdPersonModel.setBorders (false);
m_grdPersonModel.setStyleAttribute ("borderTop", "none");
m_grdPersonModel.setStripeRows (true);
m_grdPersonModel.setColumnLines (true);
m_grdPersonModel.setColumnReordering (true);
this.add (m_grdPersonModel);
}
} |
CustomerBean est la classe qui mappe vers la table ..
à savoir que l'or de l'execution , la grid est bien afficher avec l'entête mais quand je clique sur le boutton ça ne m'affiche rien ( normal j'ai rien mis dedans sauf un simple system.out.println().. bref .!
J'aimerais que quelqu'un me répond svp c'est urgent .
Merci d'avance pour votre future aide..