Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: No JavaBeans support!?: [platform-swt-dev] java.awt.Image


I just finished writing a FAQ entry about java beans:

"
Will or can SWT be enhanced to include support for JavaBeans?  

To the extent that it makes sense, given the constraints of operating system compatibility, SWT already mirrors the beans behavior. An example of this is the use of standard beans mechanisms for event dispatch (EventListener, EventObject and adapter classes). Some aspects of the beans paradigm, such as the ability to create beans with null constructors, run counter to the constraints of the underlying operating systems that SWT runs on.  For example, operating systems do not typically support creating a widget without specifying its parent.
"

The essence of the problem is, if you allow a widget to be created with a null constructor, then you can't actually create the o/s resources at the time the constructor runs (you would have to wait until later, after the parent has been set). We just can not do this, since we *always* create the o/s resources in the constructor, and for performance/efficiency/consistancy reasons do not even keep slots in the object to hold whatever state would be required so that the object *could* be created later.

SWT widgets are not beans and will not become beans until the beans spec gets fixed.

McQ.



"Jess Terr" <jst@xxxxxxxxxxxxx>
Sent by: platform-swt-dev-admin@xxxxxxxxxxx

11/28/2001 02:56 AM
Please respond to platform-swt-dev

       
        To:        platform-swt-dev@xxxxxxxxxxx
        cc:        
        Subject:        No JavaBeans support!?: [platform-swt-dev] java.awt.Image


Thank you for clarification - but this means that under java2 and eclipse on linux I cannot use classes written according to JavaBeans specification!

Will there be an efford to fix it or such feature will be available just for windows?

For me this is a blocker - I love javabeans and I want to write more than one platform applications - I guess I should now relax for a while and wait if things get better over time.

Thank you both for all your answers.
jst


-----Original Message-----
From: "Silenio Quarti/OTT/OTI" <Silenio_Quarti@xxxxxxx>
Date: Tue, 27 Nov 2001 11:24:45 -0500
To: platform-swt-dev@xxxxxxxxxxx
Subject: Re: [platform-swt-dev] java.awt.Image


