Simple 2d graphing in web page - where to begin

James Harris

Usenet Archive
Joined
Apr 6, 2001
Messages
518
Reaction score
0
My Googling has let me down here - maybe because when it comes to Java I don't really know which type I need! If someone could point me in the right direction I'd appreciate it.

My requirement is simple: to display a 2-d graph within a web page where the X and Y values are taken from a database (residing on the server hosting the web pages). The GUI is to allow panning forwards and backwards over time (the X values are 32-bit timestamps) and zooming in and out. That's about it. It would be a bonus if there were a time display of the cursor position as it is moved over the image.

Java noob question: what /type/ of Java would I need? I see there are applets, servlets, beans and swing components... oh and Javascript thrown in to the equation. I don't know where to begin!

I notice that IE warns about the security of some embedded components but not others. Anyone know what makes the difference?

Is there any existing code that will do the 2-d graphing, as above, that I could modify? Is there an existing package that will do all of what I want? It seems a pretty basic requirement.

Lastly, and thanks for staying with me, could you recommend any books that would provide suitable source code - e.g. a Java or Javascript cookbook?
 

Daniel Pitts

Usenet Archive
Joined
Oct 29, 2006
Messages
3,184
Reaction score
0
My Googling has let me down here - maybe because when it comes to Java I don't really know which type I need! If someone could point me in the right direction I'd appreciate it.

My requirement is simple: to display a 2-d graph within a web page where the X and Y values are taken from a database (residing on the server hosting the web pages). The GUI is to allow panning forwards and backwards over time (the X values are 32-bit timestamps) and zooming in and out. That's about it. It would be a bonus if there were a time display of the cursor position as it is moved over the image.

Java noob question: what /type/ of Java would I need? I see there are applets, servlets, beans and swing components... oh and Javascript thrown in to the equation. I don't know where to begin!

I notice that IE warns about the security of some embedded components but not others. Anyone know what makes the difference?

Is there any existing code that will do the 2-d graphing, as above, that I could modify? Is there an existing package that will do all of what I want? It seems a pretty basic requirement.

Lastly, and thanks for staying with me, could you recommend any books that would provide suitable source code - e.g. a Java or Javascript cookbook?

This really sounds like a good place for a multi-tier solution. You would have a server or servlet application that access the database, and a client side application (maybe using Applet or Java Web Start)
that renders the graphs.

It might actually be better to make the front-end a Flash file if you are more concerned with "pretty rendering" than business logic on the front end. If the display were more static, you might consider using a servlet to render it server side, and not worry about client-side applications.

There are really a lot of options for this. I personally would probably start with a pure servlet/jsp implementation, which rendered an html page and a PNG image using java imageio. Mostly because thats what I already know.

Hope this helps,
Daniel
 

-Lost

Usenet Archive
Joined
Dec 21, 2006
Messages
674
Reaction score
0
My requirement is simple: to display a 2-d graph within a web page where the X and Y values are taken from a database (residing on the server hosting the web pages). The GUI is to allow panning forwards and backwards over time (the X values are 32-bit timestamps) and zooming in and out. That's about it. It would be a bonus if there were a time display of the cursor position as it is moved over the image.

Java noob question: what /type/ of Java would I need? I see there are applets, servlets, beans and swing components... oh and Javascript thrown in to the equation. I don't know where to begin!

Well, I believe either approach is theoretically possible. I know firsthand I have seen applets (class files) performing that type of thing here:

http://www.analyzemath.com/Calculators.html

As such, rather than begin learning a slew of DHTML, I would recommend you take this question to:

comp.lang.java

Also, avoid multiposting. It is lazy (and rude?) and people would respond to you thusly
I notice that IE warns about the security of some embedded components but not others. Anyone know what makes the difference?

After updating to SP2 in Windows XP I get the:

"Internet Explorer has restricted this file from showing active content that could access your computer."

....whether I am running a JavaScript, a VBScript, ActiveX, or Java applet.
Is there any existing code that will do the 2-d graphing, as above, that I could modify? Is there an existing package that will do all of what I want? It seems a pretty basic requirement.

