| [Top] | [Contents] | [Index] | [ ? ] |
| Introduction | ||
| 1. Downloading and installing Iliad | How to get Iliad for your favorite Smalltalk dialect. | |
| 2. Short tutorial | ||
| 3. Elements | ||
| 4. Applications | ||
| 5. Widgets | ||
| 6. Routes and urls | ||
| 7. Managing sessions | ||
| 8. The Javascript layer | ||
| 9. Serving static files | ||
| 10. RSS | ||
| 11. Formula | ||
| 12. Deploying Iliad applications | ||
| 13. Iliad class library reference | ||
| Index |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Iliad is a Smalltalk web application framework.
Heavily based on reusable stateful widgets, Iliad lets you build powerful dynamic applications easily. It allows you to trigger Smalltalk code when an user clicks on a link or submits a form instead of bothering you with low level details.
Thanks to its JavaScript layer Iliad automatically uses AJAX requests to update the client state, and it will nicely degrade to normal requests if JavaScript is not enabled, so you don’t have to bother about that either.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Here is a short list of Iliad related resources:
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Iliad’s documentation is evolving. We are looking for contributors to help us improve this documentation.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 1.1 Installing on GNU Smalltalk | ||
| 1.2 Installing on Pharo Smalltalk | ||
| 1.3 Loading and starting Iliad | ||
| 1.4 Testing the installation |
Iliad is currently available for GNU Smalltalk, Squeak and Pharo. In this chapter you will find detailed installation instructions for each supported Smalltalk dialect.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
gst-packageWith GNU Smalltalk 3.2 or newer, gst-package can be used to download and install Iliad.
~$ gst-package --download grease -t ~/.st ~$ gst-package --download iliad -t ~/.st |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
You can download Iliad by cloning the Git repository.
~$ git clone http://github.com/NicolasPetton/Grease.git ~$ cd Grease ~$ gst-package -t ~/.st ./package.xml |
~$ git clone git://github.com/NicolasPetton/iliad-stable.git ~$ cd iliad-stable ~$ ./scripts/make_packages |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Download ConfigurationOfIliad package from the Metacello repository from squeaksource :
MCHttpRepository location: 'http://www.squeaksource.com/MetacelloRepository' user: '' password: '' |
Open a workspace and do-it:
ConfigurationOfIliad load |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Load Swazoo 2.2 and Grease from SqueakSource. Load packages from the SqueakSource repository in the following order:
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Iliad is webserver agnostic. However, only one server adapter for Swazoo has been written so far. This adapter is available for Pharo Smalltalk and GNU Smalltalk.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The git repository of Iliad includes a start script, which will create an image with all required packages loaded and start Iliad with gst-remote.
~$ ./scripts/start -p PORT |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
You can load Iliad packages into a GNU Smalltalk image with the PackageLoader. When using gst’s REPL, you will have to suspend the active process to make Swazoo listen to a given port:
st> PackageLoader fileInPackage: 'Iliad' st> Iliad.SwazooIliad startOn: 8888 st> processor activeProcess suspend |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
You can create a bash script and use it to load the desired packages and start Iliad:
#!/bin/bash # load packages into a new image named iliad.im echo "PackageLoader fileInPackage: 'Iliad'. ObjectMemory snapshot: 'iliad.im'" | gst # start gst-remote with the image gst-remote --server -I iliad.im & sleep 2 # start Swazoo on port 8888 gst-remote --eval "Iliad.SwazooIliad startOn: 8888" |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
To start Swazoo with the Iliad adapter, do-it:
SwazooIliad startOn: 8888 |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Open ’http://localhost:8888/browse’ in your browser. You should see the list of loaded Iliad applications.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
In this short tutorial we will build our first Iliad widget: a simple counter. Widgets (see section Widgets) are high-level reusable, stateful, graphical objects. We will create the class and a method to build HTML, then add some behavior to increase and decrease the counter.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Widgets are subclasses of ILWidget. Our widget will have a count instance variable, initiliazed to zero.
Iliad.ILWidget subclass: CounterWidget [
| count |
initialize [
super initiliaze.
count := 0
]
]
|
To build HTML Iliad calls the #contents method of a widget. This method answers a buildable object: almost always a block closure or another widget.
contents [
^[:e | e h1: count printString]
]
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Now we can add action methods to increase and decrease the counter.
increase [
count := count + 1
]
|
decrease [
count := count - 1
]
|
To allow the user to increase or decrease the counter, we build anchors which will call the action methods (see section Actions), and modify the contents method as follow.
contents [
^[:e |
e h1: self count printString.
e a
action: [self increase];
text: '++'.
e a
action: [self decrease];
text: '++']
]
|
To tell Iliad that the state of the counter has changed and that it should be rebuilt, we call its #markDirty method in the action methods.
increase [
count := count + 1.
self markDirty
]
|
decrease [
count := count - 1.
self markDirty
]
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
To see our widget in action, we build it in an application. Applications (see section Applications) are similar to widgets except that they dispatch requests in controller methods, similar to the #contents method of widgets. The default controller method is #index.
Iliad.ILApplication subclass: CounterApplication [
CounterApplication class >> path [
^'counter'
]
counterWidget [
^counterWidget ifNil: [counterWidget := CounterWidget new]
]
index [
<category: 'controllers'>
^self counterWidget
]
]
|
The class side #path method answers the base path of our application.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 3.1 Composing the element tree | ||
| 3.2 Elements and buildables | ||
| 3.3 Actions | ||
| 3.4 DOM events |
Elements are low-level stateless objects composed in a tree to build valid (X)HTML. For each element class there is a corresponding HTML tag. This means you will never have to worry about writing valid HTML yourself, but instead use the element API to build HTML in Smalltalk.
#contents methods of widgets (see section Widgets) or controller methods of applications (see section Applications) are called by Iliad to build HTML using elements.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ILHTMLBuilderELement is the root class of the HTML element hierarchy. It has convenience methods for adding other HTML elements, and manipulate HTML attributes. These convenience methods follow HTML tag and attribute names. You can browse them in the adding-convenience protocol. All HTML elements inherit these methods.
The API provides the #add: method for adding a child to an element. Convenience methods use this method to compose the tree of elements.
p [
<category: 'adding-conveniance'>
^self add: ILParagraphElement new
]
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Each element in the tree represents a given HTML tag. Each attribute of an element has a corresponding HTML tag attribute. We compose HTML by combining the two kind of methods. As methods are named depending on the HTML tag they represent, building HTML with Iliad looks very similar to actual HTML code.
The following example
e p: 'Hello world'.
e br.
e a
href: 'http://www.iliadproject.org';
text: 'Iliad website'.
|
Will produce the HTML:
<p>Hello world</p> <br/> <a href='http://www.iliadproject.org'>Iliad website</a> |
Most of the time you won’t have to learn the HTML API if you already know the HTML tag names or attributes you want to write. If you can’t find the name of a convenience method, you can browse the ILHTMLBuilderELement class and its subclasses in Iliad-Core-HTMLElements.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Buildable objects are high-level stateful graphical objects. They use elements to build themselves as HTML. They must implement the #buildOn: method, taking an element as parameter.
A buildable object can be built on an element with the ILElement>>build: method.
Default buildable objects in Iliad includes Block closures and Widgets.
div build: [:e | e text: 'hello world']. div build: myWidget. |
Buildables should never be built using their #contents method or the ILElement>>add: method. Therefore, the following example is not valid.
e add: myWidget contents. "Not valid" e build: myWidget. "Valid" |
Block closures can be used to make building methods simpler by nesting elements.
| div a |
div := e div.
a := div a.
a href: 'http://www.iliadproject.org'.
a img
src: 'iliad.png';
alt: 'Iliad logo'.
div h1: 'Iliad rocks!'
|
Can be written:
e div build: [:div |
div a build: [:a |
a href: 'http://www.iliadproject.org'.
a img
src: 'iliad.png';
alt: 'Iliad logo'].
div h1: 'Iliad rocks!']
|
And will build the following HTML code:
<div>
<a href='http://www.iliadproject.org'>
<img src='iliad.png' alt='Iliad logo'/>
</a>
<h1>Iliad rocks!</h1>
</div>
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Buildables can do more than just build HTML. They can behave, change their state and react to user interactions through Smalltalk code evaluated in actions.
Instead of having to parse URLs and requests, Iliad uses action objects to trigger Smalltalk code when the user interacts with the page, clicks on a link or submits a form. An action is an Iliad object with a Smalltalk block associated to an id, but we will oftenly refer to the block of an action as the action itself.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The ILAnchorElement class provides the #action: method to associate an action block to the anchor.
e a
text: 'Click!';
action: [Transcript show: 'Anchor clicked.']
|
Because #action: will add an href attribute with a generated URL, anchors can’t have both an associated action and an href.
e a
text: 'Click!';
action: [Transcript show: 'Anchor clicked.'; cr];
href: 'http://www/smalltalk.org' "This will override the href set by #action:"
|
The counter widget example in Iliad-More-Examples is a good example of actions in anchors.
contents [
^[:e |
e h1: self count printString.
e a
action: [self increase];
text: '++'.
e space.
e a
action: [self decrease];
text: '--']
]
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Form elements can also have actions, evaluated when the form is submitted. We can modify the #contents method of the counter example to use a form and buttons instead of anchors.
contents [
^[:e |
e h1: self count printString.
e form build: [:form |
form button
text: '++';
action: [self increase].
form button
text: '--';
action: [self decrease]]]
]
|
Some form elements like inputs or textareas take a one argument action block. The argument is the value entered by the user.
e form build: [:form |
form input action: [:val | self doSomethingWith: val].
form button text: 'Ok']
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Iliad provides a simple API to associate JavaScript code to DOM events (click, focus, etc.) in the accessing attributes-events method protocol. The main method is #on:add: which takes two strings as arguments, the first one for the event, and the last one for the associated JavaScript code. Many shortcut methods exist for specific events, like #onClick: or #onFocus:.
e p
text: 'Click';
onClick: 'alert("clicked!");'.
|
If an element cannot be associated with a DOM event, an ILAttributeNotUnderstood error will be raised.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
It is also possible to associate actions to DOM events. Names of methods follow the same convention, but end with do: and take a block as parameter.
e p
text: 'An action block is evaluated on a click event';
onClickDo: [Transcript show: 'Clicked!'; cr]
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 4.1 The base path | ||
| 4.2 Controller methods | ||
| 4.3 Filtering controllers | ||
| 4.4 Custom request dispatching | ||
| 4.5 Updating the page |
An application is the root of a buildable object tree composing the user interface. Applications are used to dispatch requests to other buildables, typically widgets (see section Widgets), and hold their state. Unlike widgets they don’t have one building method but several controller methods used to dispatch requests to the right buildable object.
Application instances are handled by the framework. Iliad stores one instance of an application class per session, which will persist through requests.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Each application class should have an unique base path, a string corresponding to the path of the application. The base path is answered by class method path.
Iliad.ILApplication subclass: MyApplication [
MyApplication class >> path [
"Answer the base path of the application"
^'my_application'
]
]
|
During a request processing, Iliad will determine to which application the request will be dispatched depending on its base path. If Iliad is running on port 8888, instances of MyApplication will be reached at:
http://localhost:8888/my_application |
By default, ILApplication’s path is the empty string. This means the class method path must be overriden, else the application will not be reachable.
The base path of an application is an absolute path and can freely be composed with '/'. We can for example create two application classes with the same first path fragment: '/foo/bar' and '/foo/baz'.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Controller methods are building methods used to dispatch requests. The application will dispatch the request to the method named after the next fragment of the URL. The default controller method is #index. Concrete applications should always override this method to answer a buildable object.
For example, if the base path of the application is 'foo', the application will try to dispatch a request url '/foo/bar' to the controller method #bar. If there is no method matching this rule, #index will be called.
By default, controller methods must be in the 'controllers' method protocol to be allowed to be called as controller methods (see section Filtering controllers).
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
At this point we can write a ’hello world’ application, with a base path and an #index controller.
Iliad.ILApplication subclass: HelloWorldApplication [
HelloWorldApplication class >> path [
<category: 'accessing'>
^'hello_world'
]
index [
<category: 'controllers'>
^[:e | e h1: 'hello world']
]
]
|
After starting Iliad on port 8888, the application can be browsed at http://localhost:8888/hello_world. As expected, the application will dispatch both /hello_world and /hello_world/index to the #index controller.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Let’s improve the counter application written in the tutorial (see section Short tutorial) and make it a multi-counter application. The application will build several counter widgets in the #index controller.
Iliad.ILApplication subclass: CounterApplication [
CounterApplication class >> path [
<category: 'accessing'>
^'counter'
]
initialize [
<category: ’initialization’>
super initialize.
counters := Array
with: CounterWidget new
with: CounterWidget new
with: CounterWidget new
]
index [
<category: ’controllers’>
^[:e |
counters do: [:each | e build: each]]
]
]
|
To persist through requests, widgets must be stored in instance variables. In this example counters are stored at initialization in a collection.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The use of a method of an application as a controller method is restricted by the selector filter. Each application class has its own selector filter.
Each time an application dispatches a request to a controller method, the selector filter block is evaluated against a selector to determine if the corresponding method is allowed to be used as controller or not. The default selector filter allows all methods in the 'controllers' protocol, but you may want to filter selectors differently.
The default selector filter can be overriden in the class side #defaultSelectoreFilter method, or you can plug in a new selector filter with the class side #selectorFilter:. A selector filter block must be a one argument block and answer a boolean.
In the following example, the only selector allowed is #index, all other methods will be forbidden.
MyApplication selectorFilter: [:selector | selector == #index] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ILApplication provides the #dispatchOverride hook method to handle special cases for dispatching a request. Subclasses of ILApplication should call super first to see if it was already handled.
The behavior of #dispatchOverride is very simple. Before dispatching a request to a controller method, #dispatchOverride is called. If the answer is anything but nil, the application will consider the request as handled and will not dispatch it to a controller method.
See section Using a custom session class, for a simple usage example of this method.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
During the generation of a page for a request processing, the application can update any part of it using the #updatePage: method. This method will be called for each new request excepting AJAX ones. In this method we can for example change the title of the page, update its <head> section, etc.
#updatePage: should not be used to update contents of widgets included in the <body> section, as widgets may not be built yet when Iliad calls #updatePage:.
The argument sent to #updatePage: is an instance of Iliad.ILPage. This class has accessors for both the <head> section and the <body> section of the page, respectively instances of Iliad.ILHeadElement and Iliad.ILBodyElement.
updatePage: aPage [
<cateogry: 'updating'>
super updatePage: aPage.
aPage head title: 'The multi-counter example'.
aPage head stylesheet href: '/path/to/my/style.css'
]
|
super should always be called, as Iliad uses Javascript files (see section The Javascript layer) by default to send AJAX requests automatically.
See section Serving static files, for more details about how to serve static files with Iliad.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Iliad web pages are composed of embedded Widgets. Widgets are high-level, reusable graphical objects. Widgets are not only about building HTML, they also hold the state of web applications and will persist through requests. ILWidget is probably the most important class of Iliad, as widgets will compose most of your user interfaces and control flow.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
To store the user interface state, applications and widgets must know and store their children. Applications themselves are stored in sessions (see section Managing sessions). Widgets are stored in instance variables in a tree of widgets by their parent, applications or other widgets. During a request processing, after the actions evaluation step, widgets are rebuilt and sent to the client in HTML or JSON (see section Maintaining the client state).
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
When updating the client state, refreshing the entire page to update some widgets - therefore rebuilding the entire application with all its children widgets - would be a waste of bandwidth and time. Iliad is designed to automatically build full-blown AJAX applications without hard-coding Javascript inside the HTML page. Because Iliad uses a thin Javascript layer, your content will automatically degrade on clients that don’t have Javascript enabled.
With Javascript enabled web browsers, Iliad automatically uses AJAX to update the client state. The javascript layer (see section The Javascript layer) catches clicks on anchors with actions and form submissions, and send to the server a XmlHTTPRequest. During the request processing, widgets which state has changed are sent back to the browser in JSON. The Javascript layer will then update the page with the new data to keep the client state up-to-date.
The #markDirty method is used to inform Iliad that a widget’s state has changed. It will rebuild it and send it’s new HTML contents in JSON to the client.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ILSequence| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
<head> section of the page| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TODO
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 7.1 The session manager | ||
| 7.2 Using a custom session class | ||
| 7.3 Handling session expiration | ||
| • Note about the lifetime of sessions and UI objects |
Session objects are automatically instanciated by the framework during the first interaction with an Iliad application. Sessions hold the state of the web application: application instances, actions and states of widgets. They can also be used to keep globally accessible and shared informations among the user interface. A session persists as long as it is active, i.e., as long as the user interacts with the application. After a timeout, if the user is not interacting with the application anymore, the session will expire.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The session manager is the object responsible for managing sessions throughout every Iliad application. The current session manager can be accessed through the class side method ILSessionManager>>current. ILSessionManager implements methods for internal session management. These methods are part of the Iliad core, and are intended to be used while developping, deploying or debugging an Iliad application. Manually removing or invalidate data from sessions is not recommended.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The session manager can at will remove all sessions it contains:
Iliad.ILSessionManager current removeAllSessions |
Expired sessions are automatically removed from the session manager from time to time. However, you can explicitely remove all expired sessions with:
Iliad.ILSessionManager current removeExpiredSessions |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Sessions can be accessed with the #sessions accessor. Iteration through sessions can be done with #sessionsDo:. Note that widgets and applications should never try to access the current session through the session manager, but instead use their #session accessor.
Accessing the current session from a debugger or an inspector is not always possible since it is only accessible in the context of a request processing. A workaround is to inspect the session object while processing the request by adding the following code inside the #contents method of a widget or inside a controller method of an application:
self session inspect |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ILSession is the default session class and can be subclassed to store special informations or handle actions. As an example we will write a session class with very basic login facilities and use it in a simple application.
Iliad.ILSession subclass: MySession [
| username |
username [
^username
]
username: aString [
username := aString
]
]
|
We can create an application class that will only be accessible to logged in users:
Iliad.ILApplication subclass: MyApplication [
MyApplication class >> path [^'my_app']
]
|
A login form with validation, registration, password recovery, etc. should be built using a custom widget. In a matter of simplicity, here we will just write the form in a building method in the application.
loginContents [
<category: 'building'>
^[:e |
e form build: [:form |
form input action: [:val | self login: val].
form button text: 'Login']]
]
login: aString [
<category: 'actions'>
self session username: aString.
self redirectToCurrentController
]
|
Testing if the user is logged in or not can happen in a controller method. However, if we want the application to globally accessible to logged in users only, we can use the hook method #dispatchOverride (see section Custom request dispatching).
dispatchOverride [
<category: 'dispatching'>
^self session username
ifNil: [self loginContents]
ifNotNil: [super dispatchOverride]
]
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Sessions expire after some time if the user is not interacting with the application. The default timeout is set to 1800 seconds, and can be changed with: ILSession>>expirySeconds:.
When a session expires, Iliad calls its #onExpire method. If you use your own session class, you can override this method to trigger events for session expiration: close database connections, displaying session expiration informations to the user, etc. To illustrate this behavior, we will reuse our session class and logout the user when its session expires.
onExpire [
<category: 'events'>
self username: nil.
super onExpire
]
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TODO
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.2.1 Iliad.ILAction: accessing | (instance) | |
| 13.2.2 Iliad.ILAction: converting | (instance) | |
| 13.2.3 Iliad.ILAction: evaluating | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘block’.
Not commented.
Answer ‘key’.
Not commented.
Answer ‘value’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I implement a registry of actions.
| 13.3.1 Iliad.ILActionRegistry: accessing | (instance) | |
| 13.3.2 Iliad.ILActionRegistry: actions | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.4.1 Iliad.ILAnchorElement: accessing | (instance) | |
| 13.4.2 Iliad.ILAnchorElement: accessing attributes | (instance) | |
| 13.4.3 Iliad.ILAnchorElement: accessing attributes-imagemap | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Answer ‘’a”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am a special decorator for Widgets, used to handle widget answers. See #handleAnswer: and ILWidget>>show:onAnswer:
| 13.5.1 Iliad.ILAnswerHandler: accessing | (instance) | |
| 13.5.2 Iliad.ILAnswerHandler: decorations | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘action’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.6.1 Iliad.ILAppendDelegator: building | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am the Iliad implementation of an application.
I am is the root object of a buildable object tree. Applications have a set of controllers, methods used to dispatch requests to the corresponding sub-tree of buildable objects (oftenly a composition of stateful widgets).
In concrete subclasses, the class method #path should return the base path (string) for the application.
""""""""""""""""""""""""""" " Applications & UI state " """""""""""""""""""""""""""
You don’t have to bother about instantiating applications, the framework will handle session and application instances. Application instances are stored in sessions. Each session stores one instance of the same application class.
Root widgets should be stored in applications to keep their state across requests.
"""""""""""""""""""""" " Controller methods " """"""""""""""""""""""
Like widgets, I am stateful. Unlike widgets I know how to dispatch a request with #dispatch : the controller method corresponding to the url will be called.
Controller methods must: - answer a buildable object (a block closure or an instance of ILWidget for example). - be in the ’controllers’ method protocol (with the default selector filter)
The default controller method is #index.
"""""""""""""""""" " selectorFilter " """"""""""""""""""
The class inst var <selectorFilter> is used to filter controller methods. By default it allows all methods in the ’controllers’ protocol.
Alternatively, you can override the class method #defaultSelectorFilter to supply your own selectorFilter or plug it in using the class method #selectorFilter:
| 13.7.1 Iliad.ILApplication class: accessing | (class) | |
| 13.7.2 Iliad.ILApplication class: defaults | (class) | |
| 13.7.3 Iliad.ILApplication: accessing | (instance) | |
| 13.7.4 Iliad.ILApplication: building | (instance) | |
| 13.7.5 Iliad.ILApplication: controllers | (instance) | |
| 13.7.6 Iliad.ILApplication: converting | (instance) | |
| 13.7.7 Iliad.ILApplication: defaults | (instance) | |
| 13.7.8 Iliad.ILApplication: dispatching | (instance) | |
| 13.7.9 Iliad.ILApplication: redirecting | (instance) | |
| 13.7.10 Iliad.ILApplication: updating | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Base path of the application. Override this method in concrete subclasses. It should return a string
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Override this method to supply your own selectorFilter or plug it in using #selectorFilter:
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘model’.
Not commented.
Answer ‘page’.
Not commented.
Convenience method. This is useful for building anonymous widgets. ex: myWidget := self widgetFor: [:e | e h1: ’Hello world!’]
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Call #dispatch. A buildable is expected from #dispatch
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
default view method
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘ILHTMLPage’.
Answer ‘ILHTMLBuilderElement’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer true if <aSelector> is ok to call from a URL. Default implementation is to use the pluggable filter block.
Dispatch to correct controller method. If dispatchOverride returns something different from nil, consider it handled.
Dispatch to correct method: - If <aMethod> is empty we call #index - If the selector is allowed to be executed then we just call it
Handle special urls. Subclass implementors should call super first and see if it was handled.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Abort all other request handling
Abort all other request handling
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer the receiver.
Answer the receiver.
Override to add elements to aPage. super should always be called
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.8.1 Iliad.ILApplicationHandler: initialization | (instance) | |
| 13.8.2 Iliad.ILApplicationHandler: request handling | (instance) | |
| 13.8.3 Iliad.ILApplicationHandler: responding | (instance) | |
| 13.8.4 Iliad.ILApplicationHandler: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.9.1 Iliad.ILAreaElement: accessing | (instance) | |
| 13.9.2 Iliad.ILAreaElement: accessing attributes | (instance) | |
| 13.9.3 Iliad.ILAreaElement: accessing attributes-imagemap | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’area”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.11.1 Iliad.ILAttributeNotUnderstood class: instance creation | (class) | |
| 13.11.2 Iliad.ILAttributeNotUnderstood: accessing | (instance) | |
| 13.11.3 Iliad.ILAttributeNotUnderstood: exceptionDescription | (instance) | |
| 13.11.4 Iliad.ILAttributeNotUnderstood: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘attribute’.
Not commented.
Answer ‘element’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer the receiver.
Answer ‘true’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.12.1 Iliad.ILBodyElement: accessing | (instance) | |
| 13.12.2 Iliad.ILBodyElement: addessing attributes-events | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’body”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.13.1 Iliad.ILBreakElement: accessing | (instance) | |
| 13.13.2 Iliad.ILBreakElement: accessing attributes-events | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’br”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am an abstract buildable object. My subclasses must override #build method, which should return an instance of a subclass of Iliad.ILElement.
| 13.14.1 Iliad.ILBuildable: accessing | (instance) | |
| 13.14.2 Iliad.ILBuildable: accessing attributes | (instance) | |
| 13.14.3 Iliad.ILBuildable: actions | (instance) | |
| 13.14.4 Iliad.ILBuildable: building | (instance) | |
| 13.14.5 Iliad.ILBuildable: converting | (instance) | |
| 13.14.6 Iliad.ILBuildable: printing | (instance) | |
| 13.14.7 Iliad.ILBuildable: redirecting | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Override this method in subclasses. It must answer an Element
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Abort all other request handling. Redirect to anUrlString
Abort all other request handling. Redirect to the index method of <aClass>
Abort all other request handling. Redirect to the controller named <aString> of <aClass>
Abort all other request handling. Redirect to the current controller method
Abort all other request handling. Redirect to the index method of this class
Abort all other request handling. Make a redirection to another controller method in this application
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.15.1 Iliad.ILButtonElement: accessing | (instance) | |
| 13.15.2 Iliad.ILButtonElement: accessing attributes | (instance) | |
| 13.15.3 Iliad.ILButtonElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’button”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.16.1 Iliad.ILCheckboxElement: accessing | (instance) | |
| 13.16.2 Iliad.ILCheckboxElement: accessing attributes | (instance) | |
| 13.16.3 Iliad.ILCheckboxElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’input”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.17.1 Iliad.ILClosingElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.18.1 Iliad.ILComposite: accessing | (instance) | |
| 13.18.2 Iliad.ILComposite: adding | (instance) | |
| 13.18.3 Iliad.ILComposite: comparing | (instance) | |
| 13.18.4 Iliad.ILComposite: enumerating | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer ‘next’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.19.1 Iliad.ILConditionalCommentElement: accessing | (instance) | |
| 13.19.2 Iliad.ILConditionalCommentElement: accessing attributes-events | (instance) | |
| 13.19.3 Iliad.ILConditionalCommentElement: conditions | (instance) | |
| 13.19.4 Iliad.ILConditionalCommentElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Greater than
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Less than
Not
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.20.1 Iliad.ILConfirmationWidget: accessing | (instance) | |
| 13.20.2 Iliad.ILConfirmationWidget: building | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘confirmationString’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I store current request context objects:
- the router - the session - the request itself
I can be accessed through ILObject>>context
| 13.21.1 Iliad.ILContext: accessing | (instance) | |
| 13.21.2 Iliad.ILContext: accessing-attributes | (instance) | |
| 13.21.3 Iliad.ILContext: adding | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Answer ‘request’.
Not commented.
Not commented.
Answer ‘session’.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
From Seaside 2.8
I represent a cookie, a piece of information that is stored on the client and read and writable by the server. I am basically a key/value pair of strings. You can never trust information in a cookie, the client is free to edit it. I model only a part of the full cookie specification.
For more information see RFC2965 (http://tools.ietf.org/html/rfc2965)
| 13.22.1 Iliad.ILCookie class: instance creation | (class) | |
| 13.22.2 Iliad.ILCookie: accessing | (instance) | |
| 13.22.3 Iliad.ILCookie: api | (instance) | |
| 13.22.4 Iliad.ILCookie: comparing | (instance) | |
| 13.22.5 Iliad.ILCookie: writing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘expiry’.
Not commented.
Answer ‘key’.
Not commented.
Not commented.
Not commented.
Answer ‘value’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am a decorator for Widgets. I can be added to a widget by calling #decorateWith: from a widget. Subclasses can be used to modify the building process of a widget, or change its behavior
| 13.25.1 Iliad.ILDecorator class: instance creation | (class) | |
| 13.25.2 Iliad.ILDecorator: accessing | (instance) | |
| 13.25.3 Iliad.ILDecorator: building | (instance) | |
| 13.25.4 Iliad.ILDecorator: decorations | (instance) | |
| 13.25.5 Iliad.ILDecorator: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘decoratee’.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer ‘#()’.
Answer ‘#()’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘false’.
Answer ‘false’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.26.1 Iliad.ILDelegator: accessing | (instance) | |
| 13.26.2 Iliad.ILDelegator: building | (instance) | |
| 13.26.3 Iliad.ILDelegator: decorations | (instance) | |
| 13.26.4 Iliad.ILDelegator: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer ‘widget’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘true’.
Answer ‘true’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.27.1 Iliad.ILDirectionElement: accessing | (instance) | |
| 13.27.2 Iliad.ILDirectionElement: accessing attributes-events | (instance) | |
| 13.27.3 Iliad.ILDirectionElement: acessing attributes | (instance) | |
| 13.27.4 Iliad.ILDirectionElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’bdo”.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.28.1 Iliad.ILDirectory: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This method’s functionality should be implemented by subclasses of ILDirectory
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
An ILDiskDirectory allows files to be served by Iliad directly from directories of even archives like .star files. I shouldn’t be used in production.
Usage example:
Iliad.ILFileHandler addDirectory: (Iliad.ILDiskDirectory new directory: (PackageLoader packageAt: ’SomePackage’) directory / ’Public’;
| 13.29.1 Iliad.ILDiskDirectory: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘directory’.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am the entry point of requests. I dispatch them with the #dispatch: method to an ILApplicationHandler or a ILFileHandler.
Web server adapters should use the #dispatch: method on the current instance of ILDispatcher - returned by ILDispatcher class>>current - to handle requests, and wait for a ILResponseNotification to respond to them.
| 13.30.1 Iliad.ILDispatcher class: instance creation | (class) | |
| 13.30.2 Iliad.ILDispatcher: dispatching | (instance) | |
| 13.30.3 Iliad.ILDispatcher: error-handling | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
This method should not be called for instances of this class.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Entry point of requests
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Catch dispatch errors
Catch errors and use an ILErrorHandler to handle them
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.32.1 Iliad.ILDivElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’div”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.33.1 Iliad.ILDynamicVariable class: defaults | (class) | |
| 13.33.2 Iliad.ILDynamicVariable class: evaluating | (class) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘nil’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am the abstract root class of the composite element hierarchy.
I know how to print myself in HTML format with the #printHtmlOn: method
| 13.34.1 Iliad.ILElement: accessing | (instance) | |
| 13.34.2 Iliad.ILElement: adding-conveniance | (instance) | |
| 13.34.3 Iliad.ILElement: building | (instance) | |
| 13.34.4 Iliad.ILElement: comparing | (instance) | |
| 13.34.5 Iliad.ILElement: converting | (instance) | |
| 13.34.6 Iliad.ILElement: error handling | (instance) | |
| 13.34.7 Iliad.ILElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
This method’s functionality should be implemented by subclasses of ILElement
Answer ‘nil’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer the receiver.
Answer the receiver.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.36.1 Iliad.ILEncoder class: encoding | (class) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
"""""""""""""""""""""""" " Error handling modes " """"""""""""""""""""""""
Error handlers can be in one of the following modes: deployment, verbose or debug. The default mode is verbose. You can switch between modes with class methods in the <accessing modes> protocol.
When errors occur, the framework with handle them differently depending on the application mode: - in deployment mode, it will respond an error 500; - in verbose mode, it will also respond an error 500, but with error details; - in debug mode, a debugger window will be opened on the error;
| 13.37.1 Iliad.ILErrorHandler class: accessing | (class) | |
| 13.37.2 Iliad.ILErrorHandler class: accessing modes | (class) | |
| 13.37.3 Iliad.ILErrorHandler: accessing | (instance) | |
| 13.37.4 Iliad.ILErrorHandler: responding | (instance) | |
| 13.37.5 Iliad.ILErrorHandler: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘error’.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.38.1 Iliad.ILFieldsetElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’fieldset”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.39.1 Iliad.ILFileHandler class: acccessing | (class) | |
| 13.39.2 Iliad.ILFileHandler class: accessing | (class) | |
| 13.39.3 Iliad.ILFileHandler class: defaults | (class) | |
| 13.39.4 Iliad.ILFileHandler class: testing | (class) | |
| 13.39.5 Iliad.ILFileHandler: accessing | (instance) | |
| 13.39.6 Iliad.ILFileHandler: request handling | (instance) | |
| 13.39.7 Iliad.ILFileHandler: responding | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer ‘’application/octet-stream”.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.40.1 Iliad.ILFileProxy class: instance creation | (class) | |
| 13.40.2 Iliad.ILFileProxy: accessing | (instance) | |
| 13.40.3 Iliad.ILFileProxy: initialization | (instance) | |
| 13.40.4 Iliad.ILFileProxy: writing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘contentType’.
Not commented.
Answer ‘contents’.
Not commented.
Not commented.
Answer ‘filename’.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.41.1 Iliad.ILFormElement class: defaults | (class) | |
| 13.41.2 Iliad.ILFormElement: accessing | (instance) | |
| 13.41.3 Iliad.ILFormElement: accessing attributes | (instance) | |
| 13.41.4 Iliad.ILFormElement: accessing attributes-events | (instance) | |
| 13.41.5 Iliad.ILFormElement: printing | (instance) | |
| 13.41.6 Iliad.ILFormElement: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’application/x-www-form-urlencoded”.
Answer ‘’multipart/form-data”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’form”.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.42.1 Iliad.ILFormElementElement: accessing | (instance) | |
| 13.42.2 Iliad.ILFormElementElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.43.1 Iliad.ILHeadElement: accessing | (instance) | |
| 13.43.2 Iliad.ILHeadElement: accessing attributes | (instance) | |
| 13.43.3 Iliad.ILHeadElement: accessing attributes-events | (instance) | |
| 13.43.4 Iliad.ILHeadElement: adding-conveniance | (instance) | |
| 13.43.5 Iliad.ILHeadElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’head”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.44.1 Iliad.ILHeadingElement: accessing | (instance) | |
| 13.44.2 Iliad.ILHeadingElement: accessing attributes-events | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘level’.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.45.1 Iliad.ILHorizontalRuleElement: accessing | (instance) | |
| 13.45.2 Iliad.ILHorizontalRuleElement: accessing attributes-events | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’hr”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.46.1 Iliad.ILHTMLBuilderElement: accessing | (instance) | |
| 13.46.2 Iliad.ILHTMLBuilderElement: accessing attributes-events | (instance) | |
| 13.46.3 Iliad.ILHTMLBuilderElement: accessing attibutes | (instance) | |
| 13.46.4 Iliad.ILHTMLBuilderElement: accessing attributes | (instance) | |
| 13.46.2 Iliad.ILHTMLBuilderElement: accessing attributes-events | (instance) | |
| 13.46.6 Iliad.ILHTMLBuilderElement: adding-conveenience | (instance) | |
| 13.46.7 Iliad.ILHTMLBuilderElement: adding-conveniance | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.47.1 Iliad.ILHtmlElement: accessing | (instance) | |
| 13.47.2 Iliad.ILHtmlElement: accessing attributes | (instance) | |
| 13.47.3 Iliad.ILHtmlElement: accessing attributes-events | (instance) | |
| 13.47.4 Iliad.ILHtmlElement: defaults | (instance) | |
| 13.47.5 Iliad.ILHtmlElement: printing | (instance) | |
| 13.47.6 Iliad.ILHtmlElement: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Answer ‘doctype’.
Not commented.
Not commented.
Answer ‘’html”.
Answer ‘xmlTag’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’http://www.w3.org/1999/xhtml”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.48.1 Iliad.ILHTMLPage: accessing attributes | (instance) | |
| 13.48.2 Iliad.ILHTMLPage: building | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.49.1 Iliad.ILId class: defaults | (class) | |
| 13.49.2 Iliad.ILId class: instance creation | (class) | |
| 13.49.3 Iliad.ILId: accessing | (instance) | |
| 13.49.4 Iliad.ILId: initialization | (instance) | |
| 13.49.5 Iliad.ILId: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘12’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.50.1 Iliad.ILImageElement: accessing | (instance) | |
| 13.50.2 Iliad.ILImageElement: accessing attributes | (instance) | |
| 13.50.3 Iliad.ILImageElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’img”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.51.1 Iliad.ILInformationWidget: accessing | (instance) | |
| 13.51.2 Iliad.ILInformationWidget: building | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘informationString’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.52.1 Iliad.ILInputElement: accessing | (instance) | |
| 13.52.2 Iliad.ILInputElement: accessing attributes | (instance) | |
| 13.52.3 Iliad.ILInputElement: accessing attributes-types | (instance) | |
| 13.52.4 Iliad.ILInputElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’input”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This class reads and writes JSON format data - strings, numbers, boolean, nil, arrays and dictionaries. See http://www.crockford.com/JSON/index.html. It has been extended with syntax for invoking a prearranged list of constructors on read objects.
| 13.53.1 Iliad.ILJson: accessing | (instance) | |
| 13.53.2 Iliad.ILJson: parsing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘ctorMap’.
Not commented.
Answer the value of stream
Set the value of stream
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This is the main entry point for the JSON parser. See also readFrom: on the class side.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.54.1 Iliad.ILJsonHandler: initialization | (instance) | |
| 13.54.2 Iliad.ILJsonHandler: responding | (instance) | |
| 13.54.3 Iliad.ILJsonHandler: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.55.1 Iliad.ILJsonObject: accessing | (instance) | |
| 13.55.2 Iliad.ILJsonObject: error handling | (instance) | |
| 13.55.3 Iliad.ILJsonObject: initialization | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Answer ‘properties’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Class Json signals instances of me when an input stream contains invalid JSON input.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.57.1 Iliad.ILLabelElement: accessing | (instance) | |
| 13.57.2 Iliad.ILLabelElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’label”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.58.1 Iliad.ILLegendElement: accessing | (instance) | |
| 13.58.2 Iliad.ILLegendElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’legend”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.59.1 Iliad.ILLinkableElement: accessing attributes | (instance) | |
| 13.59.2 Iliad.ILLinkableElement: accessing attributes-relationships | (instance) | |
| 13.59.3 Iliad.ILLinkableElement: accessing attributes-reverse links | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.60.1 Iliad.ILLinkElement: accessing | (instance) | |
| 13.60.2 Iliad.ILLinkElement: accessing attributes | (instance) | |
| 13.60.3 Iliad.ILLinkElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’link”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.61.1 Iliad.ILListElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Answer ‘tag’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.62.1 Iliad.ILListItemElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’li”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.63.1 Iliad.ILMapElement: accessing | (instance) | |
| 13.63.2 Iliad.ILMapElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’map”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.64.1 Iliad.ILMemoryDirectory class: maintenance | (class) | |
| 13.64.2 Iliad.ILMemoryDirectory: accessing | (instance) | |
| 13.64.3 Iliad.ILMemoryDirectory: maintenence | (instance) | |
| 13.64.4 Iliad.ILMemoryDirectory: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer the receiver.
Answer the receiver.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
answer the base path of the memory directory
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Write to disk the files that the receiver use to serve as methods. The files are stored in a subfolder named like the classname of the receiver in a subfolder of Smalltalk image folder.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Only methods in ’files’ protocol are allowed to be served as files
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.65.1 Iliad.ILMetaElement: accessing | (instance) | |
| 13.65.2 Iliad.ILMetaElement: accessing attributes | (instance) | |
| 13.65.3 Iliad.ILMetaElement: accessing attributes-events | (instance) | |
| 13.65.4 Iliad.ILMetaElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’meta”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.66.1 Iliad.ILModelProxy class: instance creation | (class) | |
| 13.66.2 Iliad.ILModelProxy: accessing | (instance) | |
| 13.66.3 Iliad.ILModelProxy: forwarding | (instance) | |
| 13.66.4 Iliad.ILModelProxy: initializing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘model’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.67.1 Iliad.ILNotFoundHandler: responding | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ILObject is the base class for all Iliad classes. It guarantees that #initialize is send upon object creation. Additionally it provides convienience methods for accessing the current context, session and application.
| 13.68.1 Iliad.ILObject: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.69.1 Iliad.ILObjectElement: accessing | (instance) | |
| 13.69.2 Iliad.ILObjectElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’object”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.70.1 Iliad.ILOptionElement: accessing | (instance) | |
| 13.70.2 Iliad.ILOptionElement: accessing attributes | (instance) | |
| 13.70.3 Iliad.ILOptionElement: accessing-attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’option”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.71.1 Iliad.ILOptionGroupElement: accessing | (instance) | |
| 13.71.2 Iliad.ILOptionGroupElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’optgroup”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.72.1 Iliad.ILParagraphElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’p”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.73.1 Iliad.ILParameterElement: accessing | (instance) | |
| 13.73.2 Iliad.ILParameterElement: accessing attributes | (instance) | |
| 13.73.3 Iliad.ILParameterElement: adding | (instance) | |
| 13.73.4 Iliad.ILParameterElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’param”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.74.1 Iliad.ILPluggableWidget: accessing | (instance) | |
| 13.74.2 Iliad.ILPluggableWidget: building | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.75.1 Iliad.ILPrependDelegator: building | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.76.1 Iliad.ILProfiler: building | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.77.1 Iliad.ILRadioButtonElement: accessing | (instance) | |
| 13.77.2 Iliad.ILRadioButtonElement: accessing attributes | (instance) | |
| 13.77.3 Iliad.ILRadioButtonElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’input”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.78.1 Iliad.ILRawHtmlElement: accessing | (instance) | |
| 13.78.2 Iliad.ILRawHtmlElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.79.1 Iliad.ILRedirectHandler: responding | (instance) | |
| 13.79.2 Iliad.ILRedirectHandler: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
From Seaside 2.8.
I am a server independent http request object.
| 13.80.1 Iliad.ILRequest class: instance creation | (class) | |
| 13.80.2 Iliad.ILRequest: accessing | (instance) | |
| 13.80.3 Iliad.ILRequest: initialization | (instance) | |
| 13.80.4 Iliad.ILRequest: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Answer ‘cookies’.
Not commented.
Answer ‘fields’.
Not commented.
Not commented.
Not commented.
Not commented.
Answer ‘headers’.
Not commented.
Not commented.
Answer ‘method’.
Not commented.
Answer ‘nativeRequest’.
Not commented.
Not commented.
Not commented.
Not commented.
Answer ‘url’.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I implement the basic behavior needed to handle requests.
My sublcasses must override #newResponse to handle requests, and most likely #produceResponse. The current handled request is answered by the #request method inherited from ILObject
| 13.81.1 Iliad.ILRequestHandler: request handling | (instance) | |
| 13.81.2 Iliad.ILRequestHandler: responding | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
From Seaside 2.8
I am a server independent http response object.
| 13.82.1 Iliad.ILResponse class: instance creation | (class) | |
| 13.82.2 Iliad.ILResponse: accessing | (instance) | |
| 13.82.3 Iliad.ILResponse: convenience | (instance) | |
| 13.82.4 Iliad.ILResponse: printing | (instance) | |
| 13.82.5 Iliad.ILResponse: status | (instance) | |
| 13.82.6 Iliad.ILResponse: streaming | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer ‘contentType’.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Answer ‘status’.
Not commented.
Answer ‘stream’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.83.1 Iliad.ILResponseNotification: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘response’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I represent a route, used to dispatch a request. My path is a collection of string, representing each part of the path of an url, and can be streamed with methods in the <streaming> protocol.
| 13.84.1 Iliad.ILRoute class: accessing | (class) | |
| 13.84.2 Iliad.ILRoute class: instance creation | (class) | |
| 13.84.3 Iliad.ILRoute: accessing | (instance) | |
| 13.84.4 Iliad.ILRoute: converting | (instance) | |
| 13.84.5 Iliad.ILRoute: initialization | (instance) | |
| 13.84.6 Iliad.ILRoute: iterating | (instance) | |
| 13.84.7 Iliad.ILRoute: printing | (instance) | |
| 13.84.8 Iliad.ILRoute: streaming | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Return an absolute url of the current streamed path separated with delimiters, like this: /foo/bar/baz
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.85.1 Iliad.ILRouter: accessing | (instance) | |
| 13.85.2 Iliad.ILRouter: dispatching | (instance) | |
| 13.85.3 Iliad.ILRouter: initialization | (instance) | |
| 13.85.4 Iliad.ILRouter: testing | (instance) | |
| 13.85.5 Iliad.ILRouter: updating | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘application’.
Answer ‘controller’.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.86.1 Iliad.ILRubyTextElement: accessing | (instance) | |
| 13.86.2 Iliad.ILRubyTextElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’rt”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.87.1 Iliad.ILScriptElement: accessing | (instance) | |
| 13.87.2 Iliad.ILScriptElement: accessing attributes | (instance) | |
| 13.87.3 Iliad.ILScriptElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Answer ‘’script”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
do not encode contents!!
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.88.1 Iliad.ILSelectElement: accessing | (instance) | |
| 13.88.2 Iliad.ILSelectElement: accessing attributes | (instance) | |
| 13.88.3 Iliad.ILSelectElement: initialize release | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’select”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This method should not be called for instances of this class.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.89.1 Iliad.ILSequence: building | (instance) | |
| 13.89.2 Iliad.ILSequence: control flow | (instance) | |
| 13.89.3 Iliad.ILSequence: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
This method should not be called for instances of this class.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer the receiver.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I represent a session in Iliad. I persist as long as I am active (i.e. an user interacts with an application). When I am inactive, I expire after a timeout set by #expirySeconds. I also store actions and applications
| 13.90.1 Iliad.ILSession: accessing | (instance) | |
| 13.90.2 Iliad.ILSession: accessing others | (instance) | |
| 13.90.3 Iliad.ILSession: accessing preferences | (instance) | |
| 13.90.4 Iliad.ILSession: accessing timestamps | (instance) | |
| 13.90.5 Iliad.ILSession: actions | (instance) | |
| 13.90.6 Iliad.ILSession: cleaning | (instance) | |
| 13.90.7 Iliad.ILSession: defaults | (instance) | |
| 13.90.8 Iliad.ILSession: events | (instance) | |
| 13.90.9 Iliad.ILSession: initialization | (instance) | |
| 13.90.10 Iliad.ILSession: redirection | (instance) | |
| 13.90.11 Iliad.ILSession: states | (instance) | |
| 13.90.12 Iliad.ILSession: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Answer ‘id’.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘1800’.
Answer ‘’en”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Answer ‘redirectUrl’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am responsible for managing, creating and removing sessions. The class method #current answers my only instance.
You shouldn’t subclass me. Instead, you can change my preferences with methods in the <accessing preferences> protocol.
In addition, do not try to access the current session from here, use ILContext>>session instead.
– maintenance –
To remove all sessions, even not expired ones, call #removeAllSessions. To remove all expired sessions, call #removeExpiredSessions
| 13.91.1 Iliad.ILSessionManager class: instance creation | (class) | |
| 13.91.2 Iliad.ILSessionManager: accessing | (instance) | |
| 13.91.3 Iliad.ILSessionManager: accessing preferences | (instance) | |
| 13.91.4 Iliad.ILSessionManager: adding-removing | (instance) | |
| 13.91.5 Iliad.ILSessionManager: enumerating | (instance) | |
| 13.91.6 Iliad.ILSessionManager: initialization | (instance) | |
| 13.91.7 Iliad.ILSessionManager: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
This method should not be called for instances of this class.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Answer the according session for <aRequest>. the session id may be found from <aRequest> cookies or <aRequest> fields. If no session is found, create and return a new one
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Do not remove all expired sessions for each request
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.92.1 Iliad.ILSpanElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’span”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.93.1 Iliad.ILStateRegistry class: instance creation | (class) | |
| 13.93.2 Iliad.ILStateRegistry: accessing | (instance) | |
| 13.93.3 Iliad.ILStateRegistry: states | (instance) | |
| 13.93.4 Iliad.ILStateRegistry: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer all widgets which state has changed
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.94.1 Iliad.ILTableBodyElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’tbody”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.95.1 Iliad.ILTableCellElement: accessing attributes-table | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.96.1 Iliad.ILTableDataElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’td”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.97.1 Iliad.ILTableElement: accessing | (instance) | |
| 13.97.2 Iliad.ILTableElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’table”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.98.1 Iliad.ILTableElementElement: accessing attributes-table | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.99.1 Iliad.ILTableFootElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’tfoot”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.100.1 Iliad.ILTableHeadElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’thead”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.101.1 Iliad.ILTableHeaderElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’th”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.102.1 Iliad.ILTableRowElement: accessing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’tr”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.103.1 Iliad.ILTextAreaElement: accessing | (instance) | |
| 13.103.2 Iliad.ILTextAreaElement: accessing attributes | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’textarea”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.104.1 Iliad.ILTextElement: accessing | (instance) | |
| 13.104.2 Iliad.ILTextElement: adding | (instance) | |
| 13.104.3 Iliad.ILTextElement: printing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Answer ‘tag’.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.105.1 Iliad.ILTitleElement: accessing | (instance) | |
| 13.105.2 Iliad.ILTitleElement: accessing attributes-events | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’title”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I represent all portions of an URL as described by the RFC 1738. I include scheme, username, password, hostname, port, path, parameters, and fragment.
Portions of this code are based on code of Kazuki Yasumatsu and Paolo Bonzini.
Instance Variables scheme: <String> or nil username: <String> or nil password: <String> or nil hostname: <String> or nil port: <Integer> or nil path: <OrderedCollection> or nil parameters: <Grease.GRSmallDictionary> fragment: <String> or nil
| 13.106.1 Iliad.ILUrl class: decoding | (class) | |
| 13.106.2 Iliad.ILUrl class: instance creation | (class) | |
| 13.106.3 Iliad.ILUrl class: parsing | (class) | |
| 13.106.4 Iliad.ILUrl: accessing | (instance) | |
| 13.106.5 Iliad.ILUrl: adding | (instance) | |
| 13.106.6 Iliad.ILUrl: basic | (instance) | |
| 13.106.7 Iliad.ILUrl: comparing | (instance) | |
| 13.106.8 Iliad.ILUrl: converting | (instance) | |
| 13.106.9 Iliad.ILUrl: copying | (instance) | |
| 13.106.10 Iliad.ILUrl: encoding | (instance) | |
| 13.106.11 Iliad.ILUrl: initialization | (instance) | |
| 13.106.12 Iliad.ILUrl: parsing | (instance) | |
| 13.106.13 Iliad.ILUrl: printing | (instance) | |
| 13.106.14 Iliad.ILUrl: removing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
percent decodes the given String
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Parse aString as an absolute URL.
Take absolute URL aString and combine it with a relative path aRelativeString.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer the fragment part of the URL.
Not commented.
Answer the host part of the URL.
Not commented.
Not commented.
Answer the password part of the URL.
Not commented.
Answer the path part of the URL.
Set the path part of the URL to aCollection.
Answer the port number part of the URL.
Not commented.
Answer the URL’s scheme.
we really expect a String here, Old versions (2.7) expected a Symbol you can still pass a Symbol and get away with it but don’t expect this behavior to be supported in future versions. #greaseString is the ’correct’ way to convert a Symbol to a String since #displayString will add a hash on VW
Answer the username part of the URL.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
convenice method to add a collection of strings to the path
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Answer the path converted to a string.
Answer a path element collection relative from the receiver to anUrl.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.107.1 Iliad.ILUrlBuilder class: accessing | (class) | |
| 13.107.2 Iliad.ILUrlBuilder class: defaults | (class) | |
| 13.107.3 Iliad.ILUrlBuilder: accessing | (instance) | |
| 13.107.4 Iliad.ILUrlBuilder: generating | (instance) | |
| 13.107.5 Iliad.ILUrlBuilder: testing | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Rewrite rules are used to replace patterns in the baseUrl
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘’_action”.
Answer ‘’_ajax_upload”.
Answer ‘’_hash”.
Answer ‘’_session”.
Answer ‘’_state”.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
I am a stateful graphical component.
"""""""""""""""""""""""""""""" " Building HTML with widgets " """"""""""""""""""""""""""""""
To build HTML override the #contents method, which should always return a view block, ie, a block which takes an element as parameter.
Example:
contents ^[:e || div | div := e div class: ’foo’. div h1: ’Bar’. div a text: ’do something’; action: [self doSomething]]
See Iliad.ILElement hierarchy (Especially Iliad.ILHTMLBuilderElement ) for more information about building HTML with elements.
#contents method should *never* be called from the outside. Use #build instead. For instance, to build a sub-widget in a view block, you should write something like:
contents [ ^[:e | e build: mySubWidget] ]
"""""""""""""""" " Control flow " """"""""""""""""
I can show (display instead of me) other widgets with #show* methods or answer to widgets that called me with #answer.
When using the javascript layer, call #markDirty whenever my state change, so I will be updated on AJAX requests.
Widgets which states depend on me can be automatically rebuilt whenever I am marked as dirty (see #addDependentWidget:).
"""""""""""""" " Decorators " """"""""""""""
I can also have decorators that may modify my behavior. A decorator can be added to the decoration chain with #decorateWith:.
| 13.108.1 Iliad.ILWidget: accessing | (instance) | |
| 13.108.2 Iliad.ILWidget: building | (instance) | |
| 13.108.3 Iliad.ILWidget: control flow | (instance) | |
| 13.108.4 Iliad.ILWidget: copying | (instance) | |
| 13.108.5 Iliad.ILWidget: decorators | (instance) | |
| 13.108.6 Iliad.ILWidget: defaults | (instance) | |
| 13.108.7 Iliad.ILWidget: initialization | (instance) | |
| 13.108.8 Iliad.ILWidget: printing | (instance) | |
| 13.108.9 Iliad.ILWidget: states | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Answer the widget which shows me. if any
Not commented.
Not commented.
Not commented.
Answer the receiver.
Convenience method. This is useful for building anonymous widgets. ex: myWidget := self widgetFor: [:e | e h1: ’Hello world!’]
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Do *not* override this method. Use #contents instead
Not commented.
Override this method to add contents to your widget
Do *not* override this method. Use #contents instead
Answer a collection of strings. Override in subclasses to add scripts to load with the widget
Answer a collection of strings. Override in subclasses to add styles to load with the widget
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Add <aWidget> to my dependent widgets. Each dependent widget will be rebuilt on AJAX requests whenever I am rebuilt
Give the control back to the owner, i.e, the widget which showed the receiver. Answer self
Give the control back to the owner, i.e, the widget which showed the receiver. Answer <anAnswer>
Insert <aWidget> after the receiver
Insert <aWidget> after the receiver
Not commented.
Not commented.
Answer ‘nil’.
Not commented.
Insert <aWidget> before the receiver
Insert <aWidget> before the receiver
Not commented.
Give the control back to the receiver, and make any showed widget answer nil
Show another widget instead of the receiver. The receiver is also implicitely marked dirty
Show another widget instead of the receiver and catch the answer in <aBlock>. The receiver is also implicitely marked dirty
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Not commented.
Not commented.
Remove <aDecorator> from the decoration chain, except if <aDecorator> is the initial one
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Answer ‘ILDivElement’.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Mark the receiver as ’dirty’, so the widget will be rebuilt on Ajax requests. You do not need to mark subwidgets as dirty, they will be rebuilt together with the receiver
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.109.1 Iliad.ILXmlElement: accessing | (instance) | |
| 13.109.2 Iliad.ILXmlElement: converting | (instance) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
Answer ‘tag’.
Not commented.
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Not commented.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| Jump to: | A B C D E G H I M P S U W |
|---|
| Index Entry | Section | |
|---|---|---|
| | ||
| A | ||
| action | 3.3 Actions | |
| application | 2. Short tutorial | |
| application | 4. Applications | |
| | ||
| B | ||
| base path | 4.1 The base path | |
| build | 3.2 Elements and buildables | |
| buildable | 2. Short tutorial | |
| buildable | 3.2 Elements and buildables | |
| buildable | 5. Widgets | |
| building HTML | 3. Elements | |
| | ||
| C | ||
| controller method | 4.2 Controller methods | |
| | ||
| D | ||
| dirty widgets | 5.2 Maintaining the client state | |
| dispatchOverride | 4.4 Custom request dispatching | |
| | ||
| E | ||
| element | 3. Elements | |
| | ||
| G | ||
| gnu smalltalk | 1.1 Installing on GNU Smalltalk | |
| gst | 1.1 Installing on GNU Smalltalk | |
| | ||
| H | ||
| HTML | 3. Elements | |
| | ||
| I | ||
| ILApplication | 4. Applications | |
| ILHTMLBuilderELement | Adding elements | |
| ILSession | 7. Managing sessions | |
| ILSessionManager | 7.1 The session manager | |
| | ||
| M | ||
| markDirty | 5.2 Maintaining the client state | |
| metacello | Using Metacello | |
| | ||
| P | ||
| path | 4.1 The base path | |
| pharo | 1.2 Installing on Pharo Smalltalk | |
| | ||
| S | ||
| selector filter | 4.3 Filtering controllers | |
| selectorFilter: | 4.3 Filtering controllers | |
| session | 7. Managing sessions | |
| session manager | 7.1 The session manager | |
| squeak | 1.2 Installing on Pharo Smalltalk | |
| squeaksource | Manually | |
| | ||
| U | ||
| updatePage: | 4.5 Updating the page | |
| | ||
| W | ||
| widget | 2. Short tutorial | |
| widget | 5. Widgets | |
| | ||
| Jump to: | A B C D E G H I M P S U W |
|---|
| [Top] | [Contents] | [Index] | [ ? ] |
| [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Nicolas Petton on October 23, 2010 using texi2html 1.82.
The buttons in the navigation panels have the following meaning:
| Button | Name | Go to | From 1.2.3 go to |
|---|---|---|---|
| [ < ] | Back | Previous section in reading order | 1.2.2 |
| [ > ] | Forward | Next section in reading order | 1.2.4 |
| [ << ] | FastBack | Beginning of this chapter or previous chapter | 1 |
| [ Up ] | Up | Up section | 1.2 |
| [ >> ] | FastForward | Next chapter | 2 |
| [Top] | Top | Cover (top) of document | |
| [Contents] | Contents | Table of contents | |
| [Index] | Index | Index | |
| [ ? ] | About | About (help) |
where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:
This document was generated by Nicolas Petton on October 23, 2010 using texi2html 1.82.