Hello,

I have a dialog class inherited from DialogBox and using UiBinder template 
as the widget for it, which is set in the constructor 
setWidget(uiBinder.createAndBindUi(this)). When the a dialog class instance 
is shown using the center() method, the dialog is shown but it is not 
properly centered, the top left corner of the dialog is at the exact center 
of the browser window. If the same instance is shown second time, only then 
it is centered as it should.

Second problem I have encountered is that I am not able to get DataGrid 
sorting working programmatically. With the below code the DataGrid appears 
with showing a list of usernames. The DataGrid header shows the sorting 
triangle pointing upwards as if it were sorted, but the rows are in the 
order as they were in the original list. However if the sorting triangle is 
clicked on the header, the sorting works as it should. It's just that it 
does not work when sorted programmatically.

*public* *class* AdministrationView *extends* Composite {


  *private* *static* AdministrationViewUiBinder *uiBinder* = GWT.*create*
(AdministrationViewUiBinder.*class*);

 *interface* AdministrationViewUiBinder *extends* UiBinder<Widget, 
AdministrationView> {}


   *private* TextColumn<User> tableColumn;

 *private* Header<String> tableHeader;

 *private* ListDataProvider<User> tableDataProvider;

 *private* ListHandler<User> tableListHandler;


  @UiField(provided = *true*) DataGrid<User> adminUsersTable;


   *public* AdministrationView() {

 setUpAdminUsersTable();

 initWidget(*uiBinder*.createAndBindUi(*this*));

  }


   *public* *void* setAdminUserList(List<User> adminList) {

 tableDataProvider.getList().clear();

 tableDataProvider.getList().addAll(adminList);

 *if*(tableListHandler == *null*) {

 tableListHandler = *new* ListHandler<User>(tableDataProvider.getList());

 tableListHandler.setComparator(tableColumn, *new* 
User.UsernameComparator());

 adminUsersTable.addColumnSortHandler(tableListHandler);

 }

 adminUsersTable.getColumnSortList().push(tableColumn);

 }

 
   *private* *void* setUpAdminUsersTable() {

 adminUsersTable = *new* DataGrid<User>();

 adminUsersTable.setSize("100%", "100%");

 tableColumn = *new* TextColumn<User>() {

 @Override

 *public* String getValue(User object) {

 *return* object.username;

 }

 };

 tableColumn.setSortable(*true*);

 tableHeader = *new* Header<String>(*new* TextCell()) {

 @Override

 *public* String getValue() {

 *return* "User accounts";

 }

 };

 adminUsersTable.addColumn(tableColumn, tableHeader);

 adminUsersTable.setColumnWidth(0, 100, Unit.*PCT*);

 tableDataProvider = *new* ListDataProvider<User>();

 tableDataProvider.addDataDisplay(adminUsersTable);

 }

}


*public* *class* User {


  *public* *static* *class* UsernameComparator *implements* 
Comparator<User> {

 @Override

 *public* *int* compare(User u1, User u2) {

 String name1 = u1 == *null* ? *null* : u1.username; 

 String name2 = u2 == *null* ? *null* : u2.username; 

 name1 = name1 == *null* ? "" : name1;

 name2 = name2 == *null* ? "" : name2;

 *return* name1.compareToIgnoreCase(name2);

 }

 }


  *public* Long userId;

 *public* String username;

}


 

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to