If there is, Google would surely find it for you.
Lastly, and thanks for staying with me, could you recommend any books that would provide suitable source code - e.g. a Java or Javascript cookbook?

http://www.oreillynet.com/pub/au/156

David Flanagan's "JavaScript: The Definitive Guide 5th Edition" seems to be the wisest choice. Had I the money this is the book I would upgrade my 3rd Edition to.

Hope this helps a bit.

-Lost
 

James Harris

Usenet Archive
Joined
Apr 6, 2001
Messages
518
Reaction score
0
JamesThis really sounds like a good place for a multi-tier solution. You would have a server or servlet application that access the database, and a client side application (maybe using Applet or Java Web Start)
that renders the graphs.

I guess keeping the database with the web server would allow just two tiers and thus keep it simpler. My overriding goal at the mo! I can add features later. Never heard of Java Web Start but it sounds promising.
It might actually be better to make the front-end a Flash file if you are more concerned with "pretty rendering" than business logic on the front end. If the display were more static, you might consider using a servlet to render it server side, and not worry about client-side applications.

All I need is a rectangle and some ways to influence what the rectangle displays. The simpler the better.
There are really a lot of options for this. I personally would probably start with a pure servlet/jsp implementation, which rendered an html page and a PNG image using java imageio. Mostly because thats what I already know.

Wow! JSP is another option, then? I guess there are just too many options. When I wrote some stuff in Java years ago I spent most of the time looking for and learning how to work with what other people had written than writing code myself. I guess that's even more the need now!
 
Joined
Aug 4, 2006
Messages
1,381
Reaction score
0
James said:
My Googling has let me down here - maybe because when it comes to Java I don't really know which type I need! If someone could point me in the right direction I'd appreciate it.

My requirement is simple: to display a 2-d graph within a web page where the X and Y values are taken from a database (residing on the server hosting the web pages). The GUI is to allow panning forwards and backwards over time (the X values are 32-bit timestamps) and zooming in and out. That's about it. It would be a bonus if there were a time display of the cursor position as it is moved over the image.

Java noob question: what /type/ of Java would I need? I see there are applets, servlets, beans and swing components... oh and Javascript thrown in to the equation. I don't know where to begin!

I notice that IE warns about the security of some embedded components but not others. Anyone know what makes the difference?

Is there any existing code that will do the 2-d graphing, as above, that I could modify? Is there an existing package that will do all of what I want? It seems a pretty basic requirement.

If you want to use Java, then I would suggest:
* JSP page with IMG tag that refers to a servlet
* the servlet gets the data from the database and
outputs the graphics (I can recommend JFreeChart
for the purpose)

Arne
 

Lew (5)

Usenet Archive
Joined
Sep 28, 2006
Messages
443
Reaction score
0
Arne said:
If you want to use Java, then I would suggest:
* JSP page with IMG tag that refers to a servlet
* the servlet gets the data from the database and
outputs the graphics (I can recommend JFreeChart
for the purpose)

To elaborate on that excellent suggestion:

A servlet that simply streams the bytes out from an image to the response OutputStream can act as a URL for <image src="" ...>. For more better finer you add mime type headers, etc., to the servlet's output.

After perusing <http://www.jfree.org/jfreechart/index.html> I see that JFreeChart has done this for us.

-Lew
 

Zilbandy

Usenet Archive
Joined
Nov 6, 2006
Messages
15
Reaction score
0
On Sun, 28 Jan 2007 20:57:37 -0500, "-Lost"
wrote:

Also, avoid multiposting. It is lazy (and rude?) and people would respond to you thusly

I believe the OP crossposted, which is the preferred way. Multiposting would involve separate posts to multiple groups and defeats the crossposting filters available in today's newsreaders. IMO, it's neither lazy, or rude. I choose not to do either as a general rule and wait for a reply in one group before moving to another group. This reply has been posted only to the group I am reading at the time.
 

Andrew Thompson

