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>: >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 > wrote: > >> OK Maxim. Will do it like that! >> >> >> On Tue, Jul 2, 2013 at 2:05 PM, Maxim Solodovnik < solomax...@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 >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 > 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 >>>>> >: >>>>> >>>>> 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 > -- Андрей Богданов