A simple Croquet-aware Inspector

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

A simple Croquet-aware Inspector

Benjamin Schroeder-2
Hi -

I've been working a little more on the "programming tools in Croquet"  
idea, and thought folks on the list might be interested to see an  
update. At Ralph Johnson's suggestion, the first thing I've been  
working on is a "Croquet-aware inspector" - running in local Squeak  
but with effect on the shared island.

I've just uploaded a start at it. It's in the "CroquetAwareTools"  
Monticello package at "http://www.squeaksource.com/SocRecording".

Here are the version notes:

        A Croquet-aware Inspector and sample tools to try it. Use

                CroquetParticipantWithTools openDemoMaster

        to start a master router for the demo world, and

                CroquetParticipantWithTools openDemoParticipant

        to join a master running on the same network.

        Clicking on the cube or sphere will bring up an inspector. The  
inspector
        is local to the image where the click originated, but changes in it  
affect the shared
        world. Try, e.g., saying

                self radius: self radius * 1.1

        in the sphere inspector, or accepting a new value of "false" for  
visible.

This works by overriding a few methods in Inspector to send  
appropriate messages to a Croquet TFarRef. I chose to do this instead  
of using a simple proxy around the far ref because it seemed simpler  
- and because Inspector relies on sending #class, which IIRC is sent  
specially by the Squeak VM.

I experimented a little with keeping the whole Inspector on the  
remote system, allowing more of the UI state to be shared between  
images. I ran into some trouble, but something along these lines  
seems possible with some more work.

There are still a few things that don't work at all. In particular,  
errors in compilation, or exceptions raised at runtime, are not  
handled very well. My plan is to fix this situation up next.

If you have a chance to try it or look at the code, let me know what  
you think!

Thanks,
Benjamin Schroeder