Как я могу получить компонент Canvas в ListGridRecord? - PullRequest
2 голосов
/ 02 августа 2011

Я использую SmartGWT 2,4.

Я пытаюсь стилизовать ListGridRecord.Я хочу получить компонент Canvas, но нигде не могу найти ссылку.

Я знаю, что в ListGrid есть методы как createRecordComponent или getBackgroundComponent и т. Д., Но они не возвращаютсялюбой компонент.Они означают точку переопределения (пользователь может определять свои собственные компоненты вместо значений по умолчанию).Но это не то, что я хочу.Я хочу получить компонент по умолчанию и изменить его (стилизовать его).

Я знаю, что есть метод setCellFormatter в ListGrid, где я могу установить формат ячейки, но он касается только текстакомпонент ячейки, а не вся строка (запись).

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

Кто-нибудь может помочь?Благодаря.

1 Ответ

0 голосов
/ 08 августа 2011

Боюсь, ваши возможности немного ограничены, когда дело доходит до SmartGWT. Один, хотя и не очень простой способ достижения этого - переопределение ListGrid.getCellCSSText (запись ListGridRecord, int rowNum, int colNum) метода создания ListGrid, как показано здесь .
Так я создал индивидуальные стили ячеек.

final ListGrid grid= new ListGrid() {
    protected String getCellCSSText(ListGridRecord record, int rowNum, int colNum) {
        if (getFieldName(colNum).equals("MyColumnName")) {
            ListGridRecord record = (ListGridRecord) record;
            if (record.getSomeValue() > 20) {
                return "font-weight:bold; color:red;";
            } else if (record.getSomethingElse() < 5) {
                return "font-weight:bold; color:blue;";
            } else {
                return super.getCellCSSText(record, rowNum, colNum);
            }
        } else {
            return super.getCellCSSText(record, rowNum, colNum);
        }
    }
};
...