SmartGwt中ListGrid可以通过扩展各种方法来扩展ListGrid表格的特性,通过扩展creatRecordComponents()方法可以在某个单元格上扩展为ImgButton或者Img等,通过扩展为Label可以实现SmartGwt中的提示Hint的效果(SmartGwt默认单元格上是无法使用hint信息的,虽然有setPromt("")方法,但是不起作用。)如下代码所示,就是在单元格上放了ImgButton
- public void onModuleLoad() {
- final ListGrid countryGrid = new ListGrid() {
- @Override
- protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) {
- String fieldName = this.getFieldName(colNum);
- if (fieldName.equals("iconField")) {
- HLayout recordCanvas = new HLayout(3);
- recordCanvas.setHeight(22);
- recordCanvas.setAlign(Alignment.CENTER);
- ImgButton editImg = new ImgButton();
- editImg.setShowDown(false);
- editImg.setShowRollOver(false);
- editImg.setLayoutAlign(Alignment.CENTER);
- editImg.setSrc("silk/comment_edit.png");
- editImg.setPrompt("Edit Comments");
- editImg.setHeight(16);
- editImg.setWidth(16);
- editImg.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent event) {
- SC.say("Edit Comment Icon Clicked for country : " + record.getAttribute("countryName"));
- }
- });
- ImgButton chartImg = new ImgButton();
- chartImg.setShowDown(false);
- chartImg.setShowRollOver(false);
- chartImg.setAlign(Alignment.CENTER);
- chartImg.setSrc("silk/chart_bar.png");
- chartImg.setPrompt("View Chart");
- chartImg.setHeight(16);
- chartImg.setWidth(16);
- chartImg.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent event) {
- SC.say("Chart Icon Clicked for country : " + record.getAttribute("countryName"));
- }
- });
- recordCanvas.addMember(editImg);
- recordCanvas.addMember(chartImg);
- return recordCanvas;
- } else if (fieldName.equals("buttonField")) {
- IButton button = new IButton();
- button.setHeight(18);
- button.setWidth(65);
- button.setIcon("flags/16/" + record.getAttribute("countryCode") + ".png");
- button.setTitle("Info");
- button.addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent event) {
- SC.say(record.getAttribute("countryName") + " info button clicked.");
- }
- });
- return button;
- } else {
- return null;
- }
- }
- };