Tuesday, October 4, 2011

DataGrid Pagination Problem

Hi I m getting the following error can anyone please help me in
resolving and getting a proper pagination flow, on clicking of the
paginate icon. below is the code I have been trying to use and the
exception I'm getting :

Exception :
===========

11:17:33.939 [ERROR] [myapps] Unable to load module entry point class
com.apps.app1.client.Myapps (see associated exception for details)

java.lang.NullPointerException: null
at
com.google.gwt.user.client.ui.HTMLPanel.addAndReplaceElement(HTMLPanel.java:
197)
at
com.apps.app1.client.GridData_GridDataUiBinderImpl.createAndBindUi(GridData_GridDataUiBinderImpl.java:
37)
at
com.apps.app1.client.GridData_GridDataUiBinderImpl.createAndBindUi(GridData_GridDataUiBinderImpl.java:
1)
at com.apps.app1.client.GridData.<init>(GridData.java:61)
at com.apps.app1.client.Myapps.onModuleLoad(Myapps.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:
396)
at
com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:
200)
at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:
525)
at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:
363)
at java.lang.Thread.run(Thread.java:619)


The GridData.java file
==================

package com.apps.app1.client;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

import com.apps.app1.client.Contact.Category;
import com.google.gwt.cell.client.CheckboxCell;
import com.google.gwt.cell.client.DateCell;
import com.google.gwt.cell.client.EditTextCell;
import com.google.gwt.cell.client.FieldUpdater;
import com.google.gwt.cell.client.NumberCell;
import com.google.gwt.cell.client.SelectionCell;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.DataGrid;
import com.google.gwt.user.cellview.client.Header;
import com.google.gwt.user.cellview.client.SafeHtmlHeader;
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.user.cellview.client.TextColumn;
import
com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
import
com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
import com.google.gwt.user.cellview.client.SimplePager.TextLocation;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SingleSelectionModel;

public class GridData extends Composite {

private static GridDataUiBinder uiBinder = GWT
.create(GridDataUiBinder.class);

interface GridDataUiBinder extends UiBinder<Widget, GridData> {
}

@UiField(provided = true)
DataGrid<Contact> table;
@UiField(provided = true)
SimplePager pager1;

public GridData() {

table = new DataGrid<Contact>();
SimplePager.Resources pagerResources =
GWT.create(SimplePager.Resources.class);
SimplePager pager1 = new SimplePager(TextLocation.CENTER,
pagerResources, false, 0, true);
pager1.setDisplay(table);
initWidget(uiBinder.createAndBindUi(this));
table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
/*DockLayoutPanel mainPanel = new DockLayoutPanel(Unit.EM);
VerticalPanel panel = new VerticalPanel();
panel.setBorderWidth(5);
panel.setTitle("North");
VerticalPanel panel1 = new VerticalPanel();
panel.setBorderWidth(5);
panel1.setTitle("East");
VerticalPanel panel2 = new VerticalPanel();
panel.setBorderWidth(5);
panel2.setTitle("West");
VerticalPanel panel3 = new VerticalPanel();
panel.setBorderWidth(5);
panel2.setTitle("South");

mainPanel.insertNorth(panel, 10.0, null);
mainPanel.insertWest(panel1, 10.0, null);
mainPanel.insertEast(panel2, 10.0, null);
*/


table.setWidth("100%");
final ListDataProvider<Contact> dataProvider = new
ListDataProvider<Contact>();
dataProvider.addDataDisplay(table);

String[] categoryArray = new String[]
{"Jack","Ron","Hermaine","Harry","Voldermort"};
final Category[] categories = new Category[categoryArray.length];
for(int i = 0 ; i< categoryArray.length; i++)
{
categories[i] = new Category(categoryArray[i]);
}
List<Contact> CONTACTS = dataProvider.getList();
Contact contact = new Contact();
CONTACTS = contact.getContacts();

Column<Contact, Number> ageColumn = new Column<Contact, Number>(new
NumberCell()) {

@Override
public Integer getValue(Contact object) {
// TODO Auto-generated method stub
return object.age;
}
};

List<String> categoryName = new ArrayList<String>();
for(Category category : categories){

categoryName.add(category.getDisplayName());
}
SelectionCell selectionCell = new SelectionCell(categoryName);
Column<Contact, String> categoryColumn = new Column<Contact,
String>(selectionCell) {

@Override
public String getValue(Contact object) {
// TODO Auto-generated method stub
return object.category.getDisplayName();
}
};
table.setColumnWidth(categoryColumn, 40.0, Unit.PX);
table.addColumn(categoryColumn, "category", "Category");
Header<String> ageFooter = new Header<String>(new EditTextCell()) {
@Override
public String getValue() {
List<Contact> items = table.getVisibleItems();
if (items.size() == 0) {
return "";
} else {
int totalAge = 0;
for (Contact item : items) {
totalAge += item.age;
}
return "Avg: " + totalAge / items.size();
}
}
};
table.setColumnWidth(ageColumn, 40.0, Unit.PX);
table.addColumn(ageColumn, new
SafeHtmlHeader(SafeHtmlUtils.fromSafeConstant("Age")), ageFooter);

ListHandler<Contact> sortHandler = new
ListHandler<Contact>(dataProvider.getList());
table.addColumnSortHandler(sortHandler);

Column<Contact, String> nameColumn = new Column<Contact, String>(new
EditTextCell()) {

@Override
public String getValue(Contact object) {
// TODO Auto-generated method stub
return object.name;
}
};
nameColumn.setSortable(true);
sortHandler.setComparator(nameColumn, new Comparator<Contact>() {
public int compare(Contact o1, Contact o2) {
return -((o1.name).compareTo(o2.name));
}
});

table.addColumn(nameColumn, "Name", "Name");
nameColumn.setFieldUpdater(new FieldUpdater<Contact, String>() {

@Override
public void update(int index, Contact object, String value) {
// TODO Auto-generated method stub
object.name = value;
dataProvider.refresh();
}
});
table.setColumnWidth(nameColumn, 60.0, Unit.PX);
TextColumn<Contact> addressColumn = new TextColumn<Contact>() {

@Override
public String getValue(Contact object) {
// TODO Auto-generated method stub
return object.address;
}
};
addressColumn.setSortable(true);
addressColumn.setFieldUpdater(new FieldUpdater<Contact, String>() {

@Override
public void update(int index, Contact object, String value) {
// TODO Auto-generated method stub
object.address = value;
dataProvider.refresh();
}
});
table.setColumnWidth(addressColumn, 70.0, Unit.PX);
table.addColumn(addressColumn, "Address", "Address");

DateCell dateCell = new DateCell();
Column<Contact, Date> dateColumn = new Column<Contact,
Date>(dateCell) {

@Override
public Date getValue(Contact object) {
// TODO Auto-generated method stub
return object.birthday;

}
};
table.setColumnWidth(dateColumn, 40.0, Unit.PX);
table.addColumn(dateColumn, "Date", "Birthday");
/*final SelectionModel<Contact> selectionModel12 = new
MultiSelectionModel<Contact>();
table.setSelectionModel(selectionModel12,
DefaultSelectionEventManager.<Contact>createCheckboxManager());*/
final SingleSelectionModel<Contact> selectionModel1 = new
SingleSelectionModel<Contact>();
table.setSelectionModel(selectionModel1);
selectionModel1.addSelectionChangeHandler(new
SelectionChangeEvent.Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
// TODO Auto-generated method stub
Contact selected = selectionModel1.getSelectedObject();
if(selected != null)
{
final DialogBox box = new DialogBox();
box.setAnimationEnabled(true);
box.setHTML(selected.name);
box.setText(selected.name);
VerticalPanel w = new VerticalPanel();
//w.setSize("5px", "10px");
w.setBorderWidth(1);
/*Image image = new Image("D:\\checkout1\\rocro-modularization\
\rocro-web\\rocro-entrypoint\\target\\rocro-entrypoint\
\com.subex.rocro.web.app.ROCroApplication\\resources\\common\\icons\
\ol_close.png");
image.addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
// TODO Auto-generated method stub
box.hide();
}
});
image.setSize("50px", "30px");
w.add(image)*/
w.add(new Button("Close IT", new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
// TODO Auto-generated method stub
box.hide();
}
}));
w.setTitle(selected.name);
box.setPopupPosition(350, 100);
box.add(w);
box.show();
}
}
});
Column<Contact, Boolean> checkColumn = new Column<Contact,
Boolean>(new CheckboxCell(true, false)) {

@Override
public Boolean getValue(Contact object) {

return selectionModel1.isSelected(object);
}
};
table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/
>"));
table.setColumnWidth(checkColumn, 40, Unit.PX);
table.setVisibleRange(0, 13);
table.setRowCount(CONTACTS.size(), true);
table.setRowData(0, CONTACTS);
/*mainPanel.insertSouth(pager, 10.0, null);
VerticalPanel panel4 = new VerticalPanel();
panel4.add(table);
panel4.add(pager);
mainPanel.add(table); */
/*RootLayoutPanel.get().add(mainPanel);*/


}

}


the GridData.ui.xml file
===================

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:c="urn:import:com.google.gwt.user.cellview.client">

<g:DockLayoutPanel
unit="EM">
<!-- DataGrid. -->
<g:center>
<c:DataGrid
ui:field="table" />
</g:center>

<!-- Pager. -->
<g:south
size="3">
<g:HTMLPanel>
<table
style="width:100%">
<tr>
<td
align='center'>
<c:SimplePager ui:field="pager1"/>
</td>
</tr>
</table>
</g:HTMLPanel>
</g:south>
</g:DockLayoutPanel>
</ui:UiBinder>


the Myapps.java file
===================

package com.apps.app1.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootLayoutPanel;


/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Myapps implements EntryPoint {

@Override
public void onModuleLoad() {
GridData data = new GridData();
RootLayoutPanel.get().add(data);
}
}

Please help me out in getting the a proper solution for it.

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment