In the future, you may want to automatically register some applications whenever your package is loaded into an image. To do this, you simply need to add the registration expression to the class
initialize method of the component. A class
initialize method is automatically invoked when the class is loaded from a file. Here is the
initialize class method definition.
WAAdmin register: self asApplicationAt: 'webcounter'
The word “class” in the
WebCounter class>> first line indicates that this must be added as a class method as described below.
Because this code is in the WebCounter class, we can use the term
self in place of the explicit reference to WebCounter that we used in the previous section. In Smalltalk we avoid hardcoding class names whenever possible.
Let’s implement the method. Select the class
WebCounter, click on the Class button under the class pane. You are now browsing the class methods of the class
WebCounter (and there are none yet). Define a method category as we did previously: click on the third pane and bring up the context menu. From this menu, select the menu item add category, and from the list select or type
class initialization. Then in the bottom pane define and accept the method
initialize as shown in Figure 12.
In the future, we will add configuration parameters to this method, so it is important to be familiar with creating it. Remember that this method is executed automatically only when the class is loaded into memory from some external file/source. So if you had not already executed
WAAdmin register: WebCounter asApplicationAt: 'webcounter' Seaside would still not know about your application. To execute the
initialize method manually, type
WebCounter initialize in a workspace; your application will be registered and you will be able to access it in your web browser.
Automating the configuration of your Seaside application via class-side
initialize methods play an important role in building deployable Smalltalk images because of their role when packages are brought into base images, and is a useful technique to bear in mind for future use.
The following Figure 13 shows a trick Smalltalkers often use: it adds the expression to be executed as comment in the method. This way you just have to put your cursor after the first double quote, click once to select the expression and execute it using the Do it (d) menu item or shortcut.