Usenet Archive
Joined
Jan 16, 2003
Messages
9,476
Reaction score
0
...
I guess keeping the database with the web server would allow just two tiers and thus keep it simpler. My overriding goal at the mo! I can add features later. Never heard of Java Web Start but it sounds promising.

Arne and Lew pointed out the path of JFreeChart and
servlets to produce a web-application that does what
you need, without *any* plug-ins on the client side.

Another path to take is JFreeChart combined with either applets or a web-start applet/application, as mentioned by Daniel.

Of the two (web page applet/web-start app.), you will have far fewer problems with the latter.

The first route requires a Java enabled site, whereas
the second requires the end-user to have a suitbale
Java Plug-In installed.

For some examples of web-start, see..
<http://www.physci.org/jws/>

HTH

Andrew T.
 

James Harris

Usenet Archive
Joined
Apr 6, 2001
Messages
518
Reaction score
0
Arne and Lew pointed out the path of JFreeChart and
servlets to produce a web-application that does what
you need, without *any* plug-ins on the client side.

Another path to take is JFreeChart combined with either applets or a web-start applet/application, as mentioned by Daniel.

JFreeChart looks good, even at the price(!)
Of the two (web page applet/web-start app.), you will have far fewer problems with the latter.

Would there need to be something running on the client to report to the user the X-value of the mouse pointer. Would that need an applet or would that be a Javascript function... or would either do? Still confused... can you tell? I now understand there is no connection between Java and Javascript (other than a heritage from C) so maybe either would do.

In my mind there would be an Applet running on the PC (within the browser) using JDBC to read the database on the webserver. It would connect under a userid that had read-rights only. If I have to write a server component also (a servlet?) doesn't that make things more complex rather than simpler?
The first route requires a Java enabled site, whereas
the second requires the end-user to have a suitbale
Java Plug-In installed.

I thought there was a JVM (is this the same as the Java plug-in you mention) included with IE, Firefox etc? Or is it that each browser will interpret Javascript? I'm honestly finding it difficult to work out how these things hang together so bear with me, and many thanks for the help.
 
Joined
Aug 4, 2006
Messages
1,381
Reaction score
0
Andrew said:
Arne and Lew pointed out the path of JFreeChart and
servlets to produce a web-application that does what
you need, without *any* plug-ins on the client side.

Another path to take is JFreeChart combined with either applets or a web-start applet/application, as mentioned by Daniel.

Of the two (web page applet/web-start app.), you will have far fewer problems with the latter.

The first route requires a Java enabled site, whereas
the second requires the end-user to have a suitbale
Java Plug-In installed.

I do not quite understand why you think it is less problematic ti have all users install a java plugin than setting up a servlet engine.

The server side solution is under your control. The client side solution is easy to get 80% or 90% maybe even 95%, but then it can become very problematic. It is not fun to act as helpdesk on peoples various PC problems to get Java working.

Arne
 

Andrew Thompson

Usenet Archive
Joined
Jan 16, 2003
Messages
9,476
Reaction score
0
I do not quite understand why you think it is less problematic ti have all users install a java plugin than setting up a servlet engine.

I don't. After rereading my words, I can see I was
not very clear.

The 'servlet engine' feeding raw HTML and images
would be easiest in terms of maintenance. Since
it only requires the user to have an 'image enabled'
browser, it should be 'low support'.

If the OP folows the path of supplying a Java
applet or JWS based applet/application, the
easier deployment option is web-start.

Note though, that after reading the OP's latest
response, it seems he is thinking of a more
'active' experience on the user side than can
be delivered with pure HTML and images, and
might need to use JS to achieve the effects
required.

As soon as 'JS' enters the picture, I think that
makes the maintenance (for the end user) to be
higher again, and I would tend to prefer the JWS
option.

Andrew T.
 
Joined
Dec 4, 2017
Messages
1
Reaction score
0
I'm glad to help you but I just start to learn Java. I'll glad also if you share with me some interesting source to learn Java. I use only familyessay org for my education.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
548,042
Messages
3,104,223
Members
248,131
Latest member
Tonypshaw1

Latest Threads

Top