Парадигма для назначения различных форм узлам с помощью DataShapeAction
например. в демонстрации «Конгресс» (то же самое относится к узлам, как таблицы):
int[] shapes = new int[]
{ Constants.SHAPE_RECTANGLE, Constants.SHAPE_DIAMOND };
DataShapeAction shape = new DataShapeAction(group, "Senate", shapes);
Это назначает различные формы точкам данных на основе значения в поле данных «Сенат», то есть сенаторы - это одна форма, а конгрессмены - это другая форма, в некотором порядке (для этого в API есть различные элементы управления, см. Константы .ORDINAL для примера).
Таким образом, другими словами, вы, вероятно, использовали бы свое поле данных «type», чтобы указать, каким типом узла был узел, а затем использовали бы DataShapeAction для назначения различных фигур.
Определение новой фигуры, безусловно, возможно, но потребует дополнительных усилий. Я постараюсь вернуться к вам с лучшим ответом, но я предполагаю, что самым простым способом было бы написать свой собственный подкласс noderenderer, который мог бы рисовать желаемую форму, а затем, возможно, расширить DataShapeAction для обработки некоторых пометка для вашего нового типа данных. Впрочем, об этом позже, надеюсь.