How to combine Pharo Desktop and Seaside?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

How to combine Pharo Desktop and Seaside?

Torsten Bergmann
You can initialize your instance variable in an initialize method


WAComponent subclass: #PrintHtml
        instanceVariableNames: 'tasks'
        classVariableNames: ''
        poolDictionaries: ''
        category: 'KillerApp-Web-UI'


Then a method to initialize on the instance side PrintHtml>>initialize:

    initialize
        "initialize the receiver"  
        super initialize.
        tasks := #('read' 'before' 'you' 'try')


If you send #new to a class this #initialize method is automatically called. If
you do not want it use #basicNew.

So if you enter

     PrintHtml new

in a workspace and select "Inspect it" to open an inspector on the new object
this method gets called and therfore you will see that the instance variable
should have the collection as contents.

Side note: Do not forget the "super initialize" in this method - otherwise
           superclass initialization for seaside components is not done.


Then use a normal rendering method to display the ivar in the browser

      renderContentOn: html
           html orderedList list: tasks

If I understand you correctly you want to know how you acces the
Seaside generated code for a WAComponent subclass also in a workspace.
This is easy:

  |component|
   component := PrintHtml new.  "your seaside component"
   WARenderCanvas builder
     render: [ :html | html render: component ]

which should return the generated HTML:

   '<ol><li>read</li><li>before</li><li>you</li><li>try</li></ol>' now.


That is one way. The preferred way for Seasiders is to directly look at
the generated HTML code in the webbrowser. Just go to your app:

  http://localhost:8080/killerapp

Down at the bottom you will find the seaside development toolbar (only visible
when developing) and then click on "Halo". Now Seaside renders a rectangle
around each component and you can click on "Source" to Switch to the source
of a component. Also try the other buttons there.

For sure you should read one of the introduction stuff on Seaside, I would
recommend the online Seaside book:
 
   http://book.seaside.st/book

Bye
T.