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


Removed: org.neontoolkit.gui.navigatorDelete

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