Red Black Tree Visualization using HTML5 Canvas and GWT

I created a sample app that demonstrates HTML5 Canvas usage from Java through GWT. I think GWT is an excellent tool for migrating desktop apps into Web nowadays, especially for Java developers. So it’s worth giving it a try. Google has made significant progress on migrating desktop apps into Web during the last year. They propagated trend for HTML5 support and Javascript JIT compilers among modern browsers. So it’s possible to run Quake 2 or CAD software directly in browser at decent speed. Red Black Tree is a balanced BST tree. Details are described on Wikipedia. You can run this sample app directly on appspot (it works on iPhone too :-) ) Sample code can be found here: Browse on GitHub. Let’s start from initialization. First, we need to create Canvas element and add it to HTML. getContext2D is called to obtain drawing context. We register a timer to redraw frames frequently: So doUpdate is called every 50 ms and whenever redrawFrame is set to true, it redraws Canvas contents. In autoplay mode, we call processFrame in while loop. So whenever redraw procedure takes too long, we will process frames without redrawing them. This won’t slow down animation on low resources. Then, we need to draw a tree. We use drawTree procedure, which is recursive and draws nodes along with contents and connections between them: The best part is that we can do regular Java unit tests on Red Black tree to verify the correctness of implementation:

You May Also Like

Spring Security by example: OpenID (login via gmail)

This is a part of a simple Spring Security tutorial: 1. Set up and form authentication 2. User in the backend (getting logged user, authentication, testing) 3. Securing web resources 4. Securing methods 5. OpenID (login via gmail) 6. OAuth2 (login v...This is a part of a simple Spring Security tutorial: 1. Set up and form authentication 2. User in the backend (getting logged user, authentication, testing) 3. Securing web resources 4. Securing methods 5. OpenID (login via gmail) 6. OAuth2 (login v...

Spring Security by example: securing methods

This is a part of a simple Spring Security tutorial:

1. Set up and form authentication
2. User in the backend (getting logged user, authentication, testing)
3. Securing web resources
4. Securing methods
5. OpenID (login via gmail)
6. OAuth2 (login via Facebook)
7. Writing on Facebook wall with Spring Social

Securing web resources is all nice and cool, but in a well designed application it's more natural to secure methods (for example on backend facade or even domain objects). While we may get away with role-based authorization in many intranet business applications, nobody will ever handle assigning roles to users in a public, free to use Internet service. We need authorization based on rules described in our domain.

For example: there is a service AlterStory, that allows cooperative writing of stories, where one user is a director (like a movie director), deciding which chapter proposed by other authors should make it to the final story.

The method for accepting chapters, looks like this:

Read more »