component selection enhancements
This commit is contained in:
parent
59f6cda4d6
commit
55b26999db
|
@ -199,7 +199,7 @@ func (l *Layout) getSelection() *component.Component {
|
||||||
func (l *Layout) moveSelection(direction string) {
|
func (l *Layout) moveSelection(direction string) {
|
||||||
|
|
||||||
previouslySelected := l.getSelection()
|
previouslySelected := l.getSelection()
|
||||||
newlySelectedIndex := l.selection
|
newlySelectedIndex := l.selection + 1
|
||||||
|
|
||||||
for i, current := range l.Components {
|
for i, current := range l.Components {
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ func (l *Layout) moveSelection(direction string) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if newlySelectedIndex < 0 {
|
if newlySelectedIndex >= len(l.Components) {
|
||||||
newlySelectedIndex = i
|
newlySelectedIndex = i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,18 +220,30 @@ func (l *Layout) moveSelection(direction string) {
|
||||||
previouslySelectedCornerPoint = component.GetRectLeftSideCenter(previouslySelected.GetRect())
|
previouslySelectedCornerPoint = component.GetRectLeftSideCenter(previouslySelected.GetRect())
|
||||||
newlySelectedCornerPoint = component.GetRectRightSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
newlySelectedCornerPoint = component.GetRectRightSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
||||||
currentCornerPoint = component.GetRectRightSideCenter(current.GetRect())
|
currentCornerPoint = component.GetRectRightSideCenter(current.GetRect())
|
||||||
|
if currentCornerPoint.X > previouslySelectedCornerPoint.X {
|
||||||
|
continue
|
||||||
|
}
|
||||||
case console.KeyRight:
|
case console.KeyRight:
|
||||||
previouslySelectedCornerPoint = component.GetRectRightSideCenter(previouslySelected.GetRect())
|
previouslySelectedCornerPoint = component.GetRectRightSideCenter(previouslySelected.GetRect())
|
||||||
newlySelectedCornerPoint = component.GetRectLeftSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
newlySelectedCornerPoint = component.GetRectLeftSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
||||||
currentCornerPoint = component.GetRectLeftSideCenter(current.GetRect())
|
currentCornerPoint = component.GetRectLeftSideCenter(current.GetRect())
|
||||||
|
if currentCornerPoint.X < previouslySelectedCornerPoint.X {
|
||||||
|
continue
|
||||||
|
}
|
||||||
case console.KeyUp:
|
case console.KeyUp:
|
||||||
previouslySelectedCornerPoint = component.GetRectTopSideCenter(previouslySelected.GetRect())
|
previouslySelectedCornerPoint = component.GetRectTopSideCenter(previouslySelected.GetRect())
|
||||||
newlySelectedCornerPoint = component.GetRectBottomSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
newlySelectedCornerPoint = component.GetRectBottomSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
||||||
currentCornerPoint = component.GetRectBottomSideCenter(current.GetRect())
|
currentCornerPoint = component.GetRectBottomSideCenter(current.GetRect())
|
||||||
|
if currentCornerPoint.Y > previouslySelectedCornerPoint.Y {
|
||||||
|
continue
|
||||||
|
}
|
||||||
case console.KeyDown:
|
case console.KeyDown:
|
||||||
previouslySelectedCornerPoint = component.GetRectBottomSideCenter(previouslySelected.GetRect())
|
previouslySelectedCornerPoint = component.GetRectBottomSideCenter(previouslySelected.GetRect())
|
||||||
newlySelectedCornerPoint = component.GetRectTopSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
newlySelectedCornerPoint = component.GetRectTopSideCenter(l.getComponent(newlySelectedIndex).GetRect())
|
||||||
currentCornerPoint = component.GetRectTopSideCenter(current.GetRect())
|
currentCornerPoint = component.GetRectTopSideCenter(current.GetRect())
|
||||||
|
if currentCornerPoint.Y < previouslySelectedCornerPoint.Y {
|
||||||
|
continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if component.GetDistance(previouslySelectedCornerPoint, currentCornerPoint) <
|
if component.GetDistance(previouslySelectedCornerPoint, currentCornerPoint) <
|
||||||
|
@ -240,8 +252,10 @@ func (l *Layout) moveSelection(direction string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if newlySelectedIndex < len(l.Components) {
|
||||||
l.selection = newlySelectedIndex
|
l.selection = newlySelectedIndex
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (l *Layout) Draw(buffer *ui.Buffer) {
|
func (l *Layout) Draw(buffer *ui.Buffer) {
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ runcharts:
|
||||||
barcharts:
|
barcharts:
|
||||||
- title: EVENTS BY STATUS
|
- title: EVENTS BY STATUS
|
||||||
refresh-rate-ms: 1000
|
refresh-rate-ms: 1000
|
||||||
position: [[0, 17], [53, 12]]
|
position: [[0, 17], [28, 12]]
|
||||||
scale: 0
|
scale: 0
|
||||||
items:
|
items:
|
||||||
- label: NEW
|
- label: NEW
|
||||||
|
|
Loading…
Reference in New Issue