how to add column of ClickableTextCells to cellTable

后端 未结 3 516
挽巷
挽巷 2021-01-12 23:17

hi all i need a simple example show me how to add column of ClickableTextCells to cellTable

thanks.

相关标签:
3条回答
  • 2021-01-12 23:37

    this is the solution if you need to add clickableTextCell to cellTable

    // ClickableTextCell
    
    ClickableTextCell anchorcolumn = new ClickableTextCell();
    table.addColumn(addColumn(anchorcolumn, new GetValue<String>() {
            public String getValue(Contact contact) {
                return "Click " + contact.anchor;
            }
        }, new FieldUpdater<Contact, String>() {
            public void update(int index, Contact object, String value) {
                Window.alert("You clicked " + object.name);
            }
        }), "Anchor");
    
    
    
    private <C> Column<Contact, C> addColumn(Cell<C> cell,final GetValue<C> getter,
    FieldUpdater<Contact, C> fieldUpdater) {
            Column<Contact, C> column = new Column<Contact, C>(cell) {
    
            @Override
            public C getValue(Contact object) {
                return getter.getValue(object);
            }
        };
        column.setFieldUpdater(fieldUpdater);
    
        return column;
    }
    
    private static interface GetValue<C> {
        C getValue(Contact contact);
    }
    
    
    // A simple data type that represents a contact.
        private static class Contact {
            private final String address;
            private final String name;
            private final String anchor;
    
            public Contact(String name, String address, String anchor) {
                this.name = name;
                this.address = address;
                this.anchor = anchor;
            }
        }
    
    0 讨论(0)
  • 2021-01-12 23:38
    Column<YerValueObject, String> newCol = new Column<YerValueObject, String>(new  ClickableTextCell()) {
        @Override
        public String getValue(YearValueObject obj) {
            return obj.someMethod();
        }
    
    };
    
    newCol.setFieldUpdater(new FieldUpdater<YerValueObject, String>() {
        @Override
        public void update(int index, YerValueObject obj, String value) {
            //do whatever you need to here...
        }
    });
    
    table.addColumn(newCol, "ClickColumn");
    
    0 讨论(0)
  • 2021-01-12 23:50

    Create a Column overriding the onBrowserEvent method.

    Like this:

    new Column<T, String>(new TextCell()) {
        @Override
        public String getValue(T object) {
            return object.getProperty();
        }
    
        @Override
        public void onBrowserEvent(Context context, Element elem, T object, NativeEvent event) {
            // TODO You can check which event you want to catch
            Window.open("http://www.stackoverflow.com", "StackOverFlow", "");
        }
    };
    
    0 讨论(0)
提交回复
热议问题