mirror of
https://github.com/astaxie/beego.git
synced 2024-11-29 14:51:31 +00:00
233 lines
5.1 KiB
Go
233 lines
5.1 KiB
Go
package elements
|
|
|
|
type LableInterface interface {
|
|
SetLable(label string)
|
|
GetLable() (label string)
|
|
SetLabelAttributes(labelattrs map[string]interface{})
|
|
GetLabelAttributes() (labelattrs map[string]interface{})
|
|
SetLabelOptions(labelOptions map[string]interface{})
|
|
GetLabelOptions() (labelOptions map[string]interface{})
|
|
ClearLabelOptions()
|
|
RemoveLabelOptions(keys []string)
|
|
SetLabelOption(key string, val interface{})
|
|
GetLabelOption(key string) (val interface{})
|
|
RemoveLabelOption(key string)
|
|
HasLabelOption(key string) bool
|
|
}
|
|
|
|
type ElementInterface interface {
|
|
SetName(name string)
|
|
GetName() (name string)
|
|
SetOptions(options map[string]interface{})
|
|
SetOption(key string, val interface{})
|
|
GetOptions() (options map[string]interface{})
|
|
GetOption(key string) (val interface{})
|
|
SetAttribute(key string, val interface{})
|
|
GetAttribute(key string) (val interface{})
|
|
RemoveAttribute(key string)
|
|
HasAttribute(key string) bool
|
|
SetAttributes(attributes map[string]interface{})
|
|
GetAttributes() (attributes map[string]interface{})
|
|
RemoveAttributes(keys []string)
|
|
ClearAttributes()
|
|
SetValue(val interface{})
|
|
GetValue() (val interface{})
|
|
SetMessages(msg string)
|
|
GetMessages() (msg string)
|
|
SetValidator(v ValidatorInterface)
|
|
Valid(val interface{}) bool
|
|
GetMessage() string
|
|
LableInterface
|
|
}
|
|
|
|
type ValidatorInterface interface {
|
|
IsValid(val interface{}) bool
|
|
GetMessages() (msg string)
|
|
}
|
|
|
|
type Element struct {
|
|
options map[string]interface{}
|
|
attributes map[string]interface{}
|
|
labelAttributes map[string]interface{}
|
|
labelOptions map[string]interface{}
|
|
value interface{}
|
|
lable string
|
|
messages string
|
|
validator ValidatorInterface
|
|
}
|
|
|
|
func (e *Element) SetName(name string) {
|
|
e.SetAttribute("name", name)
|
|
}
|
|
|
|
func (e *Element) GetName() (name string) {
|
|
return e.GetAttribute("name").(string)
|
|
}
|
|
|
|
func (e *Element) SetOptions(options map[string]interface{}) {
|
|
if val, ok := options["label"]; ok {
|
|
e.SetLable(val.(string))
|
|
}
|
|
|
|
if val, ok := options["label_attributes"]; ok {
|
|
e.SetLabelAttributes(val.(map[string]interface{}))
|
|
}
|
|
|
|
if val, ok := options["label_options"]; ok {
|
|
e.SetLabelOptions(val.(map[string]interface{}))
|
|
}
|
|
e.options = options
|
|
}
|
|
|
|
func (e *Element) SetOption(key string, val interface{}) {
|
|
e.options[key] = val
|
|
}
|
|
|
|
func (e *Element) GetOptions() (options map[string]interface{}) {
|
|
return e.options
|
|
}
|
|
|
|
func (e *Element) GetOption(key string) (val interface{}) {
|
|
if val, ok := e.options[key]; ok {
|
|
return val
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (e *Element) SetAttribute(key string, val interface{}) {
|
|
e.attributes[key] = val
|
|
}
|
|
|
|
func (e *Element) GetAttribute(key string) (val interface{}) {
|
|
if val, ok := e.attributes[key]; ok {
|
|
return val
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (e *Element) RemoveAttribute(key string) {
|
|
delete(e.attributes, key)
|
|
}
|
|
|
|
func (e *Element) HasAttribute(key string) bool {
|
|
if _, ok := e.attributes[key]; ok {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (e *Element) SetAttributes(attributes map[string]interface{}) {
|
|
for key, val := range attributes {
|
|
e.SetAttribute(key, val)
|
|
}
|
|
}
|
|
|
|
func (e *Element) GetAttributes() (attributes map[string]interface{}) {
|
|
return e.attributes
|
|
}
|
|
|
|
func (e *Element) RemoveAttributes(keys []string) {
|
|
for _, key := range keys {
|
|
e.RemoveAttribute(key)
|
|
}
|
|
}
|
|
|
|
func (e *Element) ClearAttributes() {
|
|
e.attributes = make(map[string]interface{})
|
|
}
|
|
|
|
func (e *Element) SetValue(val interface{}) {
|
|
e.value = val
|
|
}
|
|
|
|
func (e *Element) GetValue() (val interface{}) {
|
|
return e.value
|
|
}
|
|
|
|
func (e *Element) SetLable(label string) {
|
|
e.lable = label
|
|
}
|
|
|
|
func (e *Element) GetLable() (label string) {
|
|
return e.lable
|
|
}
|
|
|
|
func (e *Element) SetLabelAttributes(labelattrs map[string]interface{}) {
|
|
e.labelAttributes = labelattrs
|
|
}
|
|
|
|
func (e *Element) GetLabelAttributes() (labelattrs map[string]interface{}) {
|
|
return e.labelAttributes
|
|
}
|
|
|
|
func (e *Element) SetLabelOptions(labelOptions map[string]interface{}) {
|
|
for key, val := range labelOptions {
|
|
e.SetLabelOption(key, val)
|
|
}
|
|
}
|
|
|
|
func (e *Element) GetLabelOptions() (labelOptions map[string]interface{}) {
|
|
return e.labelOptions
|
|
}
|
|
|
|
func (e *Element) ClearLabelOptions() {
|
|
e.labelOptions = make(map[string]interface{})
|
|
}
|
|
|
|
func (e *Element) RemoveLabelOptions(keys []string) {
|
|
for _, key := range keys {
|
|
e.RemoveLabelOption(key)
|
|
}
|
|
}
|
|
|
|
func (e *Element) SetLabelOption(key string, val interface{}) {
|
|
e.labelOptions[key] = val
|
|
}
|
|
|
|
func (e *Element) GetLabelOption(key string) (val interface{}) {
|
|
if v, ok := e.labelOptions[key]; ok {
|
|
return v
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (e *Element) RemoveLabelOption(key string) {
|
|
delete(e.labelOptions, key)
|
|
}
|
|
|
|
func (e *Element) HasLabelOption(key string) bool {
|
|
if _, ok := e.labelOptions[key]; ok {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (e *Element) SetMessages(msg string) {
|
|
e.messages = msg
|
|
}
|
|
|
|
func (e *Element) GetMessages() (msg string) {
|
|
return e.messages
|
|
}
|
|
|
|
func (e *Element) SetValidator(v ValidatorInterface) {
|
|
e.validator = v
|
|
}
|
|
|
|
func (e *Element) Valid(val interface{}) bool {
|
|
if e.validator == nil {
|
|
return true
|
|
}
|
|
if e.validator.IsValid(val) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (e *Element) GetMessage() string {
|
|
if e.validator == nil {
|
|
return ""
|
|
}
|
|
return e.validator.GetMessages()
|
|
}
|