Nattable Cell с несколькими комбинациями изображений

У нас есть требование визуализировать состояние ячейки.

Каждая ячейка представляет доступ пользователя к базе данных CRUD, поэтому каждая ячейка имеет четыре логических флага для создания, чтения, обновления и удаления. Для визуализации в каждой ячейке должно быть четыре изображения, на каждом из которых показано состояние этого флага.

Мы определили 8 меток (CREATE, NO_CREATE, READ, NO_READ и т. Д.) И добавили эти метки на основе базовой модели. Таким образом, в любое время каждая ячейка будет иметь 4 метки. Мы хотим показать 4 изображения в каждой ячейке, где каждое изображение показывает состояние соответствующего флага.

Основываясь на исследовании и предложении Дирка, CellDecoratorPainter является предпочтительным подходом. Но каждая ячейка с меткой связана с одним художником (в данном случае CellDecoratorPainter), так как мы можем использовать это для визуализации комбинации этих изображений?

Один из подходов, который я мог бы придумать, состоит в том, чтобы вместо создания отдельных меток для READ, NO_READ и т. Д. Создать метки 4x4x2, такие как READ_CREATE_UPDATE_DELETE, NO_READ_CREATE_UPDATE_DELETE, и связать каждую из этих меток с одним декоратором рисования ячеек, чтобы соответствующим образом нарисовать серии изображений.

Не уверен, что это единственный возможный подход. Если кто-то из вас сталкивался с такой ситуацией, не могли бы вы поделиться своими мыслями?

PS: это опубликовано на форумах Eclipse по адресу https://www.eclipse.org/forums/index.php/m/1782700/.

2 ответа

Для достижения этой цели предлагается использовать собственный инструмент для рисования изображений, как описано на https://www.eclipse.org/forums/index.php/m/1782739/.

Фрагмент ответа

Вы можете реализовать собственный ImagePainter, который проверяет метки ячеек и рисует изображения на основе меток в стеке меток. Или сложите CellPainterDecorators так, чтобы у каждого декоратора было изображение в качестве украшения, которое нарисовано только в случае метки ячейки, и другой декоратор в качестве основного художника.

Но, честно говоря, написание пользовательского ImagePainter, который проверяет метки и рисует изображения при появлении метки, кажется более интуитивным.

Мы реализовали CombinationImagePainter для достижения этой цели и доступны по адресу https://gist.github.com/brsanthu/cd2f91da7777aa994e011f7acedd900a если вы заинтересованы.

У нас было похожее требование, в котором изображение должно было отображаться в начале и в конце. Однако почти так, как вы показали, мы расширили класс AbstractTextPainter и написали реализацию в соответствии с этим.

Другие вопросы по тегам