You know, if what you want is Swing on the client, i.e., you write code to do everything, then my VisML project that I mentioned yesterday is one such option.
But you start to see in a pretty big hurry that it isn't a good idea... One of the most powerful aspects of web development is the way you can separate presentation from data and describe both in a meta language. That is of course what HTML is! I mean, think of it this way... When you write... <img src="myImage.gif"> ... this is essentially a meta description for something like (assuming Windows): int xLocation = calculateImageLocationX(browser.getWindow()); int yLocation = calculateImageLocationY(browser.getWindow()); DirectX d = new DirectX(); DXImage i = d.getImage(%imageSrc%); browser.getWindow().drawImage(i, xLocation, yLocation); ...now, don't for a second think that is legitmiate code! It is completely made up :) The point I'm trying to make though is that a great deal of code is being executed, potentially anyway, as a result of a seemingly simple <img> tag. Now, if you had to write all that code instead of just dropping a tag in a page, UGH! And that doesn't even mention the hassle of now having something to compile as opposed to something to simply drop in a directory somewhere and let the app server recompile on-the-fly. I forget who it was but someone mentioned the idea of having custom tags that generate the underlying code... this is an intersting idea to me because you get the whole Swing-ish code-centric approach underlying it all, but with custom tags so you don't have to do all the code if you don't want to. If I took my VisML project and wrapped a taglib around it, that could be interesting (although I'd still have any number of concerns). Maybe for down the road... -- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com On Wed, April 20, 2005 9:31 am, Dakota Jack said: > There are lots of issues besides just wanting this to happen. All > serious attempts so far have pretty much failed. Have you looked at > Flash, if this is your big interest? Flash ActionScript pretty much > does what you want. But, I don't think it is a good idea. I think > you have to keep some things serverside. > > Jack > > On 4/20/05, Erik Weber <[EMAIL PROTECTED]> wrote: >> >> >> Frank W. Zammetti wrote: >> >> >On Tue, April 19, 2005 10:47 am, Erik Weber said: >> > >> > >> >>I, with respect for the author, disagree with this entirely. >> >> >> >>I am people, and this is not what I expect or desire at all. As a >> user, >> >>I expect and desire 1) A fast download 2) my bookmarks to work/easy to >> >>remember URLs 3) an organized and well-thought-out left rail 4) a go >> >>home link at the top 5) a two-field registration 6) an encrypted log >> on >> >>7) content I can read in a text-only browser. None of these require >> any >> >>browser scripting at all. >> >> >> >> >> > >> >You describe a good web SITE, and I couldn't agree with your criteria >> >more! However, what you don't describe well is a web APPLICATION. >> > >> >Web APPLICATIONS are where the scripting is, generally, needed, and >> where >> >the UI tends to be more complex. >> > >> > >> > >> >> Well, you are right, but that's also my point. I think it's comical that >> here we are in 2005, and Web application developers are just now able to >> provide users with a way to launch an asynchronous task via a GUI >> control. And it's still hackish as far as I can tell (embedding >> "engines" in hidden frames? -- come on . . .). Wouldn't you rather use a >> real API to a real windowing/graphics library, not to mention a real >> threading API? >> >> final int threadPriority = MEDIUM_THREAD_PRIORITY; >> final int iterationYieldFrequency = 100; >> final int callbackFrequency = 25; >> final ProgressListener listener = getGUIUpdater(); >> button.addActionListener(new ActionListener() { >> public void actionPerformed(ActionEvent e) { >> SwingWorker worker = new CustomSwingWorker("long time job", >> threadPriority) { >> public Object construct() { >> JobManager manager = new JobManager(); >> int statusCode = manager.launchLongJob("foo job", >> iterationYieldFrequency, callbackFrequency, listener); >> return new Integer(statusCode); >> } >> public void finished() { >> updateGUI(statusCode.intValue()); >> } >> }; >> worker.start(); >> } >> }; >> >> I guess I'm in the wrong forum. >> >> :) >> >> Erik >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > -- > "You can lead a horse to water but you cannot make it float on its back." > ~Dakota Jack~ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]