mirror of https://github.com/anoshenko/rui.git
144 lines
4.8 KiB
Go
144 lines
4.8 KiB
Go
package rui
|
|
|
|
import "strings"
|
|
|
|
func (cell *tableCellView) Set(tag string, value interface{}) bool {
|
|
return cell.set(strings.ToLower(tag), value)
|
|
}
|
|
|
|
func (cell *tableCellView) set(tag string, value interface{}) bool {
|
|
switch tag {
|
|
case VerticalAlign:
|
|
tag = TableVerticalAlign
|
|
}
|
|
return cell.viewData.set(tag, value)
|
|
}
|
|
|
|
func (cell *tableCellView) cssStyle(self View, builder cssBuilder) {
|
|
session := cell.Session()
|
|
cell.viewData.cssViewStyle(builder, session)
|
|
|
|
if value, ok := enumProperty(cell, TableVerticalAlign, session, 0); ok {
|
|
builder.add("vertical-align", enumProperties[TableVerticalAlign].values[value])
|
|
}
|
|
}
|
|
|
|
// GetSelectionMode returns the mode of the TableView elements selection.
|
|
// Valid values are NoneSelection (0), CellSelection (1), and RowSelection (2).
|
|
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
|
func GetSelectionMode(view View, subviewID string) int {
|
|
if subviewID != "" {
|
|
view = ViewByID(view, subviewID)
|
|
}
|
|
if view != nil {
|
|
if result, ok := enumStyledProperty(view, SelectionMode, NoneSelection); ok {
|
|
return result
|
|
}
|
|
}
|
|
return NoneSelection
|
|
}
|
|
|
|
// GetSelectionMode returns the index of the TableView selected row.
|
|
// If there is no selected row, then a value less than 0 are returned.
|
|
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
|
func GetCurrentTableRow(view View, subviewID string) int {
|
|
if subviewID != "" {
|
|
view = ViewByID(view, subviewID)
|
|
}
|
|
|
|
if view != nil {
|
|
if selectionMode := GetSelectionMode(view, ""); selectionMode != NoneSelection {
|
|
if tableView, ok := view.(TableView); ok {
|
|
return tableView.getCurrent().Row
|
|
}
|
|
}
|
|
}
|
|
return -1
|
|
}
|
|
|
|
// GetCurrentTableCell returns the row and column index of the TableView selected cell.
|
|
// If there is no selected cell, then a value of the row and column index less than 0 is returned.
|
|
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
|
func GetCurrentTableCell(view View, subviewID string) CellIndex {
|
|
if subviewID != "" {
|
|
view = ViewByID(view, subviewID)
|
|
}
|
|
|
|
if view != nil {
|
|
if selectionMode := GetSelectionMode(view, ""); selectionMode != NoneSelection {
|
|
if tableView, ok := view.(TableView); ok {
|
|
return tableView.getCurrent()
|
|
}
|
|
}
|
|
}
|
|
return CellIndex{Row: -1, Column: -1}
|
|
}
|
|
|
|
// GetTableCellClickedListeners returns listeners of event which occurs when the user clicks on a table cell.
|
|
// If there are no listeners then the empty list is returned.
|
|
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
|
func GetTableCellClickedListeners(view View, subviewID string) []func(TableView, int, int) {
|
|
if subviewID != "" {
|
|
view = ViewByID(view, subviewID)
|
|
}
|
|
if view != nil {
|
|
if value := view.Get(TableCellClickedEvent); value != nil {
|
|
if result, ok := value.([]func(TableView, int, int)); ok {
|
|
return result
|
|
}
|
|
}
|
|
}
|
|
return []func(TableView, int, int){}
|
|
}
|
|
|
|
// GetTableCellSelectedListeners returns listeners of event which occurs when a table cell becomes selected.
|
|
// If there are no listeners then the empty list is returned.
|
|
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
|
func GetTableCellSelectedListeners(view View, subviewID string) []func(TableView, int, int) {
|
|
if subviewID != "" {
|
|
view = ViewByID(view, subviewID)
|
|
}
|
|
if view != nil {
|
|
if value := view.Get(TableCellSelectedEvent); value != nil {
|
|
if result, ok := value.([]func(TableView, int, int)); ok {
|
|
return result
|
|
}
|
|
}
|
|
}
|
|
return []func(TableView, int, int){}
|
|
}
|
|
|
|
// GetTableRowClickedListeners returns listeners of event which occurs when the user clicks on a table row.
|
|
// If there are no listeners then the empty list is returned.
|
|
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
|
func GetTableRowClickedListeners(view View, subviewID string) []func(TableView, int) {
|
|
if subviewID != "" {
|
|
view = ViewByID(view, subviewID)
|
|
}
|
|
if view != nil {
|
|
if value := view.Get(TableRowClickedEvent); value != nil {
|
|
if result, ok := value.([]func(TableView, int)); ok {
|
|
return result
|
|
}
|
|
}
|
|
}
|
|
return []func(TableView, int){}
|
|
}
|
|
|
|
// GetTableRowSelectedListeners returns listeners of event which occurs when a table row becomes selected.
|
|
// If there are no listeners then the empty list is returned.
|
|
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
|
func GetTableRowSelectedListeners(view View, subviewID string) []func(TableView, int) {
|
|
if subviewID != "" {
|
|
view = ViewByID(view, subviewID)
|
|
}
|
|
if view != nil {
|
|
if value := view.Get(TableRowSelectedEvent); value != nil {
|
|
if result, ok := value.([]func(TableView, int)); ok {
|
|
return result
|
|
}
|
|
}
|
|
}
|
|
return []func(TableView, int){}
|
|
}
|