001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.juneau.bean.html5; 018 019import java.util.*; 020 021import org.apache.juneau.annotation.*; 022 023/** 024 * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#the-ol-element"><ol></a> 025 * element. 026 * 027 * <p> 028 * The ol element represents an ordered list of items. It contains li elements that represent 029 * individual list items. The list items are typically numbered automatically by the browser, 030 * and the numbering can be customized using the type and start attributes. 031 * 032 * <h5 class='section'>Examples:</h5> 033 * <p class='bcode w800'> 034 * <jk>import static</jk> org.apache.juneau.bean.html5.HtmlBuilder.*; 035 * 036 * <jc>// Simple ordered list</jc> 037 * Ol <jv>ol1</jv> = <jsm>ol</jsm>( 038 * <jsm>li</jsm>(<js>"First item"</js>), 039 * <jsm>li</jsm>(<js>"Second item"</js>), 040 * <jsm>li</jsm>(<js>"Third item"</js>) 041 * ); 042 * 043 * <jc>// Ordered list with custom numbering</jc> 044 * Ol <jv>ol2</jv> = <jsm>ol</jsm>( 045 * <jsm>li</jsm>(<js>"Item A"</js>), 046 * <jsm>li</jsm>(<js>"Item B"</js>), 047 * <jsm>li</jsm>(<js>"Item C"</js>) 048 * ).type(<js>"A"</js>).start(1); 049 * 050 * <jc>// Reversed ordered list</jc> 051 * Ol <jv>ol3</jv> = <jsm>ol</jsm>( 052 * <jsm>li</jsm>(<js>"Last item"</js>), 053 * <jsm>li</jsm>(<js>"Middle item"</js>), 054 * <jsm>li</jsm>(<js>"First item"</js>) 055 * ).reversed(<jk>true</jk>); 056 * 057 * <jc>// Nested ordered list</jc> 058 * Ol <jv>ol4</jv> = <jsm>ol</jsm>( 059 * <jsm>li</jsm>(<js>"Main item 1"</js>), 060 * <jsm>li</jsm>( 061 * <jsm>ol</jsm>( 062 * <jsm>li</jsm>(<js>"Sub item 1.1"</js>), 063 * <jsm>li</jsm>(<js>"Sub item 1.2"</js>) 064 * ) 065 * ), 066 * <jsm>li</jsm>(<js>"Main item 2"</js>) 067 * ); 068 * </p> 069 * 070 * <p> 071 * The following convenience methods are provided for constructing instances of this bean: 072 * <ul class='javatree'> 073 * <li class='jc'>{@link HtmlBuilder} 074 * <ul class='javatree'> 075 * <li class='jm'>{@link HtmlBuilder#ol() ol()} 076 * <li class='jm'>{@link HtmlBuilder#ol(Object...) ol(Object...)} 077 * </ul> 078 * </ul> 079 * </p> 080 * 081 * <h5 class='section'>See Also:</h5><ul> 082 * <li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/JuneauBeanHtml5">juneau-bean-html5</a> 083 * </ul> 084 */ 085@Bean(typeName = "ol") 086public class Ol extends HtmlElementContainer { 087 088 /** 089 * Creates an empty {@link Ol} element. 090 */ 091 public Ol() {} 092 093 /** 094 * Creates an {@link Ol} element with the specified child nodes. 095 * 096 * @param children The child nodes. 097 */ 098 public Ol(Object...children) { 099 children(children); 100 } 101 102 @Override /* Overridden from HtmlElement */ 103 public Ol _class(String value) { // NOSONAR - Intentional naming. 104 super._class(value); 105 return this; 106 } 107 108 @Override /* Overridden from HtmlElement */ 109 public Ol accesskey(String value) { 110 super.accesskey(value); 111 return this; 112 } 113 114 @Override /* Overridden from HtmlElement */ 115 public Ol attr(String key, Object val) { 116 super.attr(key, val); 117 return this; 118 } 119 120 @Override /* Overridden from HtmlElement */ 121 public Ol attrUri(String key, Object val) { 122 super.attrUri(key, val); 123 return this; 124 } 125 126 @Override /* Overridden from HtmlElementContainer */ 127 public Ol child(Object value) { 128 super.child(value); 129 return this; 130 } 131 132 @Override /* Overridden from HtmlElementContainer */ 133 public Ol children(Object...value) { 134 super.children(value); 135 return this; 136 } 137 138 @Override /* Overridden from HtmlElement */ 139 public Ol contenteditable(Object value) { 140 super.contenteditable(value); 141 return this; 142 } 143 144 @Override /* Overridden from HtmlElement */ 145 public Ol dir(String value) { 146 super.dir(value); 147 return this; 148 } 149 150 @Override /* Overridden from HtmlElement */ 151 public Ol hidden(Object value) { 152 super.hidden(value); 153 return this; 154 } 155 156 @Override /* Overridden from HtmlElement */ 157 public Ol id(String value) { 158 super.id(value); 159 return this; 160 } 161 162 @Override /* Overridden from HtmlElement */ 163 public Ol lang(String value) { 164 super.lang(value); 165 return this; 166 } 167 168 @Override /* Overridden from HtmlElement */ 169 public Ol onabort(String value) { 170 super.onabort(value); 171 return this; 172 } 173 174 @Override /* Overridden from HtmlElement */ 175 public Ol onblur(String value) { 176 super.onblur(value); 177 return this; 178 } 179 180 @Override /* Overridden from HtmlElement */ 181 public Ol oncancel(String value) { 182 super.oncancel(value); 183 return this; 184 } 185 186 @Override /* Overridden from HtmlElement */ 187 public Ol oncanplay(String value) { 188 super.oncanplay(value); 189 return this; 190 } 191 192 @Override /* Overridden from HtmlElement */ 193 public Ol oncanplaythrough(String value) { 194 super.oncanplaythrough(value); 195 return this; 196 } 197 198 @Override /* Overridden from HtmlElement */ 199 public Ol onchange(String value) { 200 super.onchange(value); 201 return this; 202 } 203 204 @Override /* Overridden from HtmlElement */ 205 public Ol onclick(String value) { 206 super.onclick(value); 207 return this; 208 } 209 210 @Override /* Overridden from HtmlElement */ 211 public Ol oncuechange(String value) { 212 super.oncuechange(value); 213 return this; 214 } 215 216 @Override /* Overridden from HtmlElement */ 217 public Ol ondblclick(String value) { 218 super.ondblclick(value); 219 return this; 220 } 221 222 @Override /* Overridden from HtmlElement */ 223 public Ol ondurationchange(String value) { 224 super.ondurationchange(value); 225 return this; 226 } 227 228 @Override /* Overridden from HtmlElement */ 229 public Ol onemptied(String value) { 230 super.onemptied(value); 231 return this; 232 } 233 234 @Override /* Overridden from HtmlElement */ 235 public Ol onended(String value) { 236 super.onended(value); 237 return this; 238 } 239 240 @Override /* Overridden from HtmlElement */ 241 public Ol onerror(String value) { 242 super.onerror(value); 243 return this; 244 } 245 246 @Override /* Overridden from HtmlElement */ 247 public Ol onfocus(String value) { 248 super.onfocus(value); 249 return this; 250 } 251 252 @Override /* Overridden from HtmlElement */ 253 public Ol oninput(String value) { 254 super.oninput(value); 255 return this; 256 } 257 258 @Override /* Overridden from HtmlElement */ 259 public Ol oninvalid(String value) { 260 super.oninvalid(value); 261 return this; 262 } 263 264 @Override /* Overridden from HtmlElement */ 265 public Ol onkeydown(String value) { 266 super.onkeydown(value); 267 return this; 268 } 269 270 @Override /* Overridden from HtmlElement */ 271 public Ol onkeypress(String value) { 272 super.onkeypress(value); 273 return this; 274 } 275 276 @Override /* Overridden from HtmlElement */ 277 public Ol onkeyup(String value) { 278 super.onkeyup(value); 279 return this; 280 } 281 282 @Override /* Overridden from HtmlElement */ 283 public Ol onload(String value) { 284 super.onload(value); 285 return this; 286 } 287 288 @Override /* Overridden from HtmlElement */ 289 public Ol onloadeddata(String value) { 290 super.onloadeddata(value); 291 return this; 292 } 293 294 @Override /* Overridden from HtmlElement */ 295 public Ol onloadedmetadata(String value) { 296 super.onloadedmetadata(value); 297 return this; 298 } 299 300 @Override /* Overridden from HtmlElement */ 301 public Ol onloadstart(String value) { 302 super.onloadstart(value); 303 return this; 304 } 305 306 @Override /* Overridden from HtmlElement */ 307 public Ol onmousedown(String value) { 308 super.onmousedown(value); 309 return this; 310 } 311 312 @Override /* Overridden from HtmlElement */ 313 public Ol onmouseenter(String value) { 314 super.onmouseenter(value); 315 return this; 316 } 317 318 @Override /* Overridden from HtmlElement */ 319 public Ol onmouseleave(String value) { 320 super.onmouseleave(value); 321 return this; 322 } 323 324 @Override /* Overridden from HtmlElement */ 325 public Ol onmousemove(String value) { 326 super.onmousemove(value); 327 return this; 328 } 329 330 @Override /* Overridden from HtmlElement */ 331 public Ol onmouseout(String value) { 332 super.onmouseout(value); 333 return this; 334 } 335 336 @Override /* Overridden from HtmlElement */ 337 public Ol onmouseover(String value) { 338 super.onmouseover(value); 339 return this; 340 } 341 342 @Override /* Overridden from HtmlElement */ 343 public Ol onmouseup(String value) { 344 super.onmouseup(value); 345 return this; 346 } 347 348 @Override /* Overridden from HtmlElement */ 349 public Ol onmousewheel(String value) { 350 super.onmousewheel(value); 351 return this; 352 } 353 354 @Override /* Overridden from HtmlElement */ 355 public Ol onpause(String value) { 356 super.onpause(value); 357 return this; 358 } 359 360 @Override /* Overridden from HtmlElement */ 361 public Ol onplay(String value) { 362 super.onplay(value); 363 return this; 364 } 365 366 @Override /* Overridden from HtmlElement */ 367 public Ol onplaying(String value) { 368 super.onplaying(value); 369 return this; 370 } 371 372 @Override /* Overridden from HtmlElement */ 373 public Ol onprogress(String value) { 374 super.onprogress(value); 375 return this; 376 } 377 378 @Override /* Overridden from HtmlElement */ 379 public Ol onratechange(String value) { 380 super.onratechange(value); 381 return this; 382 } 383 384 @Override /* Overridden from HtmlElement */ 385 public Ol onreset(String value) { 386 super.onreset(value); 387 return this; 388 } 389 390 @Override /* Overridden from HtmlElement */ 391 public Ol onresize(String value) { 392 super.onresize(value); 393 return this; 394 } 395 396 @Override /* Overridden from HtmlElement */ 397 public Ol onscroll(String value) { 398 super.onscroll(value); 399 return this; 400 } 401 402 @Override /* Overridden from HtmlElement */ 403 public Ol onseeked(String value) { 404 super.onseeked(value); 405 return this; 406 } 407 408 @Override /* Overridden from HtmlElement */ 409 public Ol onseeking(String value) { 410 super.onseeking(value); 411 return this; 412 } 413 414 @Override /* Overridden from HtmlElement */ 415 public Ol onselect(String value) { 416 super.onselect(value); 417 return this; 418 } 419 420 @Override /* Overridden from HtmlElement */ 421 public Ol onshow(String value) { 422 super.onshow(value); 423 return this; 424 } 425 426 @Override /* Overridden from HtmlElement */ 427 public Ol onstalled(String value) { 428 super.onstalled(value); 429 return this; 430 } 431 432 @Override /* Overridden from HtmlElement */ 433 public Ol onsubmit(String value) { 434 super.onsubmit(value); 435 return this; 436 } 437 438 @Override /* Overridden from HtmlElement */ 439 public Ol onsuspend(String value) { 440 super.onsuspend(value); 441 return this; 442 } 443 444 @Override /* Overridden from HtmlElement */ 445 public Ol ontimeupdate(String value) { 446 super.ontimeupdate(value); 447 return this; 448 } 449 450 @Override /* Overridden from HtmlElement */ 451 public Ol ontoggle(String value) { 452 super.ontoggle(value); 453 return this; 454 } 455 456 @Override /* Overridden from HtmlElement */ 457 public Ol onvolumechange(String value) { 458 super.onvolumechange(value); 459 return this; 460 } 461 462 @Override /* Overridden from HtmlElement */ 463 public Ol onwaiting(String value) { 464 super.onwaiting(value); 465 return this; 466 } 467 468 /** 469 * <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#attr-ol-reversed">reversed</a> 470 * attribute. 471 * 472 * <p> 473 * Number the list backwards.. 474 * 475 * <p> 476 * This attribute uses deminimized values: 477 * <ul> 478 * <li><jk>false</jk> - Attribute is not added</li> 479 * <li><jk>true</jk> - Attribute is added as <js>"reversed"</js></li> 480 * <li>Other values - Passed through as-is</li> 481 * </ul> 482 * 483 * @param value 484 * The new value for this attribute. 485 * Typically a {@link Boolean} or {@link String}. 486 * @return This object. 487 */ 488 public Ol reversed(Object value) { 489 attr("reversed", deminimize(value, "reversed")); 490 return this; 491 } 492 493 @Override /* Overridden from HtmlElementContainer */ 494 public Ol setChildren(List<Object> children) { 495 super.setChildren(children); 496 return this; 497 } 498 499 @Override /* Overridden from HtmlElement */ 500 public Ol spellcheck(Object value) { 501 super.spellcheck(value); 502 return this; 503 } 504 505 /** 506 * <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#attr-ol-start">start</a> attribute. 507 * 508 * <p> 509 * Ordinal value of the first item. 510 * 511 * @param value 512 * The new value for this attribute. 513 * Typically a {@link Number} or {@link String}. 514 * @return This object. 515 */ 516 public Ol start(Object value) { 517 attr("start", value); 518 return this; 519 } 520 521 @Override /* Overridden from HtmlElement */ 522 public Ol style(String value) { 523 super.style(value); 524 return this; 525 } 526 527 @Override /* Overridden from HtmlElement */ 528 public Ol tabindex(Object value) { 529 super.tabindex(value); 530 return this; 531 } 532 533 @Override /* Overridden from HtmlElement */ 534 public Ol title(String value) { 535 super.title(value); 536 return this; 537 } 538 539 @Override /* Overridden from HtmlElement */ 540 public Ol translate(Object value) { 541 super.translate(value); 542 return this; 543 } 544 545 /** 546 * <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#attr-ol-type">type</a> attribute. 547 * 548 * <p> 549 * Specifies the type of numbering to use for the ordered list items. 550 * 551 * <p> 552 * Possible values: 553 * <ul> 554 * <li><js>"1"</js> - Decimal numbers (1, 2, 3, ...) - default</li> 555 * <li><js>"a"</js> - Lowercase letters (a, b, c, ...)</li> 556 * <li><js>"A"</js> - Uppercase letters (A, B, C, ...)</li> 557 * <li><js>"i"</js> - Lowercase Roman numerals (i, ii, iii, ...)</li> 558 * <li><js>"I"</js> - Uppercase Roman numerals (I, II, III, ...)</li> 559 * </ul> 560 * 561 * @param value The type of numbering for the ordered list. 562 * @return This object. 563 */ 564 public Ol type(String value) { 565 attr("type", value); 566 return this; 567 } 568}