[kepler-dev] [Bug 4093] New: - allow kepler to use OS specific UI elements
bugzilla-daemon at ecoinformatics.org
bugzilla-daemon at ecoinformatics.org
Wed May 20 15:39:37 PDT 2009
http://bugzilla.ecoinformatics.org/show_bug.cgi?id=4093
Summary: allow kepler to use OS specific UI elements
Product: Kepler
Version: 1.x dev
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
Priority: P1
Component: build system
AssignedTo: berkley at nceas.ucsb.edu
ReportedBy: berkley at nceas.ucsb.edu
QAContact: kepler-dev at kepler-project.org
I've implemented an extension point in kepler to allow us to build OS specific
UI tweaks into kepler without breaking the build on other OS. Any module can
now have a modules-info/osextension.txt file. The file has two properties: an
OS that the extension runs on and a class that implements
org.kepler.OSExtension. The interface OSExtension has only one method
addOSExtensions() which allows the implementing class to do any tweaks
necessary at startup time.
The example use case is for OSX. We want kepler to look like a native OSX
application. The only way to do that is to use some OSX specific classes that
do not exist on windows or linux (hence any classes that depend on those break
the build for other OSs). The way this now works is there is a suite called
kepler-mac which has the same modules as kepler, but adds the appleExtension
module. The appleExtension module includes an implementation of OSExtension
plus the osextension.txt file. The osextension.txt file looks like this:
class=org.kepler.osx.KeplerOSXExtension
os=Mac OS X
When Kepler starts up, it checks all modules for the osextension.txt file. It
then looks at the current OS to see if the name java returns matches the OS
name in osextension.txt. If it does, it attempts to load the class defined in
the .txt file and run the addOSExtensions() method.
If you want to use the mac osx extensions, simply do 'ant change-to
-Dsuite=kepler-mac' and re-compile. You should see the native OSX menu bar
instead of the normal java one.
Additional tasks for the OSX extension is to add the about box into the
Applicaiton menu and to make the apple-q ask if you want to save before
terminating. Also need to fix the icon in the dock.
More information about the Kepler-dev
mailing list