getBorder method
Implementation
BoxBorder getBorder() {
if (_border != null) {
return _border!;
} else {
BoxBorder border =
getMindMap()?.getTheme() != null &&
getMindMap()?.getTheme()?.getThemeByLevel(getLevel()) != null &&
getMindMap()?.getTheme()?.getThemeByLevel(getLevel())!["Border"]
is BoxBorder
? getMindMap()?.getTheme()?.getThemeByLevel(getLevel())!["Border"]
as BoxBorder
: (getParentNode() != null && getParentNode() is MindMapNode
? (getParentNode() as MindMapNode).getBorder()
: Border.all(
color: Colors.black,
width: 1.0,
style: BorderStyle.solid,
strokeAlign: BorderSide.strokeAlignOutside,
));
List<Color> list = getBorderColors();
if (list.isNotEmpty) {
int index = 0;
if (getParentNode() != null) {
if (getNodeType() == NodeType.right) {
index = getParentNode()!.getRightItems().indexOf(this);
} else {
index =
getParentNode()!.getRightItems().length +
getParentNode()!.getLeftItems().indexOf(this);
}
}
Color color = list[index % list.length];
BorderSide top = BorderSide.none;
BorderSide left = BorderSide.none;
BorderSide bottom = BorderSide.none;
BorderSide right = BorderSide.none;
if (border.top != BorderSide.none) {
top = border.top.copyWith(color: color);
}
if (border.bottom != BorderSide.none) {
bottom = border.bottom.copyWith(color: color);
}
if (border is Border && border.left != BorderSide.none) {
left = border.left.copyWith(color: color);
}
if (border is Border && border.right != BorderSide.none) {
right = border.right.copyWith(color: color);
}
border = BoxBorder.fromLTRB(
top: top,
right: right,
left: left,
bottom: bottom,
);
}
return border;
}
}