mirror of
https://github.com/mistergibson/gxg-web-client.git
synced 2026-08-15 11:34:29 -07:00
1111 lines
No EOL
32 KiB
Ruby
1111 lines
No EOL
32 KiB
Ruby
module GxG
|
|
module Gui
|
|
# ### Core Component Classes & Registration System
|
|
class Abbreviation < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :abbr
|
|
@options[:title] = @title.clone.to_s
|
|
end
|
|
end
|
|
#
|
|
class Address < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :address
|
|
end
|
|
end
|
|
#
|
|
class Area < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :area
|
|
end
|
|
end
|
|
#
|
|
class Bold < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :b
|
|
end
|
|
end
|
|
#
|
|
class Bdi < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :bdi
|
|
end
|
|
end
|
|
#
|
|
class Bdo < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :bdo
|
|
end
|
|
end
|
|
#
|
|
class BlockQuote < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :blockquote
|
|
end
|
|
end
|
|
#
|
|
class Break < GxG::Gui::Vdom::BaseElement
|
|
# Review has no closing tag - account for this in Factory
|
|
def _before_create
|
|
super()
|
|
@domtype = :br
|
|
end
|
|
end
|
|
#
|
|
class Caption < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :caption
|
|
end
|
|
end
|
|
#
|
|
class Cite < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :cite
|
|
end
|
|
end
|
|
#
|
|
class Code < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :code
|
|
end
|
|
end
|
|
#
|
|
class Column < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :col
|
|
end
|
|
end
|
|
#
|
|
class ColumnGroup < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :colgroup
|
|
end
|
|
end
|
|
#
|
|
class Data < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :data
|
|
end
|
|
end
|
|
#
|
|
class DataList < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :datalist
|
|
end
|
|
end
|
|
#
|
|
class Description < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :dd
|
|
end
|
|
end
|
|
#
|
|
class Deleted < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :del
|
|
end
|
|
end
|
|
#
|
|
class Details < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :details
|
|
end
|
|
end
|
|
#
|
|
class Dfn < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :dfn
|
|
end
|
|
end
|
|
#
|
|
class Dialog < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :dialog
|
|
end
|
|
end
|
|
#
|
|
class Division < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :div
|
|
end
|
|
end
|
|
#
|
|
class DescriptionList < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :dl
|
|
end
|
|
end
|
|
#
|
|
class DescriptionTerm < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :dt
|
|
end
|
|
end
|
|
#
|
|
class Emphasis < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :em
|
|
end
|
|
end
|
|
#
|
|
class Embed < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :embed
|
|
end
|
|
end
|
|
#
|
|
class Figure < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :figure
|
|
end
|
|
end
|
|
#
|
|
class FigureCaption < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :figcaption
|
|
end
|
|
end
|
|
#
|
|
class ThemeDivider < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :hr
|
|
end
|
|
end
|
|
#
|
|
class Italic < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :i
|
|
end
|
|
end
|
|
#
|
|
class InlineFrame < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :iframe
|
|
end
|
|
end
|
|
#
|
|
class Insertion < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :ins
|
|
end
|
|
end
|
|
#
|
|
class KeyboardKey < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :kbd
|
|
end
|
|
end
|
|
#
|
|
class Map < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :map
|
|
end
|
|
end
|
|
#
|
|
class Mark < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :mark
|
|
end
|
|
end
|
|
#
|
|
class Meter < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :meter
|
|
end
|
|
end
|
|
#
|
|
class NoScript < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :noscript
|
|
end
|
|
end
|
|
#
|
|
class Object < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :object
|
|
end
|
|
end
|
|
#
|
|
class OptionGroup < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :optgroup
|
|
end
|
|
end
|
|
#
|
|
class Parameter < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :param
|
|
end
|
|
end
|
|
#
|
|
class Picture < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :picture
|
|
end
|
|
end
|
|
#
|
|
class Preformatted < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :pre
|
|
end
|
|
end
|
|
#
|
|
class Progress < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :progress
|
|
end
|
|
end
|
|
#
|
|
class Quotation < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :q
|
|
end
|
|
end
|
|
#
|
|
class StrikeThrough < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :s
|
|
end
|
|
end
|
|
#
|
|
class Sample < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :samp
|
|
end
|
|
end
|
|
#
|
|
class Source < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :source
|
|
end
|
|
end
|
|
#
|
|
class Strong < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :strong
|
|
end
|
|
end
|
|
#
|
|
class Small < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :small
|
|
end
|
|
end
|
|
#
|
|
class Style < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :style
|
|
end
|
|
end
|
|
#
|
|
class SubScript < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :sub
|
|
end
|
|
end
|
|
#
|
|
class Summary < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :summary
|
|
end
|
|
end
|
|
#
|
|
class SuperScript < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :sup
|
|
end
|
|
end
|
|
#
|
|
class Svg < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :svg
|
|
end
|
|
end
|
|
#
|
|
class Template < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :template
|
|
end
|
|
end
|
|
#
|
|
class Time < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :time
|
|
end
|
|
end
|
|
#
|
|
class Track < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :track
|
|
end
|
|
end
|
|
#
|
|
class Misspelled < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :u
|
|
end
|
|
end
|
|
#
|
|
class Variable < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :var
|
|
end
|
|
end
|
|
#
|
|
class WordBreak < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :wbr
|
|
end
|
|
end
|
|
#
|
|
class Header < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :header
|
|
end
|
|
end
|
|
#
|
|
class Navigation < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :nav
|
|
end
|
|
end
|
|
#
|
|
class Main < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :main
|
|
end
|
|
end
|
|
#
|
|
class Section < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :section
|
|
end
|
|
end
|
|
#
|
|
class Article < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :article
|
|
end
|
|
end
|
|
#
|
|
class Aside < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :aside
|
|
end
|
|
end
|
|
#
|
|
class Footer < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :footer
|
|
end
|
|
end
|
|
#
|
|
class Form < GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :div
|
|
end
|
|
#
|
|
def form_data()
|
|
result = {}
|
|
search_queue = self.children.values
|
|
while search_queue.size > 0 do
|
|
entry = search_queue.shift
|
|
if entry
|
|
if entry.domtype == :input
|
|
result[(entry.title.to_s.to_sym)] = entry.value()
|
|
else
|
|
entry.children.values.each do |the_child|
|
|
search_queue << the_child
|
|
end
|
|
end
|
|
end
|
|
end
|
|
result
|
|
end
|
|
end
|
|
# ### Buttons
|
|
class ButtonInput < ::GxG::Gui::Vdom::BaseClickableElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :button
|
|
end
|
|
end
|
|
#
|
|
class SubmitButton < ::GxG::Gui::Vdom::BaseClickableElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :submit
|
|
end
|
|
end
|
|
#
|
|
class Block < ::GxG::Gui::Vdom::BaseClickableElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :div
|
|
@options.delete(:type)
|
|
true
|
|
end
|
|
end
|
|
#
|
|
class CheckBox < ::GxG::Gui::Vdom::BaseClickableElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :checkbox
|
|
end
|
|
end
|
|
#
|
|
class Image < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :image
|
|
if @options[:source]
|
|
@options[:src] = @options.delete(:source)
|
|
end
|
|
@options[:alt] ||= @options[:src]
|
|
end
|
|
end
|
|
#
|
|
class Video < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :video
|
|
if @options[:source]
|
|
@options[:src] = @options.delete(:source)
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class Audio < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :audio
|
|
if @options[:source]
|
|
@options[:src] = @options.delete(:source)
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class Canvas < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :canvas
|
|
if @options[:source]
|
|
@options[:src] = @options.delete(:source)
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class HiddenInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :hidden
|
|
end
|
|
end
|
|
#
|
|
class FileInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :file
|
|
end
|
|
end
|
|
#
|
|
class TextInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :text
|
|
end
|
|
end
|
|
#
|
|
class PasswordInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :password
|
|
end
|
|
end
|
|
#
|
|
class ResetInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :reset
|
|
end
|
|
end
|
|
#
|
|
class RadioButton < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :radio
|
|
end
|
|
end
|
|
#
|
|
class ColorPicker < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :color
|
|
end
|
|
end
|
|
#
|
|
class DatePicker < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :date
|
|
end
|
|
end
|
|
#
|
|
class DateTimeLocal < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :"datetime-local"
|
|
end
|
|
end
|
|
#
|
|
class EmailInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :email
|
|
end
|
|
end
|
|
#
|
|
class MonthPicker < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :month
|
|
end
|
|
end
|
|
#
|
|
class NumberInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :number
|
|
end
|
|
end
|
|
#
|
|
class RangeInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :range
|
|
end
|
|
end
|
|
#
|
|
class SearchInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :search
|
|
end
|
|
end
|
|
#
|
|
class PhoneInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :tel
|
|
end
|
|
end
|
|
#
|
|
class TimePicker < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :time
|
|
end
|
|
end
|
|
#
|
|
class UrlInput < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :url
|
|
end
|
|
end
|
|
#
|
|
class WeekPicker < ::GxG::Gui::Vdom::BaseInputElement
|
|
def _before_create
|
|
super()
|
|
@options[:type] = :week
|
|
end
|
|
end
|
|
#
|
|
class Label < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :label
|
|
end
|
|
end
|
|
#
|
|
class TextArea < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :textarea
|
|
end
|
|
end
|
|
#
|
|
class Output < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :output
|
|
end
|
|
end
|
|
#
|
|
class Paragraph < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :p
|
|
end
|
|
end
|
|
#
|
|
class Header1 < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :h1
|
|
end
|
|
end
|
|
#
|
|
class Header2 < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :h2
|
|
end
|
|
end
|
|
#
|
|
class Header3 < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :h3
|
|
end
|
|
end
|
|
#
|
|
class Header4 < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :h4
|
|
end
|
|
end
|
|
#
|
|
class Header5 < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :h5
|
|
end
|
|
end
|
|
#
|
|
class Header6 < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :h6
|
|
end
|
|
end
|
|
#
|
|
class List < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :ul
|
|
end
|
|
end
|
|
#
|
|
class OrderedList < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :ol
|
|
end
|
|
end
|
|
#
|
|
class ListItem < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :li
|
|
end
|
|
end
|
|
#
|
|
class Anchor < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :a
|
|
end
|
|
end
|
|
#
|
|
class ExternalLink < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
# When link is clicked will navigate to a location outside the
|
|
# application and in a new tab.
|
|
# Specify option :target to set the location.
|
|
@options[:target] ||= "_blank"
|
|
@domtype = :a
|
|
end
|
|
end
|
|
#
|
|
class Button < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :button
|
|
unless @options[:type] == "button"
|
|
@options[:type] = "button"
|
|
end
|
|
unless @states[:button] == true
|
|
@states[:button] = true
|
|
end
|
|
end
|
|
#
|
|
def _after_create
|
|
super()
|
|
# Review : consider a non-gxg listener for un-focusing the active element. thus:
|
|
#`{@element}.addEventListener("click",function(e){#{clicked};document.activeElement.blur()})`
|
|
on(:click) do |the_event|
|
|
`document.activeElement.blur()`
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class Table < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :table
|
|
end
|
|
end
|
|
#
|
|
class TableHeader < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :th
|
|
end
|
|
end
|
|
#
|
|
class TableRow < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :tr
|
|
end
|
|
end
|
|
#
|
|
class TableCell < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :td
|
|
end
|
|
end
|
|
#
|
|
class BlockTable < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :div
|
|
unless @states[:table] == true
|
|
@states[:table] = true
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class BlockTableHeader < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :div
|
|
unless @states[:th] == true
|
|
@states[:th] = true
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class BlockTableRow < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :div
|
|
unless @states[:tr] == true
|
|
@states[:tr] = true
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class BlockTableCell < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :div
|
|
unless @states[:td] == true
|
|
@states[:td] = true
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class Span < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :span
|
|
end
|
|
end
|
|
#
|
|
class Select < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :select
|
|
end
|
|
end
|
|
#
|
|
class Option < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :option
|
|
end
|
|
end
|
|
#
|
|
class FieldSet < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :fieldset
|
|
unless @states[:fieldset] == true
|
|
@states[:fieldset] = true
|
|
end
|
|
end
|
|
end
|
|
#
|
|
class Legend < ::GxG::Gui::Vdom::BaseElement
|
|
def _before_create
|
|
super()
|
|
@domtype = :legend
|
|
end
|
|
end
|
|
#
|
|
# ### Component Registration
|
|
COMPONENT_CLASSES = {
|
|
:abbreviation => ::GxG::Gui::Abbreviation,
|
|
:address => ::GxG::Gui::Address,
|
|
:area => ::GxG::Gui::Area,
|
|
:bold => ::GxG::Gui::Bold,
|
|
:bdi => ::GxG::Gui::Bdi,
|
|
:bdo => ::GxG::Gui::Bdo,
|
|
:blockquote => ::GxG::Gui::BlockQuote,
|
|
:break => ::GxG::Gui::Break,
|
|
:caption => ::GxG::Gui::Caption,
|
|
:cite => ::GxG::Gui::Cite,
|
|
:code => ::GxG::Gui::Code,
|
|
:column => ::GxG::Gui::Column,
|
|
:column_group => ::GxG::Gui::ColumnGroup,
|
|
:data => ::GxG::Gui::Data,
|
|
:datalist => ::GxG::Gui::DataList,
|
|
:description => ::GxG::Gui::Description,
|
|
:deleted => ::GxG::Gui::Deleted,
|
|
:details => ::GxG::Gui::Details,
|
|
:dfn => ::GxG::Gui::Dfn,
|
|
:dialog => ::GxG::Gui::Dialog,
|
|
:division => ::GxG::Gui::Division,
|
|
:description_list => ::GxG::Gui::DescriptionList,
|
|
:description_term => ::GxG::Gui::DescriptionTerm,
|
|
:emphasis => ::GxG::Gui::Emphasis,
|
|
:embed => ::GxG::Gui::Embed,
|
|
:figure => ::GxG::Gui::Figure,
|
|
:figure_caption => ::GxG::Gui::FigureCaption,
|
|
:theme_divider => ::GxG::Gui::ThemeDivider,
|
|
:italic => ::GxG::Gui::Italic,
|
|
:inline_frame => ::GxG::Gui::InlineFrame,
|
|
:Insertion => ::GxG::Gui::Insertion,
|
|
:keyboard_key => ::GxG::Gui::KeyboardKey,
|
|
:map => ::GxG::Gui::Map,
|
|
:mark => ::GxG::Gui::Mark,
|
|
:meter => ::GxG::Gui::Meter,
|
|
:noscript => ::GxG::Gui::NoScript,
|
|
:object => ::GxG::Gui::Object,
|
|
:option_group => ::GxG::Gui::OptionGroup,
|
|
:parameter => ::GxG::Gui::Parameter,
|
|
:picture => ::GxG::Gui::Picture,
|
|
:preformatted => ::GxG::Gui::Preformatted,
|
|
:progress => ::GxG::Gui::Progress,
|
|
:quotation => ::GxG::Gui::Quotation,
|
|
:strike_through => ::GxG::Gui::StrikeThrough,
|
|
:sample => ::GxG::Gui::Sample,
|
|
:section => ::GxG::Gui::Section,
|
|
:small => ::GxG::Gui::Small,
|
|
:source => ::GxG::Gui::Source,
|
|
:strong => ::GxG::Gui::Strong,
|
|
:style => ::GxG::Gui::Style,
|
|
:sub_script => ::GxG::Gui::SubScript,
|
|
:summary => ::GxG::Gui::Summary,
|
|
:super_script => ::GxG::Gui::SuperScript,
|
|
:svg => ::GxG::Gui::Svg,
|
|
:template => ::GxG::Gui::Template,
|
|
:text_area => ::GxG::Gui::TextArea,
|
|
:time => ::GxG::Gui::Time,
|
|
:track => ::GxG::Gui::Track,
|
|
:misspelled => ::GxG::Gui::Misspelled,
|
|
:variable => ::GxG::Gui::Variable,
|
|
:word_break => ::GxG::Gui::WordBreak,
|
|
:header => ::GxG::Gui::Header,
|
|
:navigation => ::GxG::Gui::Navigation,
|
|
:main => ::GxG::Gui::Main,
|
|
:article => ::GxG::Gui::Article,
|
|
:aside => ::GxG::Gui::Aside,
|
|
:footer => ::GxG::Gui::Footer,
|
|
:form => ::GxG::Gui::Form,
|
|
:button_input => ::GxG::Gui::ButtonInput,
|
|
:submit_button => ::GxG::Gui::SubmitButton,
|
|
:block => ::GxG::Gui::Block,
|
|
:checkbox => ::GxG::Gui::CheckBox,
|
|
:image => ::GxG::Gui::Image,
|
|
:video => ::GxG::Gui::Video,
|
|
:audio => ::GxG::Gui::Audio,
|
|
:canvas => ::GxG::Gui::Canvas,
|
|
:hidden => ::GxG::Gui::HiddenInput,
|
|
:file_input => ::GxG::Gui::FileInput,
|
|
:text_input => ::GxG::Gui::TextInput,
|
|
:password_input => ::GxG::Gui::PasswordInput,
|
|
:reset_input => ::GxG::Gui::ResetInput,
|
|
:radio_button => ::GxG::Gui::RadioButton,
|
|
:color_picker => ::GxG::Gui::ColorPicker,
|
|
:date_picker => ::GxG::Gui::DatePicker,
|
|
:datetime_local => ::GxG::Gui::DateTimeLocal,
|
|
:email_input => ::GxG::Gui::EmailInput,
|
|
:month_picker => ::GxG::Gui::MonthPicker,
|
|
:number_input =>::GxG::Gui::NumberInput,
|
|
:range_input => ::GxG::Gui::RangeInput,
|
|
:search_input => ::GxG::Gui::SearchInput,
|
|
:phone_input => ::GxG::Gui::PhoneInput,
|
|
:time_picker => ::GxG::Gui::TimePicker,
|
|
:url_input => ::GxG::Gui::UrlInput,
|
|
:week_picker => ::GxG::Gui::WeekPicker,
|
|
:label => ::GxG::Gui::Label,
|
|
:output => ::GxG::Gui::Output,
|
|
:paragraph => ::GxG::Gui::Paragraph,
|
|
:header1 => ::GxG::Gui::Header1,
|
|
:header2 => ::GxG::Gui::Header2,
|
|
:header3 => ::GxG::Gui::Header3,
|
|
:header4 => ::GxG::Gui::Header4,
|
|
:header5 => ::GxG::Gui::Header5,
|
|
:header6 => ::GxG::Gui::Header6,
|
|
:list => ::GxG::Gui::List,
|
|
:ordered_list => ::GxG::Gui::OrderedList,
|
|
:list_item => ::GxG::Gui::ListItem,
|
|
:anchor => ::GxG::Gui::Anchor,
|
|
:external_link => ::GxG::Gui::ExternalLink,
|
|
:button => ::GxG::Gui::Button,
|
|
:table => ::GxG::Gui::Table,
|
|
:table_header => ::GxG::Gui::TableHeader,
|
|
:table_row => ::GxG::Gui::TableRow,
|
|
:table_cell => ::GxG::Gui::TableCell,
|
|
:block_table => ::GxG::Gui::BlockTable,
|
|
:block_table_header => ::GxG::Gui::BlockTableHeader,
|
|
:block_table_row => ::GxG::Gui::BlockTableRow,
|
|
:block_table_cell => ::GxG::Gui::BlockTableCell,
|
|
:span => ::GxG::Gui::Span,
|
|
:select => ::GxG::Gui::Select,
|
|
:option => ::GxG::Gui::Option,
|
|
:field_set => ::GxG::Gui::FieldSet,
|
|
:legend => ::GxG::Gui::Legend
|
|
}
|
|
#
|
|
def self.component_class(the_type_specifier=nil)
|
|
result = nil
|
|
if the_type_specifier
|
|
result = GxG::Gui::COMPONENT_CLASSES[(the_type_specifier.to_s.to_sym)]
|
|
end
|
|
result
|
|
end
|
|
#
|
|
def self.class_component(the_class_specifier=nil)
|
|
result = nil
|
|
if the_class_specifier
|
|
found_index = GxG::Gui::COMPONENT_CLASSES.values.index(the_class_specifier)
|
|
if found_index
|
|
result = GxG::Gui::COMPONENT_CLASSES.keys[(found_index)]
|
|
end
|
|
end
|
|
result
|
|
end
|
|
#
|
|
def self.component_registered?(the_specifier=nil)
|
|
if GxG::Gui::component_class(the_specifier)
|
|
true
|
|
else
|
|
false
|
|
end
|
|
end
|
|
#
|
|
def self.register_component_class(the_specifier=nil, the_constant=nil)
|
|
if the_specifier.is_any?(::String, ::Symbol) && the_constant.is_a?(::Class)
|
|
if GxG::Gui::component_registered?(the_specifier.to_s.to_sym)
|
|
if GxG::Gui::component_class(the_specifier.to_s.to_sym) != the_constant
|
|
GxG::Gui::COMPONENT_CLASSES[(the_specifier.to_s.to_sym)] = the_constant
|
|
true
|
|
else
|
|
# Review : should re-defining component constants be allowed ??
|
|
log_warn("Component Class #{the_specifier.to_s.to_sym.inspect} => #{the_constant.inspect} already defined.")
|
|
false
|
|
end
|
|
else
|
|
GxG::Gui::COMPONENT_CLASSES[(the_specifier.to_s.to_sym)] = the_constant
|
|
true
|
|
end
|
|
else
|
|
false
|
|
end
|
|
end
|
|
#
|
|
end
|
|
# End Gui
|
|
end
|
|
# End GxG
|
|
# ### Foundation Integration
|
|
module GxG
|
|
module Gui
|
|
# ### Foundation Component Classes
|
|
# See : https://get.foundation/sites/docs/index.html
|
|
#
|
|
end
|
|
end |