The primary intention here is to allow customers and 3rd party developers to extend Instant JChem and to build upon the core functionality in several different ways. IJC provides much of the basic functionality needed for chemical database work, with a number of ways to add specialized utilities on top of the existing API. This high level of extension and customizability provides a suite of chemistry-based research and registration tools which we hope can fit all your needs.
Developer documentation (mainly the JavaDocs) updated at a regular basis to keep the API in sync with the latest version of IJC. The IJC forums are an excellent place to see if your development needs have already been met by other users, or get advice on the best approach to developing your extension. We also maintain a list of suggested 'good practices' to encapsulate suggestions and tricks to improve your code.
There are three main approaches to extending IJC. They all share the same API , needing only language based interpretation (eg Groovy vs. Java implementation):
Groovy Scripting : This level of scripting happens within IJC, and is the easiest mechanism for end users. IJC comes with a simple script editor, and built in variables to help drive script development. This scripting ability can be used in several locations within the IJC architecture: on a dataTree, as part of a schema, as a form button, or as part of a calculated field. Because they are located on objects, they can be distributed as part of a shared project. However, if they are not in a shared environment, they can only be placed on another project by copying and pasting via email or document. Scripting within IJC is a new feature under continuous development. Currently, the editor is very simple, with limited feedback.
Java based plugins : Java based plugins are a NetBeans style module that allows extension of the IJC functionality, offering a level of power and complexity above Groovy scripting. For instance new items can be added to menus, and new wizards created. The more wide spread use of Java is often more comfortable to hard core Java developers, as well as having the option of writing in an IDE (with all that they offer). Plugins can be easily distributed to end users as part of the IJC distribution or as an update via the update center (distribution using Java Web start is currently not so simple). However, plugins are more complex than IJC-based Groovy scripts (see the basic Hello World script).
Stand-alone code : It is also possible to write your own code on top of the IJC platform. This is most suitable for command line tools or wanting to access the DIF without the GUI. This approach is not used often, but if you are interested, please contact IJC support .