Вертикальная линейка в приложениях RCP

Текстовые редакторы Eclipse имеют эти приятные вертикальные линейки с обеих сторон, где закладки и аннотации показаны маленькими точками, так что вы можете быстро перейти к строке. Надо сделать что-то подобное, но не текстовым редактором, а каким-нибудь большим списком или таблицей. Как бы вы это сделали? Есть ли что-нибудь в eclipse RCP, которое я могу использовать повторно? Или просто взять Canvas и начать рисовать с помощью волшебства SWT? Я действительно не хочу изобретать велосипед, иметь модель было бы здорово. Должно быть что-то, что уже существует..

Может кто подскажет куда копать?


person Dima    schedule 12.09.2009    source источник
comment
Я пытаюсь сделать то же самое, но этого ответа мне недостаточно, чтобы продолжать. Я также хотел бы связать таблицу с линейкой аннотаций, чтобы выделить и перейти к определенным строкам. Как ты это сделал?   -  person Link19    schedule 01.08.2013
comment
Мне не удалось найти ничего для повторного использования, но я изучил идею, лежащую в основе этого, и реализовал свою собственную. Мне нужна была линейка рядом с таблицей с огромным количеством записей в ней. Линейка выделяет определенные записи и предоставляет ссылку. Я сделал свою собственную линейку, которая представляет собой простой композит, стоящий рядом со столом. Существует общая модель данных, которая отображается в таблице, и эта же модель используется линейкой для рисования точек. Линейка вычисляет координаты и рисует цветные полосы. См. скриншот здесь: moonlit-software.com/logfaces /web/images/screens/full/.   -  person Dima    schedule 01.08.2013
comment
О, я вижу, очень красиво и сложно. Я попробую.   -  person Link19    schedule 01.08.2013
comment
Не ракетостроение, а неприятный кусок кода. Но результаты очень радуют. Это дает обзор и быструю навигацию.   -  person Dima    schedule 01.08.2013
comment
Мне действительно нужен хороший способ быстро переходить к горячим точкам в таблице, и, очевидно, использовать eclipse так часто, что это была первая идея, которая пришла им в голову.   -  person Link19    schedule 01.08.2013
comment
Что ж, сделайте модель, которую можно использовать с помощью линейки для вычисления координат и расположения цветной полосы шириной в несколько пикселей. Затем при клике на нее - пролистайте свою таблицу до пункта. Что я делаю, так это имею список объектов Annotation в качестве модели для линейки, чтобы рисовать точки. Каждая аннотация содержит реальный элемент таблицы, на который я затем сосредотачиваюсь при нажатии линейки.   -  person Dima    schedule 02.08.2013
comment
Я добираюсь туда, но я безуспешно пытаюсь сделать эти желтые всплывающие окна, какой компонент используется для них, вы знаете?   -  person Link19    schedule 19.08.2013


Ответы (1)


Вы можете посмотреть, как настроена эта зона (линейка) в CompilationUnitEditor.

Это IVerticalRuler (см. JavaDoc и один стандартная реализация), фактически используемая SourceViewer: этот последний класс фактически настроен зоны вертикальной линейки.

person VonC    schedule 12.09.2009
comment
Вот оно. Единственная проблема в VerticalRuler заключается в том, что он постоянно связан с текстовыми редакторами и всеми плагинами, которые идут с ним, в моем случае это огромная бесполезная зависимость. Но исходный код реализации по умолчанию действительно помог мне извлечь суть. Теперь у меня есть огромная таблица данных с линейкой, которая хорошо отображает все. Спасибо! - person Dima; 12.09.2009