GWT CELLTABLE: Как добавить столбец в celltable, который является комбинацией нередактируемого текста + гиперссылка - PullRequest
0 голосов
/ 13 октября 2011

Я хочу добавить ссылку в столбце моей ячейки, т.е. "validationStatus" некоторые значения являются «действительными», а также «недействительными» когда значение недействительно, я хочу сделать недействительным в качестве ссылки (Как?) & когда значение допустимо, я хочу сделать его текстовым

Как добавить ссылку в конкретный столбец таблицы?

Я хочу добавить столбец, представляющий собой комбинацию нередактируемого текста (действительный) + гиперссылка (недействительный), если таковой имеется.

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Предположительно, у вас есть какой-то список этих значений, каким-то образом связанный с каждой строкой вашей таблицы. Расширьте класс Column и установите его для отображения TextCell. Переопределите метод render в вашем классе Column, чтобы при визуализации этих значений он проверял их на достоверность и либо добавил SafeHtml для привязки (недопустимые значения, являющиеся ссылками), либо добавил простой экранированный текст (допустимые значения, которые не являются ссылки). Добавьте этот подкласс Column к вашей таблице.

0 голосов
/ 14 октября 2011

Пример кода: Работает:)

    public class CustomColumn extends  Column<Record, String>{

    public CustomColumn(Cell<String> cell) {
        super(cell);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void render(Cell.Context context, Record object, com.google.gwt.safehtml.shared.SafeHtmlBuilder sb) {

        super.render(context, object, sb);

        String validationStatus= object.getValidationStatus();
        if(validationStatus.equals("Invalid") ){
             sb.appendHtmlConstant("<a href='http://www.google.com'> Invalid </a>");
        }else if(validationStatus.equals("Valid")){
            sb.appendEscaped("Valid");
        }
    }


    @Override
    public String getValue(Car object) {
        // TODO Auto-generated method stub
        return null;
    }
...