powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin CSSInject
6 сообщений из 6, страница 1 из 1
Vaadin CSSInject
    #39292523
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую Vaadin 7, менял раньше цвета ячеек заранее прописывая стиль в scss файл.
пример:
Код: css
1.
2.
3.
4.
5.
.colored-table .v-table-cell-content-lightorange{
        background: #F9B34A;
        color:      black;
        border-bottom: 1px solid #AAAAAA;
    }



таблице указывал:
Код: java
1.
table.addStyleName("colored-table");



и вроде как все нормально, но в цветах-то я ограничен. Прикрутил колорпикер недавно, его цвета записываю в БД и оттуда их естественно можно вместе с данными вытащить.

Попробовал использовать CSSInject, но видимо не до конца понимаю как он работает. Стиль-то он добавляет, но в инспекторе кода в хроме я не вижу чтобы он использовал мой новый стиль, который называется по цвету без решетки в начале, т.е. не #b6ffff, а просто b6ffff. Получается: v-table-cell-content v-table-cell-content-b6ffff
Вот код в котором я пытаюсь это сделать.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
 private void createOfferTableListener() {
        final CSSInject css = new CSSInject(UI.getCurrent());
        offerTable.addStyleName("colored-table");
        offerTable.setCellStyleGenerator(new Table.CellStyleGenerator() {
            @Override
            public String getStyle(Table source, Object itemId, Object propertyId) {
                Offer offer = (Offer) itemId;
                String styleNameAsIsColor = "";
                if (offer.getOfferColor() != null && !"".equalsIgnoreCase(offer.getOfferColor())) {
                    styleNameAsIsColor = offer.getOfferColor().replaceAll("#", "");
                }
                css.setStyles(".colored-table .v-table-cell-content-" + styleNameAsIsColor + " { background: " + offer.getOfferColor() + "; } "
                        + ".colored-table .v-selected .v-table-cell-content-" + styleNameAsIsColor + ", "
                        + ".colored-table .black .v-selected .v-table-cell-content-" + styleNameAsIsColor + "{ background: " + offer.getOfferColor() + "; }");
                String prop = "";
                if (propertyId == null) {
                    prop = "";
                } else {
                    prop = (String) propertyId;
                }
                if (prop.equals("№ пр-я")) {
                    return styleNameAsIsColor;
                }
                return null;
            }
        });


В общем надо чтобы, цвет фона ячейки менялся на тот цвет, который прописан в БД. А туда он попал, когда юзер выбрал цвет пипеткой. Не знаю что пока делать, может кто подскажет...
...
Рейтинг: 0 / 0
Vaadin CSSInject
    #39292579
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
grid.getColumn("color").setRenderer(new HtmlRenderer());
grid.getColumn("color").setConverter(new Converter<String, Integer>() {

            @Override
            public Integer convertToModel(String value, Class<? extends Integer> targetType, Locale locale) throws ConversionException {
                return null;
            }

            @Override
            public String convertToPresentation(Integer value, Class<? extends String> targetType, Locale locale) throws ConversionException {
                if(value != null) {
                    String rgbColorCode = String.format("#%06X", (0xFFFFFF & value));
                    return "<div style=\"height: 100%; width: 100%;background-color:" + rgbColorCode + ";\"/>";
                }
                return "";

            }

            @Override
            public Class<Integer> getModelType() {
                return Integer.class;
            }

            @Override
            public Class<String> getPresentationType() {
                return String.class;
            }
        });
...
Рейтинг: 0 / 0
Vaadin CSSInject
    #39292616
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no56892,

Спасибо, с гридами, я уверен это работает, попробую можно ли то же самое прикрутить к таблице.
...
Рейтинг: 0 / 0
Vaadin CSSInject
    #39293140
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет у таблицы метода getColumn(...), поэтому решение выше, только для гридов подходит.
А меня гриды не устраивают на данный момент своим функционалом.
...
Рейтинг: 0 / 0
Vaadin CSSInject
    #39293145
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотяя... можно использовать в качестве ContainerProperty, Label, а лейблу уже прикрутить ContentMode.HTML, тогда можно будет фон у текста подсветить, ну хотя бы так сейчас попробую, должно сработать
...
Рейтинг: 0 / 0
Vaadin CSSInject
    #39293158
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во! Так нормально, через Label пойдет.
теперь можно и код повылизывать :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin CSSInject
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]