getBorder method
Border
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) {
List<IMindMapNode> list1 = [];
if (getParentNode()!.getNodeType() == NodeType.root) {
list1.addAll(getParentNode()!.getRightItems());
for (int i = 0; i < getParentNode()!.getLeftItems().length; i++) {
IMindMapNode node =
getParentNode()!.getLeftItems()[getParentNode()!
.getLeftItems()
.length -
i -
1];
list1.add(node);
}
} else {
list1.addAll(getRightItems());
list1.addAll(getParentNode()!.getLeftItems());
}
index = list1.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;
}
}