<div dir="ltr"><div>Luke</div>
<div> </div>
<div>Thanks for the reply..I'll definitely go through all the codes of the OnePageWiki Activity. Infact, when I first started studying xocom, I used the code of OnePageWiki Activity, because of its simple, yet innovative effort. </div>
<div>I have uploaded the code on the wiki page, but the code repository idea sounds better. I will definitely look into that, after monday..In the meantime, I will check out the codes suggested by you.</div>
<div> </div>
<div>Thanks again!</div>
<div>Cheers</div>
<div>Preeti<br><br></div>
<div class="gmail_quote">On Fri, Aug 22, 2008 at 1:40 PM, Luke Closs <span dir="ltr"><<a href="mailto:luke.closs@socialtext.com">luke.closs@socialtext.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Preeti,<br><br>Thank you for this informative email. I'm glad to see you made some progress.<br><br>I've got several ideas about how to further extend xocom so that it is easy for the python toolbar to call javascript hooks by applications like this. As you can see in this file:<br>
<br> <a href="http://github.com/lukec/onepagewiki/tree/master/" target="_blank">http://github.com/lukec/onepagewiki/tree/master/</a>OnePageWikiActivity.py<br><br>Once you have xocom set up, you can call javascript methods from python like this:<br>
<br> self.xocom.send_to_browser( 'command' )<br><br>The OnePageWiki Activity[1] and the socialcalc activity use the 'read' and 'write' commands to cause the Socialcalc javascript to load or save a sheet. We should be able to hook up other commands, by providing javascript hooks to call.<br>
<br>If you look at this example xocom HTML page, you can see how you'd provide new hooks:<br><br> <a href="http://github.com/lukec/xocom/tree/master/web/index.html" target="_blank">http://github.com/lukec/xocom/tree/master/web/index.html</a><br>
<br>This is how Socialcalc's index.html provides the read and write commands:<br><br> <a href="http://github.com/lukec/socialcalc-xocom/tree/master/web/index.html#L110" target="_blank">http://github.com/lukec/socialcalc-xocom/tree/master/web/index.html#L110</a><br>
<br>Preeti, I would love to see you submitting code somewhere. Are we using a public git repo? Feel free to fork my socialcalc-xocom[2] project (you can sign up for github for free code hosting, it's great). Once you fork that project, you can add your new toolbar code into your repo, and then we can share the code easier. I'll be happy to review your commits to hook this stuff together. You're really close, I think.<br>
<br>Cheers,<br>Luke<br><br>P.S. - I'm usually in #socialtext or #vhs on <a href="http://irc.freenode.net/" target="_blank">irc.freenode.net</a> if you'd like to chat.<br><br>[1] <a href="http://github.com/lukec/onepagewiki/tree/master" target="_blank">http://github.com/lukec/onepagewiki/tree/master</a><br>
[2] <a href="http://github.com/lukec/socialcalc-xocom/tree/master" target="_blank">http://github.com/lukec/socialcalc-xocom/tree/master</a>
<div>
<div></div>
<div class="Wj3C7c"><br><br><br>On 22-Aug-08, at 12:03 AM, Preeti KS wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"> Long time since there's been activity on this group. I thought I will initiate something. I have been a wee bit busy with other things, and was not in Delhi for a while. But, I did manage to do some testing for SocialCalc.<br>
<br>The good news is that xocom is working perfectly. Infact, I have been working on making the toolbar.py file for the release of this activity. While on it, I have made extensive use of xocom. I made the toolbar in Python, and used xocom to create the webview,etc. I also managed to interface the toolbar.py file with the socialcalc.py file. I have attached the relevent files with this email and also at <a href="http://wiki.laptop.org/go/Image:SocialCalc-toolbar.zip" target="_blank">http://wiki.laptop.org/go/Image:SocialCalc-toolbar.zip</a> .<br>
I had mailed earlier with some doubts, some of which actually got cleared when I studied the toolbars of other activities. I thought you might be interested to know exactly how xocom is used in the toolbar. In activities like "Abiword" I noticed that the web view, etc are created using hulahop and webview. As xocom has defined webviews, I have created a class SpredSheetActivityToolbar that uses xocom to create webviews. My toolbar.py file is as follows, these are some code snippets:<br>
<br>This is the main spreadsheet activity toolbar, It has used xocom to create the webview..<br><br>class SpreadSheetActivityToolbar:<br> def __init__(self, activity, toolbox, self_canvas):<br> self._activity = activity<br>
self.set_canvas( xocom.create_webview() )<br> self._activity_toolbar = toolbox.get_activity_toolbar()<br> self._keep_palette = self._activity_toolbar.keep.get_palette()<br>.........................<br>Then, I have created another class, for the edit toolbar. Its definition is as follows:<br>
class SpreadsheetEditToolbar(EditToolbar):<br> def __init__(self, toolbox, self_canvas):<br> EditToolbar.__init__(self)<br> self.set_canvas( xocom.create_webview() )<br>.........<br>This is followed by the general definition of edit toolbar, copy,paste,undo,redo, etc. There is also a viewtoolbar class, for viewing it on hulahoop.<br>
Then of course, I had to make changes in the SOcialCalc.py file in order to call this toolbar interface. Here are the details of the SocialCalc.py file:<br>To interface it with toolbar.py, I have imported the classes from this file as:<br>
<br>import toolbar<br>from toolbar import SpreadSheetActivityToolbar, SpreadsheetEditToolbar, ViewToolbar<br>Then, while creating the toolbar, I have called these functions as:<br> toolbox = activity.ActivityToolbox(self)<br>
self.set_toolbox(toolbox)<br> toolbox.show()<br>Separately calling edit toolbar:<br> self._edit_toolbar = SpreadsheetEditToolbar(self, self._edit_toolbar, set_canvas)<br> toolbox.add_toolbar(_('Edit'),self._edit_toolbar)<br>
self._edit_toolbar.show()<br>And similarly calling the Viewtoolbar class:<br> view_toolbar = ViewToolbar (self.set_canvas)<br> self.set_canvas.show()<br><br>I had a lot of fun doing this integration work. I am facing a few problems dealing with the Javascript aspect of this whole activity, but to deal with that I am studying JS in detail. So still an advantage. I hope you all will be helping me out with the queries!<br>
Apart from that, I also tested the new build for various simulated situations. I have taken snapshots of the same. But due to problems in my net connection, they are not getting attached. I will definitely mail them by Monday.<br>
<br>Thanks and warm regards,<br>Preeti<br><br></blockquote><br></div></div></blockquote></div><br></div>