[OpenMap Users] OpenMap as a JINI service

From: Connell, Russell <russell.connell@dsto.defence.gov.au>
Date: Sun Apr 06 2003 - 19:29:37 EDT

(Apologies if this is sent twice... )

Good Morning all,
   I have been attempting to setup Openmap as a Jini service, in particular implementing ServiceUI code.
What this means in effect is that all the OpenMap classes are dowloaded from a remote webserver and then executed on a client machine.
The call to start openmap is on the client side ends up as
OpenMapServiceGUI.create().getMapBean();
which is a mostly straight forward copy of the basic comm.bbn.openmap.app.OpenMap code with some added bits for setting up the Jini side of the house.
and then initiates the class and resource downloading.

A few issues have arisen.
1: I would prefer to have the client decide when to show the OpenMap gui, this doesn't seem to be possible.
2: When I shut down the OpenMap window it takes the rest of the client with it. ( System.exit() ) and i am not entirely sure how I would
go about stopping that.
3: The previous two issues are minor annoyances.
4: When OpenMap finishes loading whenever I interact ( i.e. show/ cause a repaint ) with the MapBean when any layers are enabled I get the exception at the bottom of this email and the application has problems repainting itself...

  I have finally traced this back to the status layer lights on the InformationDelegator. There seems to be a problem with the image loading/repainting but I have been unable to trace exactly what is causing it. What I do know is that if I replace the following code in InformationDelegator
/**********************************************************************************************************************************/
    protected final static transient URL greenURL = InformationDelegator.class.getResource("green.gif");
    public final static transient ImageIcon greenIcon = new ImageIcon(greenURL, "stable ish");

with
/**********************************************************************************************************************************/
    public final static transient ImageIcon greenIcon = loadImageIcon( "green.gif" , "stable ish" );

    public static ImageIcon loadImageIcon( String resourceName , String comment)
    {
        try {
            java.io.BufferedInputStream bis = new java.io.BufferedInputStream( InformationDelegator.class.getResourceAsStream( resourceName ) );
            byte b[] = new byte[ bis.available() ];
            bis.read(b );
            ImageIcon icon ;
            if ( comment != null )
               icon = new ImageIcon( b , comment);
            else
               icon = new ImageIcon( b );
            bis.close();
            bis = null;
            b = null;
            return icon;
        } catch ( java.io.IOException e )
        {
        }
        return new ImageIcon();
    }

everything runs fine, both as a standalone application and as my JINI service.

any and all suggestions at this point would be useful, as my fix involves modifying bbn code which is a pest for integration with future releases.

comments
  the resources are there, and are downloaded fromt the server, and are loaded completely ( as far as i can tell, I check within InformationDelegator that the Image is
loaded fully ( using the MediaTracker )

Russell Connell
Combat Evaluation
Land Operations Division
Defence Science Technology Organisation
email russell.connell@dsto.defence.gov.au
Phone :08 8259 7660

java.lang.NullPointerException
        at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:50)
        at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:749)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2803)
        at sun.awt.image.ImageRepresentation.drawToBufImage(ImageRepresentation.
java:726)
        at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:756)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2803)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2793)
        at javax.swing.DebugGraphics.drawImage(DebugGraphics.java:1017)
        at javax.swing.ImageIcon.paintIcon(ImageIcon.java:337)
        at javax.swing.plaf.basic.BasicButtonUI.paintIcon(BasicButtonUI.java:328
)
        at javax.swing.plaf.basic.BasicButtonUI.paint(BasicButtonUI.java:248)
        at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
        at javax.swing.JComponent.paintComponent(JComponent.java:541)
        at javax.swing.JComponent.paint(JComponent.java:808)
        at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4771)

        at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4724)
        at javax.swing.JComponent._paintImmediately(JComponent.java:4668)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4477)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)

        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(System
EventQueueUtilities.java:117)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:197)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
 

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe openmap-users"]
Received on Sun Apr 6 19:50:58 2003

This archive was generated by hypermail 2.1.8 : Thu May 12 2005 - 07:18:35 EDT