[Seaside] Configuration with VisualWorks?

Michel Bany m.bany at wanadoo.fr
Tue Mar 7 08:31:03 UTC 2006


On 07 Mar 2006, at 07:47 , Roland Hochmuth wrote:

> Hi Michel, Thank you for your very detailed reply. I think I'm  
> almost there. I've gone through your instructions and created a WEB  
> site. However, when I enter
>
>     http://localhost:8008/abcd/servlet/SeasideServlet/myapp
>
> nothing appears until I go to
>
>         http://localhost:8008/abcd/servlet/SeasideServlet/config
>
> and use "add entry point".
>
> What I've done in VW is create a new package and namespace. In the  
> new namespace I've created a new class that inherits from  
> WAComponent and added the method "canBeRoot"
>

If you want to avoid the "add entry point" manual step and do it  
programmatically,
you need to add the #initialize *class* method to the root component  
of your app

	initialize
		self registerAsApplication: 'myapp'.

After you saved the #initialize method, make sure you manually  
initialize the root
component class using the Class menu in the RB (=System Browser).  
Note that
you only need to perform the manual class initialization just once :  
next time the
class is loaded into the image the class initialization will be  
automatic.


> So then I toggled halos on the .../config WEB page and discovered  
> that the "config" page was displaying the component  
> WADispatcherEditor. And sure enough, looking at renderContentOn for  
> class WADispatcherEditor I see that addEntryPoint is a callback. So  
> it t looks like WADispatcherEditor is just a WAComponent too. Very  
> cool! I could continue to manually enter my sites using the config  
> page, but now I'm wondering how WADispatcherEditor got bootstrapped  
> and why my application didn't just show up as opposed to  
> WADispatcherEditor which was somehow connected to the "config"  
> page. I'm thinking that if I wanted to just have my app "appear"  
> rather than being manually entered at "config" then I should just  
> invoke addEntryPoint from the initialize method in the new  
> application component. Also, I guess that class SeasideServlet  
> dispatches to WADispatcherEditor somehow, but I don't see the  
> connection right now.
>

You should be able to verify that the WADispatcherEditor class does  
register
itself in its #initialize class method. That will surely make  
everything clear to you.
Note that you are allowed to register the same component as the root  
component
for many different applications, with different names.

You may want to place a breakpoint at the beginning of  
SeasideServlet>>handle:response:
and use the debugger to find out how the dispatching is done.

Enjoy,
Michel.

> Any more suggestions or pointers as to what I should look at and  
> what the preferred method is?
>
> Regards --Roland
>
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>




More information about the Seaside mailing list