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 <[email protected]> wrote:
> OK Maxim. Will do it like that!
>
>
> On Tue, Jul 2, 2013 at 2:05 PM, Maxim Solodovnik <[email protected]>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 <[email protected]>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 <[email protected]> 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 <[email protected]
>>>> >:
>>>>
>>>> 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