> Hi Jeff,
>
> This is a known problem. You will not be able to mix AWT and SWT
> widgets/components on Motif/Linux due to a linkage problem. Basically,
> the AWT library is linked to a different Motif library than SWT is. This
> causes conflicts which result in a GPF.
>
> Silenio
>
>
>
>
>
> "Jess Terr" <jst@xxxxxxxxxxxxx>
> Sent by: platform-swt-dev-admin@xxxxxxxxxxx
> 11/27/01 02:41 AM
> Please respond to platform-swt-dev
>
>  
>         To:     platform-swt-dev@xxxxxxxxxxx
>         cc:
>         Subject:        Re: [platform-swt-dev] java.awt.Image
>
> Thanks for reply Silenio.
> I have tried your suggestion, but my VM crashes. I tried to submit a bug
> to bugzilla, but I cannot login because of invalid password (the one I
> received contains space, maybe that is the problem - if somebody can fix
> it I'll be glad).
>
> So here is my bug report, see attached ZIP for demonstation case and log
> file for error I received.
>
> I am running Linux, sun's jdk1.3.1_01
>
> Regards.
> jst
>
>
>
> -----Original Message-----
> From: "Silenio Quarti/OTT/OTI" <Silenio_Quarti@xxxxxxx>
> Date: Mon, 26 Nov 2001 16:40:20 -0500
> To: platform-swt-dev@xxxxxxxxxxx
> Subject: Re: [platform-swt-dev] java.awt.Image
>
>
> > I believe the only possible way of doing what you want is by
> > getting the data out of the AWT image and create a SWT image
> > using that data.
> >
> > The code below shows how to do this. Keep in that the following
> > code does not handle all images properly. For e
> >
> >
> > import java.awt.Frame;
> > import java.awt.MediaTracker;
> > import java.awt.Toolkit;
> > import java.awt.image.*;
> > import org.eclipse.swt.*;
> > import org.eclipse.swt.widgets.*;
> > import org.eclipse.swt.graphics.*;
> >
> > public class AWTToSWTImage {
> >
> > public static void main(String[] args) throws Exception {
> >         Frame frame = new Frame();
> >
> >         java.awt.Image awtImage =
> Toolkit.getDefaultToolkit().getImage("c:\\temp\\upgray.gif");
> >         MediaTracker tracker = new MediaTracker(frame);
> >         tracker.addImage(awtImage, 0);
> >         tracker.waitForAll();
> >
> >         int width = awtImage.getWidth(null);
> >         int height = awtImage.getHeight(null);
> >         PixelGrabber grabber = new PixelGrabber(awtImage, 0, 0, width,
> height, true);
> >
> >         if (!grabber.grabPixels()) {
> >                 System.out.println("Error");
> >                 return;
> >         }
> >
> >         DirectColorModel cm =
> > (DirectColorModel)ColorModel.getRGBdefault();
> >         int[] pixels = (int[])grabber.getPixels();
> >
> >         PaletteData palette = new PaletteData(cm.getRedMask(),
> cm.getGreenMask(), cm.getBlueMask());
> >         ImageData data = "" ImageData(width, height, cm.getPixelSize(),
> palette);
> >         data.setPixels(0, 0, width * height, pixels, 0);
> >
> >         Display display = new Display();
> >         Shell shell = new Shell();
> >         final Image swtImage = new Image(display, data);
> >         shell.addListener(SWT.Paint, new Listener() {
> >                 public void handleEvent(Event e) {
> >                         GC gc = e.gc;
> >                         gc.drawImage(swtImage, 10, 10);
> >                 }
> >         });
> >         shell.setBounds(0, 0, 300, 300);
> >         shell.open();
> >
> >         while (!shell.isDisposed()) {
> >                 if (!display.readAndDispatch()) display.sleep();
> >         }
> > }
> >
> > }
> >
> >
> >
> >
> >
> >
> > "Jess Terr" <jst@xxxxxxxxxxxxx>
> > Sent by: platform-swt-dev-admin@xxxxxxxxxxx
> > 11/26/01 11:03 AM
> > Please respond to platform-swt-dev
> >
> >
> >         To:     platform-swt-dev@xxxxxxxxxxx
> >         cc:
> >         Subject:        [platform-swt-dev] java.awt.Image
> >
> > Hello.
> > I have tried to port my old AWT application to SWT and everything seemed
>
> > fine until I realized that AWT Image is not SWT Image.
> >
> > That also would not be problem, if I was in control of creation of that
> > image, but I am not. I just have plain reference to java.awt.Image and I
>
> > need a way to display it in SWT.
> >
> > I am not expert in AWT nor SWT, but I expect a lot of such people
> > subscribed to this mailing list. Can somebody help me, please?
> >
> > Thank you in advance.
> > jst
> >
> > --
> >
> > _______________________________________________
> > Sign-up for your own FREE Personalized E-mail at Mail.com
> > http://www.mail.com/?sr=signup
> >
> >
> > 1 cent a minute calls anywhere in the U.S.!
> >
> > http://www.getpennytalk.com/cgi-bin/adforward.cgi?p_key=RG9853KJ&url=""> > >
> > _______________________________________________
> > platform-swt-dev mailing list
> > platform-swt-dev@xxxxxxxxxxx
> > http://dev.eclipse.org/mailman/listinfo/platform-swt-dev
> >
> >
> >
> > _______________________________________________

> > platform-swt-dev mailing list
> > platform-swt-dev@xxxxxxxxxxx
> > http://dev.eclipse.org/mailman/listinfo/platform-swt-dev
> >
> >
>
> --
>
> _______________________________________________
> Sign-up for your own FREE Personalized E-mail at Mail.com
> http://www.mail.com/?sr=signup
>
>
> 1 cent a minute calls anywhere in the U.S.!
>
> http://www.getpennytalk.com/cgi-bin/adforward.cgi?p_key=RG9853KJ&url=""> >
>
>
>
> _______________________________________________
> platform-swt-dev mailing list
> platform-swt-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/platform-swt-dev
>
>

--

_______________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup


1 cent a minute calls anywhere in the U.S.!

http://www.getpennytalk.com/cgi-bin/adforward.cgi?p_key=RG9853KJ&url="">
_______________________________________________
platform-swt-dev mailing list
platform-swt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-swt-dev



Back to the top