Class: HtmlGrid::Component
- Inherits:
-
Object
- Object
- HtmlGrid::Component
- Defined in:
- lib/htmlgrid/component.rb,
lib/htmlgrid/dojotoolkit.rb
Direct Known Subclasses
AbstractComposite, Div, JavaScript, NamedComponent, RichText, Span
Constant Summary collapse
- CSS_CLASS =
sets the ‘class’ html-attribute
nil- CSS_ID =
sets the ‘id’ html-attribute
nil- HTML_ATTRIBUTES =
other html-attributes
{}
- HTTP_HEADERS =
default http-headers
{ "Content-Type" => "text/html", "Cache-Control" => "no-cache, max-age=3600, must-revalidate", }
- LABEL =
precede instances of this class with a label?
false- @@html_entities =
[ ['&', 'amp'], ['<', 'lt'], ['>', 'gt'], ]
- @@symbol_entities =
:nodoc:
{ 34 => "forall", 36 => "exist", 42 => "lowast", 45 => "minus", 64 => "cong", 65 => "Alpha", 97 => "alpha", 66 => "Beta", 98 => "beta", 67 => "Chi", 99 => "chi", 68 => "Delta", 100 => "delta", 69 => "Epsilon", 101 => "epsilon", 70 => "Phi", 102 => "phi", 71 => "Gamma", 103 => "gamma", 72 => "Eta", 104 => "eta", 73 => "Iota", 105 => "iota", 75 => "Kappa", 107 => "kappa", 76 => "Lambda", 108 => "lambda", 77 => "Mu", 109 => "mu", 78 => "Nu", 110 => "nu", 79 => "Omicron", 111 => "omicron", 80 => "Pi", 112 => "pi", 81 => "Theta", 113 => "theta", 82 => "Rho", 114 => "rho", 83 => "Sigma", 115 => "sigma", 84 => "Tau", 116 => "tau", 85 => "Upsilon", 117 => "upsilon", 86 => "sigmaf", 87 => "Omega", 119 => "omega", 88 => "Xi", 120 => "xi", 89 => "Psi", 121 => "psi", 90 => "Zeta", 122 => "zeta", 94 => "perp", 126 => "sim", 163 => "le", 165 => "infin", 166 => "fnof", 171 => "harr", 172 => "larr", 173 => "uarr", 174 => "rarr", 175 => "darr", 179 => "ge", 181 => "prop", 182 => "part", 185 => "ne", 186 => "equiv", 187 => "asymp", 191 => "crarr", 196 => "otimes", 197 => "oplus", 198 => "empty", 199 => "cap", 200 => "cup", 201 => "sup", 202 => "supe", 203 => "nsub", 204 => "sub", 205 => "sube", 206 => "isin", 207 => "notin", 208 => "ang", 209 => "nabla", 213 => "prod", 214 => "radic", 215 => "sdot", 217 => "and", 218 => "or", 219 => "hArr", 220 => "lArr", 221 => "uArr", 222 => "rArr", 223 => "dArr", 229 => "sum", 242 => "int", }
- @@nl2br_ptrn =
/(\r\n)|(\n)|(\r)/- @@msie_ptrn =
/MSIE\s*(\d)/
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
:nodoc:.
-
#dojo_tooltip ⇒ Object
Returns the value of attribute dojo_tooltip.
-
#model ⇒ Object
readonly
:nodoc:.
-
#value ⇒ Object
Returns the value of attribute value.
Instance Method Summary collapse
- #_to_html(context, value = @value) ⇒ Object
-
#autofill? ⇒ Boolean
delegator to @container, default definition in Form.
-
#css_class ⇒ Object
gets the ‘class’ html-attribute if defined.
-
#css_class=(css_class) ⇒ Object
sets the ‘class’ html-attribute.
-
#css_id ⇒ Object
gets the ‘id’ html-attribute if defined.
-
#css_id=(css_id) ⇒ Object
sets the ‘id’ html-attribute.
- #dojo_dynamic_html ⇒ Object
- #dojo_parse_widgets ⇒ Object
-
#dojo_tag(widget, args = {}, inner_html = '') ⇒ Object
FIXME DOJO_VERSION >= 1.7.0 only (removed old version support).
- #dojo_title=(value) ⇒ Object
- #dynamic_html(context) ⇒ Object
-
#escape(txt) ⇒ Object
escape ‘&’, ‘<’ and ‘>’ characters in txt.
-
#escape_symbols(txt) ⇒ Object
escape symbol-font strings.
-
#formname ⇒ Object
delegator to @container, default definition in Form.
- #http_headers ⇒ Object
-
#initialize(model, session = nil, container = nil) ⇒ Component
constructor
A new instance of Component.
- #label=(boolean) ⇒ Object
-
#label? ⇒ Boolean
precede this instance with a label?.
- #onclick=(onclick) ⇒ Object
-
#onload=(onload) ⇒ Object
delegator to @container, default definition in Template.
-
#onsubmit=(onsubmit) ⇒ Object
delegator to @container, default definition in Form.
-
#set_attribute(key, value) ⇒ Object
set a html attribute.
- #tabindex=(tab) ⇒ Object
- #to_html(context) ⇒ Object
Constructor Details
#initialize(model, session = nil, container = nil) ⇒ Component
Returns a new instance of Component.
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/htmlgrid/component.rb', line 125 def initialize(model, session=nil, container=nil) @model = model @session = session @lookandfeel = session.lookandfeel if session.respond_to?(:lookandfeel) @container = container @attributes = self::class::HTML_ATTRIBUTES.dup if(css_class()) @attributes.store("class", css_class()) end if(css_id()) @attributes.store("id", css_id()) end @value = nil @label = self::class::LABEL init() end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
:nodoc:
123 124 125 |
# File 'lib/htmlgrid/component.rb', line 123 def attributes @attributes end |
#dojo_tooltip ⇒ Object
Returns the value of attribute dojo_tooltip.
12 13 14 |
# File 'lib/htmlgrid/dojotoolkit.rb', line 12 def dojo_tooltip @dojo_tooltip end |
#model ⇒ Object (readonly)
:nodoc:
123 124 125 |
# File 'lib/htmlgrid/component.rb', line 123 def model @model end |
#value ⇒ Object
Returns the value of attribute value.
124 125 126 |
# File 'lib/htmlgrid/component.rb', line 124 def value @value end |
Instance Method Details
#_to_html(context, value = @value) ⇒ Object
228 229 230 231 232 233 234 235 236 |
# File 'lib/htmlgrid/component.rb', line 228 def _to_html(context, value=@value) if(value.is_a?(Array)) value.collect { |item| _to_html(context, item) }.join(' ') elsif(value.respond_to?(:to_html)) value.to_html(context).to_s else value.to_s.gsub(@@nl2br_ptrn, '<br>') end end |
#autofill? ⇒ Boolean
delegator to @container, default definition in Form
142 143 144 |
# File 'lib/htmlgrid/component.rb', line 142 def autofill? @container.autofill? if @container.respond_to?(:autofill?) end |
#css_class ⇒ Object
gets the ‘class’ html-attribute if defined
146 147 148 |
# File 'lib/htmlgrid/component.rb', line 146 def css_class @css_class ||= self::class::CSS_CLASS end |
#css_class=(css_class) ⇒ Object
sets the ‘class’ html-attribute
150 151 152 |
# File 'lib/htmlgrid/component.rb', line 150 def css_class=(css_class) @css_class = @attributes['class'] = css_class end |
#css_id ⇒ Object
gets the ‘id’ html-attribute if defined
154 155 156 |
# File 'lib/htmlgrid/component.rb', line 154 def css_id @css_id ||= self::class::CSS_ID end |
#css_id=(css_id) ⇒ Object
sets the ‘id’ html-attribute
158 159 160 |
# File 'lib/htmlgrid/component.rb', line 158 def css_id=(css_id) @css_id = @attributes['id'] = css_id end |
#dojo_dynamic_html ⇒ Object
53 54 55 |
# File 'lib/htmlgrid/dojotoolkit.rb', line 53 def dynamic_html(context) '' end |
#dojo_parse_widgets ⇒ Object
47 48 49 50 51 |
# File 'lib/htmlgrid/dojotoolkit.rb', line 47 def if(@container.respond_to?(:dojo_parse_widgets)) @container. end end |
#dojo_tag(widget, args = {}, inner_html = '') ⇒ Object
FIXME DOJO_VERSION >= 1.7.0 only (removed old version support)
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/htmlgrid/dojotoolkit.rb', line 15 def dojo_tag(, args={}, inner_html='') # <dojo:#{widget} ...> does not work on konqueror as of # 02.06.2006. In combination with DOJO_DEBUG = true it even # hangs konqueror. =begin dojo_tag = "<div dojoType=\"#{widget}\"" args.each { |key, value| if(value.is_a?(Array)) dojo_tag << " #{key}=\"#{value.join(';')}\"" else dojo_tag << " #{key}=\"#{value}\"" end } dojo_tag << "></div>" =end div = HtmlGrid::Div.new(@model, @session, self) div.set_attribute('dojoType', ) lim = "," args.each { |key, value| if(value.is_a?(Array)) value = value.join(lim) end div.set_attribute(key, value) } div.value = inner_html div end |
#dojo_title=(value) ⇒ Object
42 43 44 45 46 |
# File 'lib/htmlgrid/dojotoolkit.rb', line 42 def dojo_title=(value) tooltip = HtmlGrid::Div.new(@model, @session, self) tooltip.value = value self.dojo_tooltip = tooltip end |
#dynamic_html(context) ⇒ Object
161 162 163 |
# File 'lib/htmlgrid/component.rb', line 161 def dynamic_html(context) '' end |
#escape(txt) ⇒ Object
escape ‘&’, ‘<’ and ‘>’ characters in txt
165 166 167 168 169 170 171 |
# File 'lib/htmlgrid/component.rb', line 165 def escape(txt) @@html_entities.inject(txt.to_s.dup) { |str, map| char, entity = map str.gsub!(char, '&' << entity << ';') str } end |
#escape_symbols(txt) ⇒ Object
escape symbol-font strings
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/htmlgrid/component.rb', line 173 def escape_symbols(txt) esc = '' txt.to_s.each_byte { |byte| esc << if(entity = @@symbol_entities[byte]) '&' << entity << ';' else if RUBY_VERSION >= '1.9' byte else byte.chr end end } esc end |
#formname ⇒ Object
delegator to @container, default definition in Form
189 190 191 |
# File 'lib/htmlgrid/component.rb', line 189 def formname @container.formname if @container.respond_to?(:formname) end |
#http_headers ⇒ Object
192 193 194 |
# File 'lib/htmlgrid/component.rb', line 192 def http_headers self::class::HTTP_HEADERS.dup end |
#label=(boolean) ⇒ Object
199 200 201 |
# File 'lib/htmlgrid/component.rb', line 199 def label=(boolean) @label = boolean end |
#label? ⇒ Boolean
precede this instance with a label?
196 197 198 |
# File 'lib/htmlgrid/component.rb', line 196 def label? @label end |
#onclick=(onclick) ⇒ Object
202 203 204 |
# File 'lib/htmlgrid/component.rb', line 202 def onclick=(onclick) @attributes['onclick'] = onclick end |
#onload=(onload) ⇒ Object
delegator to @container, default definition in Template
206 207 208 |
# File 'lib/htmlgrid/component.rb', line 206 def onload=(onload) @container.onload = onload if(@container.respond_to? :onload=) end |
#onsubmit=(onsubmit) ⇒ Object
delegator to @container, default definition in Form
210 211 212 |
# File 'lib/htmlgrid/component.rb', line 210 def onsubmit=(onsubmit) @container.onsubmit = onsubmit if(@container.respond_to? :onsubmit=) end |
#set_attribute(key, value) ⇒ Object
set a html attribute
214 215 216 |
# File 'lib/htmlgrid/component.rb', line 214 def set_attribute(key, value) @attributes.store(key, value) end |
#tabindex=(tab) ⇒ Object
217 218 219 |
# File 'lib/htmlgrid/component.rb', line 217 def tabindex=(tab) @attributes.store('tabIndex', tab.to_s) end |
#to_html(context) ⇒ Object
220 221 222 223 224 225 226 |
# File 'lib/htmlgrid/component.rb', line 220 def to_html(context) if RUBY_VERSION > "1.9" _to_html(context, @value).to_s.force_encoding('utf-8') else _to_html(context, @value).to_s end end |