Difference between revisions of "Extension Guide"

From OpenKM Documentation
Jump to: navigation, search
 
(35 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Warning|This section is still under contruction}}
+
OpenKM has a lot of interesting features, but it is not possible to meet all the special user requirements. For this reason, you can expand application features by implementing extensions. There are two families of extensions:
  
OpenKM allows to create your own plugin extensions.  
+
* [[Core extensions]]
 +
* [[Frontend extensions]]
 +
* [[Database Metadata]]
 +
* [[Javascript API]]
 +
* [[Extend automation]]
 +
* [[Extend OCR field parsers]]
 +
* [[C Sharp DLL|SDK for .net (C# - C Sharp)]]
 +
* [[SDK for Java]]
  
 
+
[[Category: Extension Guide]]
OpenKM plugin extensions makes more easilly to extends OpenKM end user interface encapsulating plugin code and making it rehusable between OpenKM versions.
 
 
 
 
 
The OpenKM plugin extension architecture is based on:
 
* Extensions
 
* Events
 
* Handlers
 
* Comunicators
 
 
 
 
 
'''Extensions are available widget definitions ''' that allows to make extensible panels and widgets ( for example adding new tab panel on tab document )
 
 
 
 
 
'''Events are a collection of events that OpenKM UI fires''' each time any changes happens ( for example when is added new keyword in tab document is fired event HasDocumentEvent.KEYWORD_ADDED)
 
 
 
 
 
'''Handlers are a collection of metods called internally by OpenKM'''. Handlers must be implemented into your extensions in order to collecting OpenKM fired events. With each extension you make can have one or several handlers, that are automatically registered by OpenKM on loading process. OpenKM internally fire events to each declared handler.
 
 
 
 
 
'''Comunicators are a collection of methods avaliable as OpenKM Comunitate API''' to accessing transparently with some internal UI values. There are several Comunitators, for example with GeneralComunicator can accessing to some general actions like refreshing UI as GeneralComunicator.refreshUI(). OpenKM Communicators API has read and write methods to interact with internal OpenKM UI objects.
 
 
 
 
 
{{Note|Create OpenKM plugin extension it's easy but you need some java knowledge and pay special attention at Google Web ToolKit API that's used to build OpenKM UI. http://code.google.com/webtoolkit/ }}
 
 
 
 
 
* [[HelloWorld Example]]
 
* [[Enable example extensions]]
 
* Extension
 
** [[TabWorkspaceExtension]]
 
** [[TabDocumentExtension]]
 
** [[ToolBarBoxExtension]]
 
** [[TabFolderExtension]]
 
** [[TabMailExtension]]
 
** [[ToolBarButtonExtension]]
 
** [[MenuItemExtension]]
 
** [[MenuBarExtension]]
 
* Handlers
 
** [[WorkspaceHandlerExtension]]
 
** [[NavigatorHandlerExtension]]
 
** [[DocumentHandlerExtension]]
 
** [[FolderHandlerExtension]]
 
** [[ToolBarHandlerExtension]]
 
** [[PropertyGroupHandlerExtension]]
 
** [[DashboardHandlerExtension]]
 
* Comunicators
 
** [[GeneralComunicator]]
 
** [[WorkspaceComunicator]]
 
** [[NavigatorComunicator]]
 
** [[FileBrowserComunicator]]
 
** [[TabDocumentComunicator]]
 
** [[TabFolderComunicator]]
 
** [[UtilComunicator]]
 
** [[DashboardComunicator]]
 
* [[Widget library]]
 
* Best practice
 
** [[Adding RPC ( Remote Process Calls ) to server]]
 
** [[Internationalization]] [[File:Padlock.gif]]
 
 
 
 
 
[[Category: OpenKM plugin extensions]]
 

Latest revision as of 08:48, 2 December 2013

OpenKM has a lot of interesting features, but it is not possible to meet all the special user requirements. For this reason, you can expand application features by implementing extensions. There are two families of extensions: