This is my grid rendering code, I want the same from outside of this class. Rendering should be generic for all grids. Can anyone help to fix this?

public class SavedListGrid extends Grid<SavedListsModel> {

private static final SavedListsModelProperties modelProps = GWT.create(SavedListsModelProperties.class);

private static ColumnConfig<SavedListsModel, String> name = new ColumnConfig<SavedListsModel, String>(modelProps.name(), 150, "Name");
private static ColumnConfig<SavedListsModel, String> description = new ColumnConfig<SavedListsModel, String>(modelProps.description(), 130, "Description");
private static ColumnConfig<SavedListsModel, String> priveleges = new ColumnConfig<SavedListsModel, String>(modelProps.priveleges(),70, "Priveleges");
private static ColumnConfig<SavedListsModel, String> createdBy = new ColumnConfig<SavedListsModel, String>(modelProps.createdBy(), 150, "Created By");
private static ColumnConfig<SavedListsModel, String> lastUpdated = new ColumnConfig<SavedListsModel, String>(modelProps.lastUpdated(), 100, "Last Updated");

private static ListStore<SavedListsModel> store;

final static String desc = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna.<br/><br/>Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit.";


final static IdentityValueProvider<SavedListsModel> identity = new IdentityValueProvider<SavedListsModel>();

final static RowExpander<SavedListsModel> expander = new RowExpander<SavedListsModel>(identity, new AbstractCell<SavedListsModel>() {

@Override
public void render(Context context, SavedListsModel value, SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<p style='margin: 5px 5px 10px'><b>Company:</b>" + value.getDescription() + "</p>");
sb.appendHtmlConstant("<p style='margin: 5px 5px 10px'><b>Summary:</b> " + desc);
}
});

public SavedListGrid() {

super(generateData(), createColumnModel());

this.getView().setStripeRows(true);
this.getView().setColumnLines(true);
this.getView().setAutoExpandColumn(name);
this.setBorders(false);
this.setColumnReordering(true);


this.getView().setAutoExpandColumn(description);
this.setBorders(false);

expander.initPlugin(this);

renderNameColumn();
}

public static void renderNameColumn(){
name.setColumnTextClassName(CommonStyles.get().nowrap());
TextButtonCell button = new TextButtonCell();
button.addSelectHandler(new SelectHandler() {

public void onSelect(SelectEvent event) {
Context c = event.getContext();
int row = c.getIndex();
SavedListsModel p = store.get(row);
Info.display("Event", "The " + p.getName() + " was clicked.");
}
});
name.setCell(button);
}

private static ColumnModel<SavedListsModel> createColumnModel(){

List<ColumnConfig<SavedListsModel, ?>> columnConfigList = new ArrayList<ColumnConfig<SavedListsModel, ?>>();
columnConfigList.add(expander);
columnConfigList.add(name);
columnConfigList.add(description);
columnConfigList.add(priveleges);
columnConfigList.add(createdBy);
columnConfigList.add(lastUpdated);

return new ColumnModel<SavedListsModel>(columnConfigList);
}

private static ListStore<SavedListsModel> generateData(){

store = new ListStore<SavedListsModel>(modelProps.key());
store.add(new SavedListsModel("My List1","", "Private", "name1", "name1"));
store.add(new SavedListsModel("My List2","", "Private", "name2", "name2"));
store.add(new SavedListsModel("My List3","", "Private", "name3", "name3"));

return store;
}
}