[Etoys] Journal access problem

Karl karl.ramberg at comhem.se
Tue Feb 12 13:01:24 EST 2008


Bert Freudenberg wrote:
> On Feb 12, 2008, at 14:11 , Karl wrote:
>
>   
>> I've been looking into accessing the Journal from Squeak but I  
>> can't get
>> it to work.
>> In SugarLauncher>>startUp I changed
>>
>> ServerDirectory
>>             addServer: (SugarDatastoreDirectory mimetype:
>> 'application/x-squeak-project' extension: '.pr')
>>             named: SugarLauncher defaultDatastoreDirName.
>>
>> to read
>>
>> ServerDirectory
>>             addServer: (SugarDatastoreDirectory mimetype: 'image/jpeg'
>> extension: '.jpg')
>>             named: SugarLauncher defaultDatastoreDirName.
>>
>> When I select [Projects in Journal] I see jpegs and their content get
>> loaded in the bottom pane in FileList but when I select the file I  
>> get a
>> message that the file could not be found, and to select a new name.
>>
>> Anybody have any clue to this ?
>>     
>
> You can press Alt-. when the message is shown and select "full stack"  
> to see the problem. It is a bug in the "open" service entry, which  
> does not preserve the original directory instance (which would have  
> been our SugarDatastoreDirectory) but simply uses "FileStream  
> readOnlyFileNamed: ...". So it tries to open the file from disk  
> instead of the datastore. It does work with projects because their  
> handler preserves the directory instance, and asks that instance to  
> open the file.
>
> Btw, you can simply evaluate this in a workspace:
>
> ServerDirectory
> 	addServer: (SugarDatastoreDirectory mimetype: 'image/jpeg'  
> extension: '.jpg')
> 	named: '[JPEGs in Journal]'.
>
> All of this is a hack, obviously, we need something better than  
> emulating the Journal as file directory.
>
> What we should do (as mentioned previously) is to use the Journal's  
> object chooser. Open a Transcript, and then try this in a workspace:
>
> (SugarLauncher current instVarNamed: 'dbus')
> 	addMatch: #(type 'signal' path '/org/laptop/Journal').
> SugarLauncher current sendDBusMessage: ((DBusMessageMethodCall
> 	destination: 'org.laptop.Journal'
> 	path: '/org/laptop/Journal'
> 	interface: 'org.laptop.Journal'
> 	selector: 'ChooseObject')
> 		addArgument: 0 signature: 'i').
>
> In the Transcript you can see what is happening ...
>
> - Bert -
Ah, I get little more now :-)
DBus stuff is quite  dense...
Karl


More information about the Etoys mailing list