From NeOn Wiki
This wiki page describes the major changes between the releases of NeOn Toolkit 1.2.x and NeOn Toolkit 2.3, which uses the OWL API. Here we will not discuss the issues resulting from the move to the new datamodel (i.e. OWL API, those issues can be found here) but the more UI related topics.
Contents |
New and modified plugins
Some existing plugins were renamed and restructured:
com.ontoprise.swt => org.neontoolkit.swt com.ontoprise.ontostudio.search => org.neontoolkit.search com.ontoprise.ontostudio.refactor => org.neontoolkit.refactor com.ontoprise.ontostudio.imports => org.neontoolkit.imports com.ontoprise.jpowergraph => org.neontoolkit.jpowergraph com.ontoprise.ontostudio.ontovisualize => org.neontoolkit.ontovisualize com.ontoprise.ontostudio.datamodel => org.neontoolkit.core com.ontoprise.ontostudio.io => org.neontoolkit.io
Some other plug-ins are new or result of some restructuring we did for the new release:
org.neontoolkit.core
The core plugin of the NeOn Toolkit. It contains the interfaces for ontology projects and their factories as well as the basic commands and exceptions. The core plugin replaces the org.neontoolkit.datamodel plugin as main datamodel plugin.
org.neontoolkit.io
This plugin contains general I/O functionalities such as basic import wizards, file system I/O access, WebDAV access, etc.
org.neontoolkit.gui
This plugin is still the basic UI plguin for the NeOn Toolkit. It contains now not only the extension points and some abstract classes, but also the implementation of the basic views (OntologyNavigator, EntityProperties, Results), basic TreeElements, etc. All these components are now datamodel independent.
org.neontoolkit.datamodel
The basic datamodel plugin based on the OntoBroker/KAON2 datamodel. It contains access methods to the OntologyManager of a project, etc. Contains the Factories for F-logic, RDF and OWL OntologyProjects based on the OntoBroker/KAON2 datamodel.
com.ontoprise.ontostudio.io
The I/O plugin for projects based on the OntoBroker/KAON2 datamodel. Contains additionally transformation methods to convert between different ontology languages.
Extension points
Due to the migration of some plug-ins also some extension points were renamed:
com.ontoprise.ontostudio.refactor.ontologyRefactorings => org.neontoolkit.refactor.ontologyRefactorings com.ontoprise.ontostudio.ontovisualize.visualizerContext => org.neontoolkit.ontovisualize.visualizerContext org.neontoolkit.flogic.datatypeDescriptors => com.ontoprise.ontostudio.flogic.datatypeDescriptors
Note: Accordingly, the IDs also have changed!!!
org.neontoolkit.core.ontologyProject
A new extension point has been introduced to delegate the creation of OntologyProjects to other plugins. An extension of this extension point defines a factory for OntologyProjects, consisting of an id and a class that implements org.neontoolkit.core.IOntologyProjectFactory.
<extension point="org.neontoolkit.core.ontologyProject"> <factory class="org.neontoolkit.datamodel.project.FlogicProjectFactory" id="org.neontoolkit.datamodel.project.FlogicProjectFactory"> </factory> </extension>
org.neontoolkit.gui.entityProperties
This is the central Extension point for implementing the content of the entity property view.
org.neontoolkit.gui.resultPage
This is an extension point for showing the results of searches queries etc. in a common UI
This extension point has become obsolete and has been removed. If you used the extension point, the description below describes how to adapt your plugins to the changes. The extension point org.neontoolkit.gui.navigatorDelete was used to hook a delete action to the global delete action that was overriden in the OntologyNavigator. Using this extension point, plugins could register classes that manage the delete operation for tree elements of a given type.
In NeOn Toolkit 2.3 shortcuts are provided for several context menu actions in the OntologyNavigator. This is realized by using commands, handlers and key bindings. In this context, the delete operation has been realized with a command with a key binding to the "DEL" key. The delete command is defined by the following identifier:
- org.neontoolkit.gui.navigator.deleteCommand
Plugins can now create handlers that implement the delete operation for specific tree elements and bind them to the delete command.
<handler class="org.neontoolkit.gui.navigator.project.DeleteProjectHandler" commandId="org.neontoolkit.gui.navigator.deleteCommand"> <activeWhen> <and> <iterate ifEmpty="false" operator="and"> <instanceof value="org.neontoolkit.gui.navigator.project.ProjectTreeElement"> </instanceof> </iterate> </and> </activeWhen> </handler>
The example defines a handler that manages delete operations if ProjectTreeElements are selected.
New and useful classes
The org.neontoolkit.gui plugin provides some useful interfaces and basic implementation of important GUI elements like the OntologyNavigator, the EntityProperties view and the new Results view.
For the org.neontoolkit.gui.entityProperties extension point there are some new Interfaces defined. Property pages that use the old IEntityPropertyPage interfaces will still work but in future we should use the new interfaces IPropertyPage and IMainPropertyPage
- IMainPropertyPage is the main page for an entity, which defines the header. This header will also show for sub-pages.
- A sub-page should implement the IPropertyPage interface.
- For these interfaces also basic implementations are available:
- AbstractMainIDPropertyPage
- AbstractIDPropertyPage