comp.lang.ada
 help / color / mirror / Atom feed
From: David Marceau <davidmarceau@sympatico.ca>
Subject: Re: GNAT and cross-platform GUI
Date: Mon, 27 Jan 2003 21:36:04 -0500
Date: 2003-01-27T21:36:04-05:00	[thread overview]
Message-ID: <3E35EC94.345831A7@sympatico.ca> (raw)
In-Reply-To: 3E35B974.BB6BEE@easystreet.com

achrist@easystreet.com wrote:
> 
> Here's another candidate:
> 
> http://www.japi.de/
> 
> I just noticed this looking at the GUI toolkit page the other day.
> It says that it has an Ada binding.  It provides an interface from
> a subset of the java GUI toolkit to other langues, including Ada.
> 
> Haven't tried it.
> 
> Al
> 
> root wrote:
> >
> > Is there any consensus on the best (quickest?) way to write GUI programs
> > in Ada?  I'm looking the links to the (free) packages I'd need. The plan
> > is to write the programs under Linux, but (unfortunately) a MSWindows
> > version will also be required.
> >
> > I don't have much experience with GTK yet -- guess that is about to change.
> >
> > Me

Hi there,

I took a look at JAPI you mentioned above. 

IMHO:
-most of the JDK api is missing i.e. AWT/SWING/JOBJECT services
-as a result Runnable Objects and Thread Objects may not be
instantiated.  This is important if you want any multi-task multi-thread
gui going on.
-the creation of the gui elements do have a flaw that japi team may have
regarded as a strength.  
JAPI GridLayout example creates a frame, creates four buttons, packs the
frame and then shows the frame.  
Where I would suggest more work into japi is to separate the concerns 
of creating the button instance from associating it with the frame as
done by default in just one step.   There should be many steps and for
good reason. 
i.e. step 1)create step 2)add ...
Why?  
In the japi context when you create the button, your layout order is the
same as the gui object creation order.
There may be cases where this might not be possible 
and especially if we're talking a multi-threaded gui which is
dynamically 
adding/removing runnable-gui-objects on the fly 
from a thread pool after the runnable has terminated. 
i.e. button1-4 could be associated to runnables.
-In this context you're going to need more information of
layout/ordering-gui-elements for on-the-fly packing/repacking. japi
doesn't have this.
-then there are the steps involved concerning removing listeners
on-the-fly and adding listeners on-the-fly. japi doesn't have this
either.  Please correct me if I am wrong.
-last but not least GridBagLayout is the most powerful layout manager
and should be supported.  japi doesn't have this.  Please correct me if
I am wrong.  I did see GridLayout but not GridBagLayout which is a whole
different ball-o-wax.

I don't want to be harsh on japi but I do want to highlight that when
there might be smoke and mirrors involved I prefer lifting up the fog to
put it on an even-level with the other GUI API's out there for ADA. 
Another way to measure bang per SDK would be LOCS if you have access to
source :)

IMHO Here are your alternatives for multi-platform GUI with Ada:
-Ada with Proprietary Microsoft COM.  Bristol Technologies sell a COM
implementation for Unix but only runs on certain unix os'es.
-Ada with OpenSource GNU AdaGTK runs on any UNIX/LINUX/Windows
-Double your gui effort and do it win32/Ada/COM route then do it in
Ada/X-Window
-do it with Ada to Java and maybe end up using it on anything that has a
jvm and an ada compiler i.e. J2ME/JAVACARD/JAVA bytecode
Goto the adapower site for ada-to-java solutions.
http://www.adapower.com
among them if I recall there is jgnat, cafe1815, adajni.  Now japi :)
There are others.
-Ada/TCL/TK/TASH
-Ada and straight to graphic hardware from Win32/UNIX without X.
-Ada straight to hardware both graphic and everything else.  No X no
Win32, so I gather this alternative is not for you :)

I hope this helps a bit. Good luck since there is a much work just to
decide which one will fit your needs best:)

Cheers,
David Marceau



  reply	other threads:[~2003-01-28  2:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-27 20:36 GNAT and cross-platform GUI root
2003-01-27 22:56 ` achrist
2003-01-27 22:57 ` achrist
2003-01-28  2:36   ` David Marceau [this message]
2003-01-28 14:48     ` root
2003-01-28 14:51     ` root
2003-01-28 23:23 ` R. Srinivasan
2003-01-29 12:27   ` Marc A. Criley
2003-01-29 17:15     ` Jano
2003-01-29 18:48       ` I. Marks
  -- strict thread matches above, loose matches on Subject: below --
2003-01-29 17:56 David C. Hoos
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox