<div dir="ltr"><div>Luke</div>
<div>&nbsp;</div>
<div>Thanks for the reply..I&#39;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>&nbsp;</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">&lt;<a href="mailto:luke.closs@socialtext.com">luke.closs@socialtext.com</a>&gt;</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. &nbsp;I&#39;m glad to see you made some progress.<br><br>I&#39;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. &nbsp;As you can see in this file:<br>
<br>&nbsp;<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>&nbsp;self.xocom.send_to_browser( &#39;command&#39; )<br><br>The OnePageWiki Activity[1] and the socialcalc activity use the &#39;read&#39; and &#39;write&#39; commands to cause the Socialcalc javascript to load or save a sheet. &nbsp;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&#39;d provide new hooks:<br><br>&nbsp;<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&#39;s index.html provides the read and write commands:<br><br>&nbsp;<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. &nbsp;Are we using a public git repo? &nbsp;Feel free to fork my socialcalc-xocom[2] project (you can sign up for github for free code hosting, it&#39;s great). &nbsp;Once you fork that project, you can add your new toolbar code into your repo, and then we can share the code easier. &nbsp;I&#39;ll be happy to review your commits to hook this stuff together. &nbsp;You&#39;re really close, I think.<br>
<br>Cheers,<br>Luke<br><br>P.S. - I&#39;m usually in #socialtext or #vhs on <a href="http://irc.freenode.net/" target="_blank">irc.freenode.net</a> if you&#39;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">&nbsp; &nbsp;Long time since there&#39;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>&nbsp;.<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 &quot;Abiword&quot; 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>&nbsp; &nbsp;def __init__(self, activity, toolbox, self_canvas):<br>&nbsp; &nbsp; &nbsp; &nbsp;self._activity = activity<br>
&nbsp; &nbsp; &nbsp; &nbsp;self.set_canvas( xocom.create_webview() )<br>&nbsp; &nbsp; &nbsp; &nbsp;self._activity_toolbar = toolbox.get_activity_toolbar()<br>&nbsp; &nbsp; &nbsp; &nbsp;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>&nbsp; &nbsp;def __init__(self, toolbox, self_canvas):<br>&nbsp; &nbsp; &nbsp; &nbsp;EditToolbar.__init__(self)<br>&nbsp; &nbsp; &nbsp; &nbsp;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>&nbsp; &nbsp; &nbsp; &nbsp;toolbox = activity.ActivityToolbox(self)<br>
&nbsp; &nbsp; &nbsp; &nbsp;self.set_toolbox(toolbox)<br>&nbsp; &nbsp; &nbsp; &nbsp;toolbox.show()<br>Separately calling edit toolbar:<br>&nbsp; &nbsp; &nbsp;self._edit_toolbar = SpreadsheetEditToolbar(self, self._edit_toolbar, set_canvas)<br>&nbsp; &nbsp; &nbsp; &nbsp;toolbox.add_toolbar(_(&#39;Edit&#39;),self._edit_toolbar)<br>
&nbsp; &nbsp; &nbsp; &nbsp;self._edit_toolbar.show()<br>And similarly calling the Viewtoolbar class:<br>&nbsp; &nbsp; &nbsp; &nbsp;view_toolbar = ViewToolbar (self.set_canvas)<br>&nbsp; &nbsp; &nbsp; &nbsp;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>