Hi Maxim, I have implemented following,
- WhiteboardPanel - WhiteboardBehaviour with Synchronization implemented Now whiterboard working well I think. You can find the code in https://github.com/andunslg/Whiteboard-Wicket and a sample app in https://github.com/andunslg/Whiteboard-Wicket-Sample. I will do the polishing part of the code. Thanks! On Mon, Jul 8, 2013 at 6:33 AM, Maxim Solodovnik <solomax...@gmail.com>wrote: > Hello Andun, > > I'll take a look at your code today > > here is an example of pushing updates to the connected users: > > https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/ChatPanel.java > > > On Mon, Jul 8, 2013 at 12:15 AM, Andun Sameera <andun...@gmail.com> wrote: > >> Hi, >> >> >> On Sun, Jul 7, 2013 at 10:03 PM, Andun Sameera <andun...@gmail.com>wrote: >> >>> Hi Maxim, >>> >>> Need your assistance in figuring out the whitboard synchronization >>> logic. Currently what we have is this. >>> >>> - WhiteboardBehaviour which can be applied in this format, >>> >>> WhiteboardBehavior whiteboardBehavior=new >>> WhiteboardBehavior("whiteboard"); >>> >>> - When this is added to a page, all the whiteboard elements will be >>> added to a Map. Each Creation,Update will effect on this collection >>> - Using this kind of a JavaScript, we can add elements to a >>> whiteboard. >>> >>> elementCollection=whiteboard.getMainCollection(); >>> elementCollection.acceptJsonStr('ChangedElementJSON'); >>> >>> - Using this kind of a JavaScript, we can load a whiteboard using >>> JSON string of all the elements >>> >>> elementCollection=whiteboard.getMainCollection(); >>> elementCollection.acceptJsonStr('elementLisyJSON'); >>> >>> In the current test application, I use two buttons to add elements to >>> whitebord and load whitebord from given JSON string. >>> >>> My question is what is the best way to implement Whiteboard >>> Synchronization using these code in Wicket? I planned is this kind of >>> approach, >>> >>> - 1st person open the Whiteboard >>> - He is draws some elements and the element map in the >>> WhiteboardBehaviour get update >>> - 2nd person comes and open the whiteboard. The behavior found that >>> element map(This should be a static collection) is not empty. Thus load >>> the >>> content of whiteboard using the element map. 3rd, 4th happens like that >>> >>> I just implemented this in the code >> >>> >>> - When one person do a change in the whiteboard, element map wll be >>> updated. Meanwhile all the other have to be pushed with the new change >>> >>> I am looking in to >> http://www.wicket-library.com/wicket-examples-6.0.x/atmosphere/ to do >> this task >> >>> >>> - >>> - There whiteboards get update with new change >>> >>> If this is OK how can we push updates to clients form wicket server to >>> achieve 4th step? If you want to have a look a the current code, all are in >>> github. >>> >>> Thanks! >>> >>> >>> On Sun, Jul 7, 2013 at 2:52 AM, Andun Sameera <andun...@gmail.com>wrote: >>> >>>> Hi Maxim, >>>> >>>> I have created the WhiteboardBehaviour in >>>> https://github.com/andunslg/Whiteboard-Wicket. Also I have created >>>> JAVA objects to map elements in Andrey Whiteboard. Now each and every >>>> drawing on whiteboard are mapped in to a JAVA Object. Also other way around >>>> is happening. Also all the elements are kept in a MAP. >>>> >>>> I have implemented all these in the repo. Still the code is in a >>>> preliminary stage. But please have a look. There is a sample webapp in the >>>> repo. >>>> >>>> Thanks! >>>> >>>> >>>> On Sat, Jul 6, 2013 at 7:42 PM, Bogdanov Andrey <ba...@mail.ru> wrote: >>>> >>>>> Yes, you should be carefull with quotes and doublequotes. You could >>>>> use any of them, but if you use single quotes inside string, then you >>>>> should use doublequotes to enclose the string. And vise versa. >>>>> >>>>> >>>>> Суббота, 6 июля 2013, 18:31 +05:30 от Andun Sameera < >>>>> andun...@gmail.com>: >>>>> >>>>> Got it working with this, >>>>> >>>>> collection.acceptJsonStr('{"id": "0", "type": "PointFree", "x": >>>>> "-530", "y": "14"}') >>>>> >>>>> Thanks! >>>>> >>>>> >>>>> On Sat, Jul 6, 2013 at 6:22 PM, Andun Sameera >>>>> <andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>>> > wrote: >>>>> >>>>> Sry for the previous mail! >>>>> >>>>> >>>>> Hi Andreay, >>>>> >>>>> Is this syntax correct to add a element to Whiteboard? >>>>> >>>>> var collection = whiteboard.collections.main; >>>>> collection.acceptJsonStr("{" >>>>> id": 0, "type": "PointFree", "x": -530, "y": 14}"); >>>>> >>>>> I get this error in Firebug console, >>>>> >>>>> SyntaxError: missing ) after argument list >>>>> >>>>> Thanks! >>>>> >>>>> >>>>> On Sat, Jul 6, 2013 at 6:21 PM, Andun Sameera >>>>> <andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>>> > wrote: >>>>> >>>>> Hi Andreay, >>>>> >>>>> Is this syntax correct to add a element to Whiteboard? >>>>> >>>>> collection.acceptJsonStr( >>>>> >>>>> collection.acceptJsonStr( >>>>> >>>>> collection.acceptJsonStr({collection.acceptJsonStr({collection.acceptJsonStr({ >>>>> >>>>> var collection = whiteboard.collections.main; >>>>> collection.acceptJsonStr("{"id": 0, "type": "PointFree", "x": -530, >>>>> "y": 14}"); >>>>> >>>>> I get this error in Firebug console, >>>>> >>>>> SyntaxError: missing ) after argument list >>>>> >>>>> Thanks! >>>>> >>>>> >>>>> On Sat, Jul 6, 2013 at 12:48 AM, Andun Sameera >>>>> <andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>>> > wrote: >>>>> >>>>> I got the update and will work on creating the Java Objects. >>>>> >>>>> Thanks! >>>>> >>>>> >>>>> On Fri, Jul 5, 2013 at 10:40 PM, Bogdanov Andrey >>>>> <ba...@mail.ru<https://e.mail.ru/sentmsg?mailto=mailto%3aba...@mail.ru> >>>>> > wrote: >>>>> >>>>> Hi Andun, >>>>> >>>>> Just now I pushed corrected version of whiteboard to the repo ( >>>>> https://github.com/bay73/whiteboard.git ). >>>>> You could take it. I hope text element works well now. >>>>> Thanks for finding this bug. >>>>> >>>>> Regards, >>>>> Andrey >>>>> >>>>> >>>>> Пятница, 5 июля 2013, 3:08 +05:30 от Andun Sameera < >>>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>>> >: >>>>> >Hi Andrey, >>>>> > >>>>> >Currently I am in the process of Mapping Whiteboard Elements to Java >>>>> Objects. There I noticed that Text fields are bit buggy. I have attached a >>>>> screen shot. When we draw a text box, we are shown a label. But I can find >>>>> a place to edit it. Also I tried with info tool. When I enter a text using >>>>> that, it overlaps as shown in screen shot. Is there a fault in my code ? >>>>> You can look at it in the git repo. >>>>> > >>>>> >Thanks! >>>>> > >>>>> >On Fri, Jul 5, 2013 at 2:10 AM, Andun Sameera < >>>>> >andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com>> >>>>> > wrote: >>>>> >>Hi All, >>>>> >> >>>>> >>I have create the https://github.com/andunslg/Whiteboard-Wicketrepo. I >>>>> >>have committed my POC code there and doing the development on that. >>>>> >> >>>>> >>Thanks! >>>>> >> >>>>> >> >>>>> >>On Thu, Jul 4, 2013 at 12:10 PM, Maxim Solodovnik < >>>>> solomax...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3asolomax...@gmail.com>> >>>>> wrote: >>>>> >>>sure, please create git repo! >>>>> >>> >>>>> >>>instead of using Wicket.ajax.get you can use normal *AjaxBehavior >>>>> you can also create functions of it using getCallbackFunction. >>>>> >>>Old OM code had examples of that (was replaced with >>>>> wicketjquieryui-calendar) >>>>> >>> >>>>> >>> >>>>> >>>On Thu, Jul 4, 2013 at 3:45 AM, Andun Sameera < >>>>> >>>andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com>> >>>>> >>> wrote: >>>>> >>>>Hi All, >>>>> >>>> >>>>> >>>>I have successfully did a first step integration of Andrey's >>>>> whiteboard with Wicket. Now I can send the JSON string successfully to the >>>>> JAVA code. Now I know the way and will work on formalizing the thing! >>>>> >>>> >>>>> >>>> >>>>> >>>>@Andrey >>>>> >>>> >>>>> >>>>Can you give me a example to add a onChnage method to main >>>>> collection. I tried to do it. But is fails. >>>>> >>>> >>>>> >>>>@ Maxim >>>>> >>>> >>>>> >>>>Can I create a Git Repo for the task? Is it going to be a >>>>> wicket-jquery-UI plug-in ? or else ? >>>>> >>>> >>>>> >>>>Thanks! >>>>> >>>> >>>>> >>>> >>>>> >>>>On Wed, Jul 3, 2013 at 11:18 PM, Andun Sameera < >>>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com>> >>>>> wrote: >>>>> >>>>>Hi Andrey, >>>>> >>>>> >>>>> >>>>>OK will do it like that! >>>>> >>>>> >>>>> >>>>>Thanks! >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>On Wed, Jul 3, 2013 at 11:15 PM, Bogdanov Andrey < >>>>> >>>>>ba...@mail.ru<https://e.mail.ru/sentmsg?mailto=mailto%3aba...@mail.ru>> >>>>> >>>>> wrote: >>>>> >>>>>> Hi Andun, >>>>> >>>>>> >>>>> >>>>>>Unfortunately I can't help you with wicket-ajax (I'm nit >>>>> familiar with wicket). >>>>> >>>>>>Only one remark about onChange - defining onChange for prototype >>>>> is not a good idea, because whiteboard use two auxilary collections which >>>>> need not to be synchronized. onChange function should be defined only for >>>>> one main collection. >>>>> >>>>>> >>>>> >>>>>>Regards, >>>>> >>>>>>Andrey >>>>> >>>>>> >>>>> >>>>>> >>>>> >>>>>>Среда, 3 июля 2013, 22:50 +05:30 от Andun Sameera < >>>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com>>: >>>>> >>>>>>>Hi, >>>>> >>>>>>> >>>>> >>>>>>>Considering the example which Andrey gave me early, I am >>>>> planning to do >>>>> >>>>>>>this, >>>>> >>>>>>> >>>>> >>>>>>> - Using the method given below, we can get a JSON string for >>>>> any update >>>>> >>>>>>> happen in Closure WhiteBoard >>>>> >>>>>>> >>>>> >>>>>>>// to be defined on using of collection >>>>> >>>>>>>bay.whiteboard.Collection.prototype.onChange = >>>>> function(element){ >>>>> >>>>>>> alert(this.getJson(element)); >>>>> >>>>>>>} >>>>> >>>>>>> >>>>> >>>>>>> - I will do a Wicket.Ajax call in this JavaScript method to >>>>> send this >>>>> >>>>>>> JSON string to the Server Side >>>>> >>>>>>> - There I process the string and map it to Java Objects >>>>> >>>>>>> - Then Synchronization happens >>>>> >>>>>>> >>>>> >>>>>>>As the initial step to do that, I am trying to implement a >>>>> simple, >>>>> >>>>>>>application which can sent JavaScript Ajax calls to Wicket >>>>> server. I use >>>>> >>>>>>>this article >>>>> >>>>>>> >>>>> https://cwiki.apache.org/confluence/display/WICKET/Calling+Wicket+from+Javascript. >>>>> >>>>>>>I have created the application given below. >>>>> >>>>>>> >>>>> >>>>>>>public class HomePage extends WebPage { >>>>> >>>>>>> private static final long serialVersionUID = 1L; >>>>> >>>>>>> >>>>> >>>>>>> public HomePage(final PageParameters parameters) { >>>>> >>>>>>> super(parameters); >>>>> >>>>>>> >>>>> >>>>>>> >>>>> >>>>>>> final AbstractDefaultAjaxBehavior behave = new >>>>> >>>>>>>AbstractDefaultAjaxBehavior() { >>>>> >>>>>>> protected void respond(final AjaxRequestTarget >>>>> target) { >>>>> >>>>>>> target.add(new Label("foo", "Yeah I was just >>>>> called from >>>>> >>>>>>>Javascript!")); >>>>> >>>>>>> } >>>>> >>>>>>> >>>>> >>>>>>> public void renderHead(Component >>>>> component,IHeaderResponse >>>>> >>>>>>>response){ >>>>> >>>>>>> >>>>> >>>>>>> String componentMarkupId = >>>>> component.getMarkupId(); >>>>> >>>>>>> String callbackUrl = >>>>> getCallbackUrl().toString(); >>>>> >>>>>>> >>>>> >>>>>>> response.render( >>>>> >>>>>>>JavaScriptHeaderItem.forScript("var >>>>> >>>>>>>componentMarkupId='"+componentMarkupId+"'; var >>>>> >>>>>>>callbackUrl='"+callbackUrl+"';","values")); >>>>> >>>>>>> } >>>>> >>>>>>> }; >>>>> >>>>>>> >>>>> >>>>>>> add(behave); >>>>> >>>>>>> >>>>> >>>>>>> } >>>>> >>>>>>> >>>>> >>>>>>>} >>>>> >>>>>>> >>>>> >>>>>>>and my HomePage.html, >>>>> >>>>>>> >>>>> >>>>>>><!DOCTYPE HTML> >>>>> >>>>>>><html> >>>>> >>>>>>><body> >>>>> >>>>>>><script src=" >>>>> http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js >>>>> >>>>>>>"></script> >>>>> >>>>>>><script type="text/javascript"> >>>>> >>>>>>> $(function() { >>>>> >>>>>>> var wcall = Wicket.Ajax.get({ u: '${callbackUrl}' + '' >>>>> }); >>>>> >>>>>>> alert(wcall); >>>>> >>>>>>> }); >>>>> >>>>>>></script> >>>>> >>>>>>></body> >>>>> >>>>>>></html> >>>>> >>>>>>> >>>>> >>>>>>>Still I cant get this to a working position. When I start this >>>>> application, >>>>> >>>>>>>wicket-ajax.js file is not loading. Thus console gives >>>>> following error, >>>>> >>>>>>> >>>>> >>>>>>>ReferenceError: Wicket is not defined >>>>> >>>>>>>[Break On This Error] >>>>> >>>>>>> >>>>> >>>>>>>var wcall = Wicket.Ajax.get({ u: '${callbackUrl}' + '' }); >>>>> >>>>>>> >>>>> >>>>>>>Still cant find why wicket-ajax is not loaded to my >>>>> application. Will let >>>>> >>>>>>>you know further updates! >>>>> >>>>>>> >>>>> >>>>>>>Thanks! >>>>> >>>>>>> >>>>> >>>>>>> >>>>> >>>>>>>On Tue, Jul 2, 2013 at 2:08 PM, Andun Sameera < >>>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com>> >>>>> wrote: >>>>> >>>>>>> >>>>> >>>>>>>> OK Maxim. Will do it like that! >>>>> >>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>>> On Tue, Jul 2, 2013 at 2:05 PM, Maxim Solodovnik < >>>>> solomax...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3asolomax...@gmail.com>>wrote: >>>>> >>>>>>>> >>>>> >>>>>>>>> I would totally disagree with >>>>> >>>>>>>>> "At the Wicket Java code we save these elements as Java >>>>> Objecst which >>>>> >>>>>>>>> contains the JSON strings." >>>>> >>>>>>>>> >>>>> >>>>>>>>> Java objects should contain normal fields like "Point >>>>> center; int >>>>> >>>>>>>>> radius;" and be (de)serialized (from)into JSON if necessary. >>>>> >>>>>>>>> >>>>> >>>>>>>>> >>>>> >>>>>>>>> On Tue, Jul 2, 2013 at 2:27 PM, Andun Sameera < >>>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com>>wrote: >>>>> >>>>>>>>> >>>>> >>>>>>>>>> Hi Andrey, >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> Great! If you can give me a example for, >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> collection.onChange(element) >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> it will be highly appreciated. >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> @Maxim, >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> After some thinking I cam across of this idea. Please >>>>> correct me If I am >>>>> >>>>>>>>>> wrong. >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> - All the whiteboard elements can be represented as JSON >>>>> strings >>>>> >>>>>>>>>> (Have to find a way to add PDF,DOCs, Pictures to >>>>> whiteboard in this way) >>>>> >>>>>>>>>> - At the Wicket Java code we save these elements as Java >>>>> Objecst >>>>> >>>>>>>>>> which contains the JSON strings. >>>>> >>>>>>>>>> - To synchronize white board we can send these object to >>>>> all the >>>>> >>>>>>>>>> viewers. >>>>> >>>>>>>>>> - To save/load we can use this already implemented JSON >>>>> based >>>>> >>>>>>>>>> serialization and de-serialization. >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> But have to find ways to get all these data from closure >>>>> implementation >>>>> >>>>>>>>>> to wicket! >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> Thanks! >>>>> >>>>>>>>>> On Tue, Jul 2, 2013 at 11:28 AM, Bogdanov Andrey < >>>>> ba...@mail.ru<https://e.mail.ru/sentmsg?mailto=mailto%3aba...@mail.ru>> >>>>> wrote: >>>>> >>>>>>>>>> >>>>> >>>>>>>>>>> Hi Andun, >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> Whiteboard consists of two main objects: ui-component >>>>> >>>>>>>>>>> "bay.whiteboard.Whiteboard", which contains functionality >>>>> for user >>>>> >>>>>>>>>>> interaction and collections of objects >>>>> "bay.whiteboard.Collection" which >>>>> >>>>>>>>>>> contains list of objects and some stuff to manipulate them. >>>>> >>>>>>>>>>> After createing WB with >>>>> >>>>>>>>>>> whiteboard = bay.whiteboard.Create(); >>>>> >>>>>>>>>>> you could access to collection as >>>>> >>>>>>>>>>> collection = whiteboard.collections.main; or >>>>> >>>>>>>>>>> collection = whiteboard.getMainCollection(); - i've just >>>>> added this >>>>> >>>>>>>>>>> method >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> After that you could define >>>>> >>>>>>>>>>> collection.onChange(element) - method wich will be >>>>> invoked every >>>>> >>>>>>>>>>> time when some drawing elements add or change. >>>>> >>>>>>>>>>> Also you could use methods: >>>>> >>>>>>>>>>> collection.getJson(element); - to obtain json code >>>>> for an element >>>>> >>>>>>>>>>> collection.jsonCode(); - to obtain json code for >>>>> whole >>>>> >>>>>>>>>>> collection >>>>> >>>>>>>>>>> collection.acceptJsonStr(str); - to add or change >>>>> one element >>>>> >>>>>>>>>>> described as json >>>>> >>>>>>>>>>> collection.parseJson(str); - to rebuild all from the >>>>> given json >>>>> >>>>>>>>>>> string >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> As an example you could explore linkWebSocket method in >>>>> ui.js, which >>>>> >>>>>>>>>>> allows synchronize wb-content through webSocket >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> Regards, >>>>> >>>>>>>>>>> Andrey Bogdanov >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> Вторник, 2 июля 2013, 1:25 +05:30 от Andun Sameera < >>>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>>> >>>>>>>>>>> >: >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> Hi Andrey, >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> I am moving in to this new thread to discuss about the >>>>> clarifications, >>>>> >>>>>>>>>>> improvements and integration of your Whiteboard to wicket. >>>>> I have looked at >>>>> >>>>>>>>>>> your code which can be found >>>>> https://github.com/bay73/whiteboard . I >>>>> >>>>>>>>>>> have following questions, >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> - In Wicket, I want map Whiteboard Elements(Rectangle, >>>>> Circle, >>>>> >>>>>>>>>>> Text, etc.) to Java objects. >>>>> >>>>>>>>>>> - Thus we can send those object to all the Whiteboard >>>>> viewers. >>>>> >>>>>>>>>>> - Using these objects there Whiteboards will be updated. >>>>> >>>>>>>>>>> - To do that, can I get some data from your code? which >>>>> can be >>>>> >>>>>>>>>>> later used to create elements. I saw there is a >>>>> serialization methods and >>>>> >>>>>>>>>>> deserilization method in base.js. If we can extend that >>>>> mechanism to give >>>>> >>>>>>>>>>> some data when element is drawn or edited as an event, >>>>> I can use them to >>>>> >>>>>>>>>>> create Java objects. >>>>> >>>>>>>>>>> - Also there should be a mechanism to draw elements on >>>>> your >>>>> >>>>>>>>>>> Whiteboard by passing those data. >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> Can we do these things? >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> Thanks! >>>>> >>>>>>>>>>> -- >>>>> >>>>>>>>>>> Regards >>>>> >>>>>>>>>>> Andun S.L. Gunawardana >>>>> >>>>>>>>>>> Undergraduate >>>>> >>>>>>>>>>> Department of Computer Science And Engineering >>>>> >>>>>>>>>>> University of Moratuwa >>>>> >>>>>>>>>>> Sri Lanka >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> Blog - http://www.insightforfuture.blogspot.com/ >>>>> >>>>>>>>>>> LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >>>>>>>>>>> Twitter - http://twitter.com/AndunSLG >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>>> -- >>>>> >>>>>>>>>>> Андрей Богданов >>>>> >>>>>>>>>>> >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> -- >>>>> >>>>>>>>>> Regards >>>>> >>>>>>>>>> Andun S.L. Gunawardana >>>>> >>>>>>>>>> Undergraduate >>>>> >>>>>>>>>> Department of Computer Science And Engineering >>>>> >>>>>>>>>> University of Moratuwa >>>>> >>>>>>>>>> Sri Lanka >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> Blog - http://www.insightforfuture.blogspot.com/ >>>>> >>>>>>>>>> LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >>>>>>>>>> Twitter - http://twitter.com/AndunSLG >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> >>>>> >>>>>>>>>> >>>>> >>>>>>>>> >>>>> >>>>>>>>> >>>>> >>>>>>>>> >>>>> >>>>>>>>> -- >>>>> >>>>>>>>> WBR >>>>> >>>>>>>>> Maxim aka solomax >>>>> >>>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>>> -- >>>>> >>>>>>>> Regards >>>>> >>>>>>>> Andun S.L. Gunawardana >>>>> >>>>>>>> Undergraduate >>>>> >>>>>>>> Department of Computer Science And Engineering >>>>> >>>>>>>> University of Moratuwa >>>>> >>>>>>>> Sri Lanka >>>>> >>>>>>>> >>>>> >>>>>>>> Blog - http://www.insightforfuture.blogspot.com/ >>>>> >>>>>>>> LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >>>>>>>> Twitter - http://twitter.com/AndunSLG >>>>> >>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>>> >>>>> >>>>>>> >>>>> >>>>>>> >>>>> >>>>>>> >>>>> >>>>>>>-- >>>>> >>>>>>>Regards >>>>> >>>>>>>Andun S.L. Gunawardana >>>>> >>>>>>>Undergraduate >>>>> >>>>>>>Department of Computer Science And Engineering >>>>> >>>>>>>University of Moratuwa >>>>> >>>>>>>Sri Lanka >>>>> >>>>>>> >>>>> >>>>>>>Blog - http://www.insightforfuture.blogspot.com/ >>>>> >>>>>>>LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >>>>>>>Twitter - http://twitter.com/AndunSLG >>>>> >>>>>>> >>>>> >>>>>> >>>>> >>>>>> >>>>> >>>>>>-- >>>>> >>>>>>Андрей Богданов >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>-- >>>>> >>>>>Regards >>>>> >>>>>Andun S.L. Gunawardana >>>>> >>>>>Undergraduate >>>>> >>>>>Department of Computer Science And Engineering >>>>> >>>>>University of Moratuwa >>>>> >>>>>Sri Lanka >>>>> >>>>> >>>>> >>>>>Blog - http://www.insightforfuture.blogspot.com/ >>>>> >>>>>LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >>>>>Twitter - http://twitter.com/AndunSLG >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>>> >>>> >>>>> >>>>-- >>>>> >>>>Regards >>>>> >>>>Andun S.L. Gunawardana >>>>> >>>>Undergraduate >>>>> >>>>Department of Computer Science And Engineering >>>>> >>>>University of Moratuwa >>>>> >>>>Sri Lanka >>>>> >>>> >>>>> >>>>Blog - http://www.insightforfuture.blogspot.com/ >>>>> >>>>LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >>>>Twitter - http://twitter.com/AndunSLG >>>>> >>>> >>>>> >>>> >>>>> >>>> >>>>> >>>> >>>>> >>> >>>>> >>> >>>>> >>>-- >>>>> >>>WBR >>>>> >>>Maxim aka solomax >>>>> >> >>>>> >> >>>>> >>-- >>>>> >>Regards >>>>> >>Andun S.L. Gunawardana >>>>> >>Undergraduate >>>>> >>Department of Computer Science And Engineering >>>>> >>University of Moratuwa >>>>> >>Sri Lanka >>>>> >> >>>>> >>Blog - http://www.insightforfuture.blogspot.com/ >>>>> >>LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >>Twitter - http://twitter.com/AndunSLG >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> > >>>>> > >>>>> >-- >>>>> >Regards >>>>> >Andun S.L. Gunawardana >>>>> >Undergraduate >>>>> >Department of Computer Science And Engineering >>>>> >University of Moratuwa >>>>> >Sri Lanka >>>>> > >>>>> >Blog - http://www.insightforfuture.blogspot.com/ >>>>> >LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> >Twitter - http://twitter.com/AndunSLG >>>>> > >>>>> > >>>>> > >>>>> > >>>>> >>>>> -- >>>>> Андрей Богданов >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards >>>>> Andun S.L. Gunawardana >>>>> Undergraduate >>>>> Department of Computer Science And Engineering >>>>> University of Moratuwa >>>>> Sri Lanka >>>>> >>>>> Blog - http://www.insightforfuture.blogspot.com/ >>>>> LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> Twitter -http://twitter.com/AndunSLG >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards >>>>> Andun S.L. Gunawardana >>>>> Undergraduate >>>>> Department of Computer Science And Engineering >>>>> University of Moratuwa >>>>> Sri Lanka >>>>> >>>>> Blog - http://www.insightforfuture.blogspot.com/ >>>>> LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> Twitter -http://twitter.com/AndunSLG >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards >>>>> Andun S.L. Gunawardana >>>>> Undergraduate >>>>> Department of Computer Science And Engineering >>>>> University of Moratuwa >>>>> Sri Lanka >>>>> >>>>> Blog - http://www.insightforfuture.blogspot.com/ >>>>> LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> Twitter -http://twitter.com/AndunSLG >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards >>>>> Andun S.L. Gunawardana >>>>> Undergraduate >>>>> Department of Computer Science And Engineering >>>>> University of Moratuwa >>>>> Sri Lanka >>>>> >>>>> Blog - http://www.insightforfuture.blogspot.com/ >>>>> LinkedIn - >>>>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>>> Twitter -http://twitter.com/AndunSLG >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Андрей Богданов >>>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> Andun S.L. Gunawardana >>>> Undergraduate >>>> Department of Computer Science And Engineering >>>> University of Moratuwa >>>> Sri Lanka >>>> >>>> Blog - http://www.insightforfuture.blogspot.com/ >>>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>> Twitter -http://twitter.com/AndunSLG >>>> >>>> >>>> >>>> >>>> >>> >>> >>> >>> -- >>> Regards >>> Andun S.L. Gunawardana >>> Undergraduate >>> Department of Computer Science And Engineering >>> University of Moratuwa >>> Sri Lanka >>> >>> Blog - http://www.insightforfuture.blogspot.com/ >>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>> Twitter -http://twitter.com/AndunSLG >>> >>> >>> >>> >>> >> >> Thanks! >> >> -- >> Regards >> Andun S.L. Gunawardana >> Undergraduate >> Department of Computer Science And Engineering >> University of Moratuwa >> Sri Lanka >> >> Blog - http://www.insightforfuture.blogspot.com/ >> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >> Twitter -http://twitter.com/AndunSLG >> >> >> >> >> > > > > -- > WBR > Maxim aka solomax > -- Regards Andun S.L. Gunawardana Undergraduate Department of Computer Science And Engineering University of Moratuwa Sri Lanka Blog - http://www.insightforfuture.blogspot.com/ LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 Twitter -http://twitter.com/AndunSLG