Re: Embedding Mozilla with JavaXPCOM and AWT/Swing

"Grant Gayed" <[email protected]> Wed, 18 Jul 2007 09:22:44 -0400
Newsgroups gmane.comp.mozilla.devel.java
Message-ID <fIGdnf6jX-i4iQPbnZ2dnUVZ_qWtnZ2d__12112.5679267154$1184765124$gmane$org@mozilla.org>
Embedding swing/awt in swt is well supported on all platforms.  Links:

http://www.eclipse.org/swt/faq.php#swinginswt
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet135.java?view=co
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet154.java?view=co
http://www.eclipse.org/articles/article.php?file=Article-Swing-SWT-Integration/index.html

Grant


"Greg Bowyer" <[email protected]> wrote in message
news:[email protected]...
> Sorry had to spend a bit of time thinking about this, I am actually not
> a GUI programmer by trade :S
>
> Going back to hooky ways to pull this off, it might be possible to embed
> swing / awt inside SWT (I know this is a bit of a reverse of
> "Am I right or is there a way to add a SWT component to a Swing app?" )
>
> I am unsure about how well supported it is across platforms, and if it
> has issues with any advanced usages of swing, but otherwise it might be
> worth a look
>
>
http://wiki.eclipse.org/index.php/FAQ_How_do_I_embed_AWT_and_Swing_inside_SWT%3F
> and
>
http://www.eclipse.org/articles/Article-Swing-SWT-Integration/files/example-javadoc/swingintegration/example/EmbeddedSwingComposite.html
>
> Julien1311 wrote:
> > I already saw that I could use SWT. The problem is that I have to embed
my
> > browser in a already-done Swing application. I was planning to embed the
> > browser in a JPanel and to add the JPanel to the Swing app. I think it's
> > impossible to do such a thing with SWT. I've read that it's impossible
to
> > add SWT components to a Swing app, that's why I was looking for a way to
do
> > it with Swing/AWT.
> >
> > Am I right or is there a way to add a SWT component to a Swing app?
> >
> > Thanks for your help
> >
> >
> >
> > Greg Bowyer wrote:
> >> You can always have xulrunner powering the GUI as it sees fit, and call
> >> back into java via JavaXPCom
> >>
> >> An alternative might be to look at SWT and how the eclipse folk are
> >> doing xulrunner integration as this will work in all the major
platforms
> >> (ala
> >>
http://javier.pedemonte.us/blog/2007/05/22/mozilla-everywhere-in-swt-33/)
> >>
> >> As far as I am aware you *only* need to use JNI if you need to handroll
> >> the integration to the windowing / widget library yourself
> >> Sylvain Ferriol wrote:
> >>> Julien1311 wrote:
> >>>> Thanks for your help.
> >>>> Actually, I'm looking for something which could work on all the OS
> >>>> supported
> >>>> by XULRunner. I didn't manage to find any example but some
> >>>> explanations on
> >>>> the fact that I should use JNI.
> >>>>
> >>>> Could you explain why this code only works on Windows?
> >>> because under linux, swing uses X11 library but xulrunner uses GTK
> >>> library. So xulrunner needs a GTK window ID as parent window, not X11
> >>> window ID otherwise it crashs
> >>>> Is there somebody who has some other examples which could help me?
> >>>>
> >>>> Thanks
> >>>>
> >>>>
> >>>> Sylvain Ferriol wrote:
> >>>>> Julien1311 wrote:
> >>>>>> Hi everybody,
> >>>>> hi julien
> >>>>>> I'm trying to embed XULRunner into my Java application using
> >>>>>> JavaXPCOM.
> >>>>>> It
> >>>>>> seems really complicated for me. Is there someone who has already
> >>>>>> tried
> >>>>>> to
> >>>>>> do such a thing and who could give me its sources or a link toward
an
> >>>>>> example of embedded browser with AWT/Swing ? At least, for the JNI
> >>>>>> part.
> >>>>>>
> >>>>> you do not have to use jni, i attach my code for using javaXPCOM
> >>>>> using Swing but it works only under windows :(
> >>>>>
> >>>>> this code works with xulrunner 1.9
> >>>>>
> >>>>> an example for using JWeb class:
> >>>>>
> >>>>>     File grePath = new File("src/lib/xulrunner");
> >>>>>
> >>>>>     JWeb.start(grePath.getAbsolutePath());
> >>>>>     jweb = new JWeb();
> >>>>>
> >>>>>     JFrame frame = new JFrame();
> >>>>>     JPanel panel = new JPanel();
> >>>>>     panel.setLayout(new BorderLayout());
> >>>>>     panel.add(jweb, BorderLayout.CENTER);
> >>>>>     frame.getContentPane().add(panel);
> >>>>>
> >>>>>             frame.setVisible(true);
> >>>>>
> >>>>>     nsIWebProgress webProgress = (nsIWebProgress)
> >>>>> jweb.getInterface(nsIWebProgress.NS_IWEBPROGRESS_IID);
> >>>>>     nsIWebNavigation webNavigation = (nsIWebNavigation)
> >>>>> jweb.getInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
> >>>>>
> >>>>>     WebProgressListener aWebProgressListener = new
> >>>>> WebProgressListener();
> >>>>>     webProgress.addProgressListener(aWebProgressListener,
> >>>>>                  nsIWebProgress.NOTIFY_ALL);
> >>>>>     webNavigation.loadURI("http://www.debian.org",0,null,null,null);
> >>>>>
> >>>>>
> >>>>>> Thanks in advance.
> >>>>> _______________________________________________
> >>>>> dev-tech-java mailing list
> >>>>> [email protected]
> >>>>> https://lists.mozilla.org/listinfo/dev-tech-java
> >>>>>
> >>>>>
> >> _______________________________________________
> >> dev-tech-java mailing list
> >> [email protected]
> >> https://lists.mozilla.org/listinfo/dev-tech-java
> >>
> >>
> >
>