forked from mbk-lab/rui_orig
2
0
Fork 0
rui/viewByID.go

267 lines
8.5 KiB
Go

package rui
// ViewByID return a View with id equal to the argument of the function or nil if there is no such View
func ViewByID(rootView View, id string) View {
if rootView == nil {
ErrorLog(`ViewByID(nil, "` + id + `"): rootView is nil`)
return nil
}
if rootView.ID() == id {
return rootView
}
if container, ok := rootView.(ParanetView); ok {
if view := viewByID(container, id); view != nil {
return view
}
}
ErrorLog(`ViewByID(_, "` + id + `"): View not found`)
return nil
}
func viewByID(rootView ParanetView, id string) View {
for _, view := range rootView.Views() {
if view != nil {
if view.ID() == id {
return view
}
if container, ok := view.(ParanetView); ok {
if v := viewByID(container, id); v != nil {
return v
}
}
}
}
return nil
}
// ViewsContainerByID return a ViewsContainer with id equal to the argument of the function or
// nil if there is no such View or View is not ViewsContainer
func ViewsContainerByID(rootView View, id string) ViewsContainer {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(ViewsContainer); ok {
return list
}
ErrorLog(`ViewsContainerByID(_, "` + id + `"): The found View is not ViewsContainer`)
}
return nil
}
// ListLayoutByID return a ListLayout with id equal to the argument of the function or
// nil if there is no such View or View is not ListLayout
func ListLayoutByID(rootView View, id string) ListLayout {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(ListLayout); ok {
return list
}
ErrorLog(`ListLayoutByID(_, "` + id + `"): The found View is not ListLayout`)
}
return nil
}
// StackLayoutByID return a StackLayout with id equal to the argument of the function or
// nil if there is no such View or View is not StackLayout
func StackLayoutByID(rootView View, id string) StackLayout {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(StackLayout); ok {
return list
}
ErrorLog(`StackLayoutByID(_, "` + id + `"): The found View is not StackLayout`)
}
return nil
}
// GridLayoutByID return a GridLayout with id equal to the argument of the function or
// nil if there is no such View or View is not GridLayout
func GridLayoutByID(rootView View, id string) GridLayout {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(GridLayout); ok {
return list
}
ErrorLog(`GridLayoutByID(_, "` + id + `"): The found View is not GridLayout`)
}
return nil
}
// ColumnLayoutByID return a ColumnLayout with id equal to the argument of the function or
// nil if there is no such View or View is not ColumnLayout
func ColumnLayoutByID(rootView View, id string) ColumnLayout {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(ColumnLayout); ok {
return list
}
ErrorLog(`ColumnLayoutByID(_, "` + id + `"): The found View is not ColumnLayout`)
}
return nil
}
// DetailsViewByID return a ColumnLayout with id equal to the argument of the function or
// nil if there is no such View or View is not DetailsView
func DetailsViewByID(rootView View, id string) DetailsView {
if view := ViewByID(rootView, id); view != nil {
if details, ok := view.(DetailsView); ok {
return details
}
ErrorLog(`DetailsViewByID(_, "` + id + `"): The found View is not DetailsView`)
}
return nil
}
// DropDownListByID return a DropDownListView with id equal to the argument of the function or
// nil if there is no such View or View is not DropDownListView
func DropDownListByID(rootView View, id string) DropDownList {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(DropDownList); ok {
return list
}
ErrorLog(`DropDownListByID(_, "` + id + `"): The found View is not DropDownList`)
}
return nil
}
// TabsLayoutByID return a TabsLayout with id equal to the argument of the function or
// nil if there is no such View or View is not TabsLayout
func TabsLayoutByID(rootView View, id string) TabsLayout {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(TabsLayout); ok {
return list
}
ErrorLog(`TabsLayoutByID(_, "` + id + `"): The found View is not TabsLayout`)
}
return nil
}
// ListViewByID return a ListView with id equal to the argument of the function or
// nil if there is no such View or View is not ListView
func ListViewByID(rootView View, id string) ListView {
if view := ViewByID(rootView, id); view != nil {
if list, ok := view.(ListView); ok {
return list
}
ErrorLog(`ListViewByID(_, "` + id + `"): The found View is not ListView`)
}
return nil
}
// TextViewByID return a TextView with id equal to the argument of the function or
// nil if there is no such View or View is not TextView
func TextViewByID(rootView View, id string) TextView {
if view := ViewByID(rootView, id); view != nil {
if text, ok := view.(TextView); ok {
return text
}
ErrorLog(`TextViewByID(_, "` + id + `"): The found View is not TextView`)
}
return nil
}
// ButtonByID return a Button with id equal to the argument of the function or
// nil if there is no such View or View is not Button
func ButtonByID(rootView View, id string) Button {
if view := ViewByID(rootView, id); view != nil {
if button, ok := view.(Button); ok {
return button
}
ErrorLog(`ButtonByID(_, "` + id + `"): The found View is not Button`)
}
return nil
}
// CheckboxByID return a Checkbox with id equal to the argument of the function or
// nil if there is no such View or View is not Checkbox
func CheckboxByID(rootView View, id string) Checkbox {
if view := ViewByID(rootView, id); view != nil {
if checkbox, ok := view.(Checkbox); ok {
return checkbox
}
ErrorLog(`CheckboxByID(_, "` + id + `"): The found View is not Checkbox`)
}
return nil
}
// EditViewByID return a EditView with id equal to the argument of the function or
// nil if there is no such View or View is not EditView
func EditViewByID(rootView View, id string) EditView {
if view := ViewByID(rootView, id); view != nil {
if buttons, ok := view.(EditView); ok {
return buttons
}
ErrorLog(`EditViewByID(_, "` + id + `"): The found View is not EditView`)
}
return nil
}
// ProgressBarByID return a ProgressBar with id equal to the argument of the function or
// nil if there is no such View or View is not ProgressBar
func ProgressBarByID(rootView View, id string) ProgressBar {
if view := ViewByID(rootView, id); view != nil {
if buttons, ok := view.(ProgressBar); ok {
return buttons
}
ErrorLog(`ProgressBarByID(_, "` + id + `"): The found View is not ProgressBar`)
}
return nil
}
// NumberPickerByID return a NumberPicker with id equal to the argument of the function or
// nil if there is no such View or View is not NumberPicker
func NumberPickerByID(rootView View, id string) NumberPicker {
if view := ViewByID(rootView, id); view != nil {
if input, ok := view.(NumberPicker); ok {
return input
}
ErrorLog(`NumberPickerByID(_, "` + id + `"): The found View is not NumberPicker`)
}
return nil
}
// CanvasViewByID return a CanvasView with id equal to the argument of the function or
// nil if there is no such View or View is not CanvasView
func CanvasViewByID(rootView View, id string) CanvasView {
if view := ViewByID(rootView, id); view != nil {
if canvas, ok := view.(CanvasView); ok {
return canvas
}
ErrorLog(`CanvasViewByID(_, "` + id + `"): The found View is not CanvasView`)
}
return nil
}
/*
// TableViewByID return a TableView with id equal to the argument of the function or
// nil if there is no such View or View is not TableView
func TableViewByID(rootView View, id string) TableView {
if view := ViewByID(rootView, id); view != nil {
if canvas, ok := view.(TableView); ok {
return canvas
}
ErrorLog(`TableViewByID(_, "` + id + `"): The found View is not TableView`)
}
return nil
}
*/
// AudioPlayerByID return a AudioPlayer with id equal to the argument of the function or
// nil if there is no such View or View is not AudioPlayer
func AudioPlayerByID(rootView View, id string) AudioPlayer {
if view := ViewByID(rootView, id); view != nil {
if canvas, ok := view.(AudioPlayer); ok {
return canvas
}
ErrorLog(`AudioPlayerByID(_, "` + id + `"): The found View is not AudioPlayer`)
}
return nil
}
// VideoPlayerByID return a VideoPlayer with id equal to the argument of the function or
// nil if there is no such View or View is not VideoPlayer
func VideoPlayerByID(rootView View, id string) VideoPlayer {
if view := ViewByID(rootView, id); view != nil {
if canvas, ok := view.(VideoPlayer); ok {
return canvas
}
ErrorLog(`VideoPlayerByID(_, "` + id + `"): The found View is not VideoPlayer`)
}
return nil
}