2013-05-21 2 views
0

Есть ли способ указать макет для детей PolylineConnection?Панель инструментовLayout для детей PolylineConnection?

Я хочу добавить несколько Label s в PolylineConnection по телефону ConnectionLocator.MIDDLE без использования рисунка контейнера для этикеток.

И PolylineConnection, и Label имеют EditParts, а объекты модели метки являются дочерними элементами объектов модели полилинии.

В идеале я хочу, чтобы добавить все этикетки детей полилинии к ConnectionLocator.MIDDLE в ToolbarLayout ...

ответ

0

Я нашел способ добиться того, что я хотел:

Очень общо, первый ребенок должен быть добавлен в ConnectionLocator.MIDDLE, а остальные дети по отношению к ребенку перед ними с помощью RelativeLocator, как это (линия будет в цикле по всем рисункам детей редактирования соединительной части в):

figure.add(childFigure, 
      new RelativeLocator((IFigure) figureChildren.get(currentIndex - 1), 
            0.5, 
            1.7); 

Я написал blog post с более подробной информацией.

+0

Интересное и элегантное решение. – vainolo

+0

@vainolo Gee, спасибо :). –

1

То, что вы пытаетесь сделать, это смешать два раскладок: на первой руке вы хотите использовать, чтобы найти ConnectionLocator.MIDDLE цифры, но, с другой стороны, вы хотите, чтобы цифры в этом месте имели свой собственный макет.

Единственное решение, у вас есть, чтобы создать фигуру, которая использует ToolbarLayout и найти его в Polyline используя ConnectionLocator

+1

Вы правы, смешивание двух макетов невозможно. Тем не менее, я не хочу использовать фигуру контейнера, поскольку дочерние фигуры добавляются/удаляются динамически через 'getModelChildren()' в части редактирования соединения. Я нашел хак, который работает, используя 'RelativeLocator' (см. Мое решение). –

Смежные вопросы