Newbie questions about Pliant

Newbie questions about Pliant

Writing a demo app using new browser

I have a demo application in mind. It allows
to surround areas inside an image with borders.
What is the skeleton for implementing such ?
Message posted by maybe Boris Reitman on 2006/01/24 18:06:29
Here is an application that I would want to write, as a proof of concept in order
to advertise pliant in the company that I work for (RichFX).  This application allows
to take a high quality image, say 3000x3000 pixels, which is usually a scan of a page from a magazine,
and display it zoomed out, such that it fits on the screen. It is possible to zoom into the image, and
in this case it is possible to scroll through the image left and right, top
and bottom.  It is possible to mark rectangular areas on the image with a mouse,
by placing a border around it.  A vertical side panel shows a list of each marked
border in a table like below, and lets a user set a name for the border.

 border | name
  1     | couch
  2     | lamp
  3     | _type here_

Upon a press of a special button, an algorithm "find auto border" will launch
and will try to find rectangular areas in an image and put a border
around them.

Can you please suggest what part of the code should be done on the server
and what part on the client, and how many new constructs would I need to
implement ?  Here is outline of what I am thinking, please correct me
if I am wrong.
- Would scrolling of the image be done completely on the client ?
  Would I need to implement something like a scrollable window feature, then ?
- Where would the code for marking a border be placed ?
- Would the marking the border be completely on client, and when the mouse button is lifted off,
  should I communicated a new border event to the server ?  Will the server
  know of a border datascructure (x0,y0,x1,y1), and to support this do I need
  to implement a new pliant construct ?
- After the server gets notified of a new border event, it needs to record it
  in a custom database and send a replay event to a table that lists all the borders,
  by adding a new row, so that the user can type in a name for the border.
- Once border info is typed in, the server gets notified of an event.
- As for the autoborder button, it is probably better if the client will do
the search since it is resource intensive process.
Where would I place such code, and do I need to implement new pliant constructs ?

Do you think it is a big project, or can it be done in one sitting ?
Thanks,
Boris
Message posted by hubert.tonneau on 2006/01/24 18:46:29
It reminds me some project I have developped:
http://www.openpack.org/view/demo/Joxj4srOzA_9.LOzGy7yog/CAFE.pdf

The first question for your project is:
would the end user run the Pliant ui client or a standard web browser ?
Message posted by maybe Boris Reitman on 2006/01/24 19:28:58
They will be using Pliant ui client.
Message posted by hubert.tonneau on 2006/01/24 21:14:31
Please notice that for so an application the VNC protocol is just perfect,
also it makes things a bit hard for menus on the server side.

Basically the Pliant ui client should be ok, but will be only when I have
finished the bitmap handling area.
One extension you need that is planned but not implemented yet is the
ability of have a lazy bitmap. I mean you define a large bitmap, and the
ui client just requests the rectangles it needs.

Up to now, I concentrated on three parts about the Pliant ui client:
. the internal storage of the tree and styling properties propagation
. the protocol between the client and the server
. efficient positioning

So, you can assume that Pliant ui client is far from complete, event if
it starts to be usable.

My advise would be: start an application using the Pliant ui client only
if you master the code enough to make some changes yourself, else wait one
more year or use another more mature tool.