Solved

Use Java3D AND Openmap

Posted on 2004-09-02
16
346 Views
Last Modified: 2008-01-09
Hi all,

I hope I am in the right topic!
I would like to view a Java3D scene from an openmap map,
so I read on the openmap web site that an OM3DViewerLauncher is needed: it is a
com.bbn.openmap.gui.Tool and said to be a button, however, when I add it to the ToolPanel which extends the swing class JToolBar, I had a ClassCastE0.xception due to the ToolPanel method  areComponentsVisible, in fact OM3DViewerLauncher is not a Component.

Does any one know about this problem?
Can you please explain me many thanks!

emmok
0
Comment
Question by:emmok
16 Comments
 
LVL 35

Expert Comment

by:girionis
Comment Utility
What type is it? For some reason you are tyring to cast it to a parent object that it is not.
0
 

Author Comment

by:emmok
Comment Utility
Hi Girionis!

OM3DViewerLauncher class extends com.bbn.openmap.MapHandlerChild
and implements the Tool interface and ToolPanel extends javax.swing.JToolBar
implements java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, MapPanelChild, PropertyConsumer, java.awt.event.ComponentListener and we can add items using
add(Tool item, int index). So we can add a OM3DViewerLauncher  to a ToolPanel.
The problem is that in ToolPanel source code there is a method which casts items into Components, and I think the Exception comes from here.

public boolean areComponentsVisible() {
     Enumeration enum = items.elements();
     while (enum.hasMoreElements()) {
         Component comp = (Component)enum.nextElement();
         if (comp != filler && comp.isVisible()) {
             return true;
         }
     }
     return false;
 }

So what is the right solution for using an OM3DViewerLauncher...
Thanks very much!
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
>  and I think the Exception comes from here.

Can you make *sure* that the exception is there? What line does it indicate?

ALso what is the output of this:

System.out.println(enum.nextElement().getClass());
0
 

Author Comment

by:emmok
Comment Utility
Yes I'm sure the pb comes from what I explained,
I have this error :
java.lang.ClassCastException
      at com.bbn.openmap.gui.ToolPanel.areComponentsVisible(ToolPanel.java:581)
      at com.bbn.openmap.gui.ToolPanel.setVisibility(ToolPanel.java:575)
      at com.bbn.openmap.gui.ToolPanel.add(ToolPanel.java:216)
      at com.bbn.openmap.gui.ToolPanel.add(ToolPanel.java:239)
      at com.bbn.openmap.gui.ToolPanel.add(ToolPanel.java:226)

Just remind you that the ToolPanel is not "accessible" it is a class of the
openmap API and I can't change it, I can only use it. The source code is available on the openmap web site : http://openmap.bbn.com.
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
You won't change it, you just need to cast it to appropriate type. What type is the object you receive from the: enum.nextElement(); ?
0
 

Author Comment

by:emmok
Comment Utility
What I wanted to say is that I work on a customized application which uses
libraries and ToolPanel is normaly included in the openmap.jar!
How can I manipulate it???!!!!! I could just see the source code!?
 
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
Is it an open source? If yes then you should have the code already? Otherwise you can just decompile the jar files and get the source code.
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:emmok
Comment Utility
openmap is an open source, and since I have the code I could see the
internal method of the API class ToolPanel. But I am on Eclipse
and the project uses the jar file as a library!?  
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
You might as well add all openmap source files in your project.
0
 
LVL 12

Expert Comment

by:Giant2
Comment Utility
If you have the class files you can decompile them (you can use JAD for example to do this).
Normally an Opensource project is "open source", so you can download the source code from the site.
If you want to interact with source code in Eclipse, when you add the jar, specify where could be found the source code.

Hope this help you.
Bye, Giant.
0
 

Author Comment

by:emmok
Comment Utility
Hi Giant2, Hi girionis,

Thanks for your suggestions, I have the source code (since it is an open source) and the solution is use the getFace() method of the OM3DViewerLauncher class which returs a Container...

Thanks very much,
emmok
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
Hello emmok, if you feel you have been helped please accept an answer of split the points. Otherwise ask a question to community support (http://www.experts-exchange.com/Community_Support/) for zero points to PAQ this question and refund the points back to you.
0
 

Author Comment

by:emmok
Comment Utility
Hi girionis,

I've just asked a question to community support,

Thanks
Bye!


 
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
Fine by me.
0
 
LVL 1

Accepted Solution

by:
GhostMod earned 0 total points
Comment Utility
PAQd, 150 points refunded.

GhostMod
Community Support Moderator
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
This video teaches viewers about errors in exception handling.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now