smalltalk
/
osmo-st-all
Archived
1
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
osmo-st-all/Core/Buildables/Page.st

83 lines
2.5 KiB
Smalltalk
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"======================================================================
|
| Iliad.Page class definition
|
======================================================================"
"======================================================================
|
| Copyright (c) 2008-2009
| Nicolas Petton <petton.nicolas@gmail.com>,
| Sébastien Audier <sebastien.audier@gmail.com>
|
| This file is part of the Iliad framework.
|
| Permission is hereby granted, free of charge, to any person obtaining
| a copy of this software and associated documentation files (the
| 'Software'), to deal in the Software without restriction, including
| without limitation the rights to use, copy, modify, merge, publish,
| distribute, sublicense, and/or sell copies of the Software, and to
| permit persons to whom the Software is furnished to do so, subject to
| the following conditions:
|
| The above copyright notice and this permission notice shall be
| included in all copies or substantial portions of the Software.
|
| THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
======================================================================"
Buildable subclass: Page [
<comment: nil>
<category: 'Iliad-Core-Buildables'>
bodyElement [
<category: 'accessing attributes'>
^self attributeAt: #bodyElement ifAbsentPut: [BodyElement new]
]
headElement [
<category: 'accessing attributes'>
^self attributeAt: #headElement ifAbsentPut: [HeadElement new]
]
htmlElement [
<category: 'accessing attributes'>
^self attributeAt: #htmlElement ifAbsentPut: [HtmlElement new]
]
rootElement [
<category: 'accessing attributes'>
^self attributeAt: #rootElement ifAbsentPut: [self rootElementClass new]
]
rootElementClass [
<category: 'accessing attributes'>
^self attributeAt: #rootElementClass
ifAbsentPut: [self defaultRootElementClass]
]
defaultRootElementClass [
<category: 'defaults'>
^XHTMLElement
]
build [
<category: 'building'>
self htmlElement add: self headElement.
self htmlElement add: self bodyElement.
self rootElement add: self htmlElement.
^self rootElement
]
]