I've got some problems with CellTable in GWT.

What I want to do:
I've got CellTable and I want to add header with an image and add action to 
it. But it doesn't work in my code.

My code (all):

    import java.util.Arrays;
    import java.util.List;
    
    import com.google.gwt.cell.client.Cell;
    import com.google.gwt.cell.client.ClickableTextCell;
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.event.dom.client.ClickHandler;
    import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
    import com.google.gwt.safehtml.shared.SafeHtmlUtils;
    import com.google.gwt.user.cellview.client.CellTable;
    import com.google.gwt.user.cellview.client.Header;
    import com.google.gwt.user.cellview.client.TextColumn;
    import com.google.gwt.user.client.ui.Image;
    import com.google.gwt.user.client.ui.RootPanel;
    import com.google.gwt.user.client.ui.VerticalPanel;`
    
    public class HelloGWT implements EntryPoint {
    
        public void onModuleLoad() {
    
            RootPanel.get().add(new MyTable());
    
        }
    }
    
    class Contact {
        public Contact(String name, int number) {
            this.number = number;
            this.name = name;
        }
    
        public String name;
        public int number;
    }
    
    class MyTable extends VerticalPanel {
    
        public List<Contact> list = Arrays.asList(new Contact("contact_1", 
1),
                new Contact("contact_2", 2), new Contact("contact_3", 3)
    
        );
    
        public MyTable() {
            CellTable<Contact> table = new CellTable<Contact>();
            table.addColumn(new MyColumn(), new MyHeader(new 
ClickableTextCell(), "MyHeader!"));
            table.setRowData(0, list);
    
            this.add(table);
        }
    }
    
    class MyColumn extends TextColumn<Contact> {
    
        public MyColumn() {
    
        }
    
        @Override
        public String getValue(Contact object) {
            // TODO Auto-generated method stub
            return object.name;
        }
    }
    
    class MyHeader extends Header<String> {
    
        private String columnName;
        private Image image = new 
Image("http://www.google.com/mobile/images/mgc3/google-mobile-app48.png";);
        
        public MyHeader(Cell<String> cell, String columnName) {
            super(cell);
            // TODO Auto-generated constructor stub
            this.columnName = columnName;
            
            image.addClickHandler(new ClickHandler()
            {
    
                @Override
                public void onClick(ClickEvent event) {
                    System.out.println("Click!");
                    
                }
                
            }
                    );
        }
    
        @Override
        public String getValue() {
            // TODO Auto-generated method stub
            return columnName;
        }
    
        @Override
        public void render(Cell.Context context, SafeHtmlBuilder sb) {
            StringBuilder s = new StringBuilder();
            s.append(columnName);
            image.setSize("20px", "20px");
            s.append(image);
            sb.append(SafeHtmlUtils.fromSafeConstant(s.toString()));
        }
    
    }

Thanks for any ideas...

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/fIzNiYZ86RwJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to