Solved

Use Java3D AND Openmap

Posted on 2004-09-02
16
350 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
ID: 11961142
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
ID: 11961194
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
ID: 11961245
>  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
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:emmok
ID: 11961349
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
ID: 11961434
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
ID: 11961469
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
ID: 11961478
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
 

Author Comment

by:emmok
ID: 11961497
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
ID: 11961532
You might as well add all openmap source files in your project.
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11962453
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
ID: 11987758
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
ID: 11989360
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
ID: 11989591
Hi girionis,

I've just asked a question to community support,

Thanks
Bye!


 
0
 
LVL 35

Expert Comment

by:girionis
ID: 11990365
Fine by me.
0
 
LVL 1

Accepted Solution

by:
GhostMod earned 0 total points
ID: 12029973
PAQd, 150 points refunded.

GhostMod
Community Support Moderator
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
backtracking recursion  code 19 58
sites similar to codingbat to improve coding hanson skills 3 49
type mismatch (Object[] to double[] 4 24
mysql jsp example issue 32 33
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

770 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