Linux Workshop 2004b: NumericalGecko Eclipse Plug-in
The project will implement an existing Java application as an Eclipse IDE plug-in.
The Java application is NumericalChameleon (NC), an open source project (GPL):
NC at SourceForge
NC is a powerful mathematical converter that converts numbers with a precision of up to 1000 significant figures. Its latest released version (1.5.1) supports more than 2300 units in 78 categories, including physics units, radixes, roman numerals, exchange rates, international dial codes, spoken numbers, Unicode, etc. NC has been hosted under SourceForge for more than two years, and has gained support and appreciation from the users and developers alike.
The project outcome will be an Eclipse plug-in, using the core of NC. As mentioned above, NC supports conversion of many units in diverse fields: computers, math, chemistry, physics and more. It is our belief that the target audience of the plug-in is any individual who develops an application relating to any of these fields using the Eclipse IDE (be it in Java, C++, or any of the other languages supported by Eclipse).
This individual may be, for example:
A scientist (physicist, mathematician, chemist, geologist or a student of any of these subjects) writing a scientific application. She will find the scientific units in NC useful.
A web developer developing a J2EE web application. He may find the exchange rates, calendar or international dial codes useful.
A student or a developer writing any sort of a computer application. They will find the radixes, Unicode and data storage conversions useful.
To summarize, the plug-in will offer any Eclipse developer the convenience and ease of use of a built-in converter, supporting virtually any kind of conversion.
There are no converter plug-ins for the Eclipse IDE. Developers use stand-alone applications (Java or others, such as NC), which are separate from the IDE. Naturally, these applications do not offer any integration with the IDE (such as copy & paste, refactoring, etc.). In addition, Eclipse plug-ins are open and extensible via their Extension Points API (unlike "traditional" applications), thus enabling developers to add their own conversion units, if necessary.
- Eclipse plug-in. Implementing NC as an Eclipse plug-in is the focal point of the project, and will include:
Extending and packaging NC core classes as an accessible API.
Building an Eclipse plug-in project using the Eclipse PDE (Plug-in development environment), according to plug-in standards. The plug-in will be an Eclipse View, and will use Eclipse Extension Points.
Designing an SWT GUI for the plug-in. The existing GUI cannot be reused: it is written in Swing (which isn't recommended for Plug-in development), and suits a Java application, not a plug-in (which is limited in space, etc.).
Seamless integration with the Eclipse IDE. For example, it will be possible to select text in the code editor and right-click it to provide it as input to the converter. It will then be possible to take the converter's output and use it as input for Eclipse refactoring tools, or just paste it back into the editor.
The plug-in will offer several new features and enhancements, and these will be incorporated in the existing NC application as well (in coordination with NC project administrator):
- Hebrew GUI support. NC GUI already supports several languages (English, German, French, Portuguese, Spanish, next version will include Greek). The project administrator is very keen to include Hebrew support in NC. It will include resources translation and RTL GUI.
- Preferences mechanism, for saving user's preferences such as last used conversion, frequently used units, etc.
- Improved conversions UI. Current conversion GUI allows conversion of one value or a list of consecutive values. The improved UI will allow conversion of multiple arbitrary values.
Improved exchange rates update. Current update of exchange rates is cumbersome and complicated, and entails saving a web page and parsing it. This mechanism can be improved by using the newer technology of web services: it will ensure the rates are always up-to-date without any user intervention.
Translation services. Multi-lingual translation feature can be added using one of the available online translation services.
New conversion units and categories , as well as additions to existing categories.