NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Eric- Eric Davies wrote:
At 11:24 AM 31/07/2007, Don Murray wrote:Hi Eric- Eric Davies wrote:I had a homebrew DataChooser working in an earlier version of IDL (pre plugin).Does that no longer work? If we broke something, let us know.I used to subclass IdvChooser, which meant that my subclass had java.awt.Component as a ancestor. Currently IdvChooser is subclassed from ChooserPanel which is not subclassed from anything. There was another place in the code that needs a javax.swing.JComponent instead of a java.awt.Component.Minor stuff, but enough to break my code of course.
Ugh! sorry about that. We'll be more careful about changing these chooser classes. We went to a paradigm of ChooserPanel having a getContents that is called instead of having it be the component itself. Can you point out which class has the Component/JComponent issue?
Given I have to update the code anyhow, I might as well convert my code to be a plugin, which I regard as a much more elegant way of adding components (compared to subclassing the main class, ugghh).
That's what we think as well.
I'm now trying rewire the code to be a plug-in. An example or two would be most appreciated.If you make a JAR file with the choosers.xml and the Java classes (with the the correct directory structure mimicking the package), you should be all set. Then with use the -plugin or -installplugin command line option to us it.Presumably, I get to throw out my class that extended IntegratedDataViewer?
You shouldn't have had to extend IntegratedDataViewer before to add in a custom chooser. You should have just needed to have the choosers.xml in your .metapps/DefaultIdv directory and the class file in your classpath. What mods did you need to make to IntegratedDataViewer?
Still, an example would be reassuring.
If you just want to add in a chooser, you should be able to create the JAR file as I described above. If you want to remove all the system choosers and just have yours you could add an idv.rbi which looks like: <?xml version="1.0" encoding="ISO-8859-1"?> <resourcebundle name="Default"> <!-- Where the xml is that defines the data choosers --><resources name="idv.resource.choosers" loadmore="false" removeprevious="true">
<resource location="/choosers.xml"/> </resources> </resourcebundle> The loadmore says not to load chooser resources from subsequent plugins and the removeprevious says remove any system choosers or choosers from previously loaded plugins. I've attached a sample plugin JAR file which has just the Files chooser in it. We're about to do a developer's workshop and the docs are at: http://www.unidata.ucar.edu/software/idv/release/nightly/docs/workshop/ which has a little more discussion of the architecture than past docs and examples of creating custom choosers, data sources, and displays under the Java Developer section. I'm cc'ing the list since this information should be useful to other developers. Don ************************************************************* Don Murray UCAR Unidata Program dmurray@xxxxxxxxxxxxxxxx P.O. Box 3000 (303) 497-8628 Boulder, CO 80307 http://www.unidata.ucar.edu/staff/donm *************************************************************
idvdevelopers
archives: