Difference between revisions of "Frontend extensions"

From OpenKM Documentation
Jump to: navigation, search
(Created page with 'OpenKM plugin extensions makes it easy to extend the OpenKM end user interface by encapsulating plugin code and making it reusable between OpenKM versions. The OpenKM plugin ext…')
 
Line 19: Line 19:
 
* [[HelloWorld Example]]
 
* [[HelloWorld Example]]
 
* [[Enable example extensions]]
 
* [[Enable example extensions]]
* Extension
+
 
** [[TabWorkspaceExtension]]
+
== Extension ==
** [[TabDocumentExtension]]
+
* [[TabWorkspaceExtension]]
** [[ToolBarBoxExtension]]
+
* [[TabDocumentExtension]]
** [[TabFolderExtension]]
+
* [[ToolBarBoxExtension]]
** [[TabMailExtension]]
+
* [[TabFolderExtension]]
** [[ToolBarButtonExtension]]
+
* [[TabMailExtension]]
** [[MenuItemExtension]]
+
* [[ToolBarButtonExtension]]
** [[MenuBarExtension]]
+
* [[MenuItemExtension]]
* Handlers
+
* [[MenuBarExtension]]
** [[WorkspaceHandlerExtension]]
+
 
** [[NavigatorHandlerExtension]]
+
== Handlers ==
** [[DocumentHandlerExtension]]
+
* [[WorkspaceHandlerExtension]]
** [[FolderHandlerExtension]]
+
* [[NavigatorHandlerExtension]]
** [[ToolBarHandlerExtension]]
+
* [[DocumentHandlerExtension]]
** [[PropertyGroupHandlerExtension]]
+
* [[FolderHandlerExtension]]
** [[DashboardHandlerExtension]]
+
* [[ToolBarHandlerExtension]]
* Comunicators
+
* [[PropertyGroupHandlerExtension]]
** [[GeneralComunicator]]
+
* [[DashboardHandlerExtension]]
** [[WorkspaceComunicator]]
+
 
** [[NavigatorComunicator]]
+
== Comunicators ==
** [[FileBrowserComunicator]]
+
* [[GeneralComunicator]]
** [[TabDocumentComunicator]]
+
* [[WorkspaceComunicator]]
** [[TabFolderComunicator]]
+
* [[NavigatorComunicator]]
** [[TabMailComunicator]]
+
* [[FileBrowserComunicator]]
** [[UtilComunicator]]
+
* [[TabDocumentComunicator]]
** [[DashboardComunicator]]
+
* [[TabFolderComunicator]]
** [[SearchComunicator]]
+
* [[TabMailComunicator]]
* UI Constants
+
* [[UtilComunicator]]
** [[UIMenuConstants]]
+
* [[DashboardComunicator]]
** [[UIDesktopConstants]]
+
* [[SearchComunicator]]
** [[UIDockPanelConstants]]
+
 
** [[UISearchConstants]]
+
== UI Constants ==
** [[UIFileUploadConstants]]
+
* [[UIMenuConstants]]
 +
* [[UIDesktopConstants]]
 +
* [[UIDockPanelConstants]]
 +
* [[UISearchConstants]]
 +
* [[UIFileUploadConstants]]
 +
 
 +
 
 +
== Misc ==
 
* [[RPCService]]
 
* [[RPCService]]
 
* [[Widget library]]
 
* [[Widget library]]
* Best practice
+
 
** [[Adding RPC ( Remote Process Calls ) to server]]
+
== Best practices ==
** [[Internationalization]] [[File:Padlock.gif]]
+
* [[Adding RPC ( Remote Process Calls ) to server]]
 +
* [[Internationalization]] [[File:Padlock.gif]]
  
 
[[Category: Extension Guide]]
 
[[Category: Extension Guide]]

Revision as of 15:48, 11 May 2011

OpenKM plugin extensions makes it easy to extend the OpenKM end user interface by encapsulating plugin code and making it reusable between OpenKM versions.

The OpenKM plugin extension architecture is based on:

  • Extensions
  • Events
  • Handlers
  • Comunicators

Extensions are available widget definitions that allows the developer 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 occur ( for example when is added new keyword in tab document is fired event HasDocumentEvent.KEYWORD_ADDED)

Handlers are a collection of methods called internally by OpenKM. Handlers must be implemented into your extensions in order to collect OpenKM fired events. 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 Comunitators API to accessing transparently with some internal UI values. There are several Comunitators, for example with GeneralComunicator can access some general actions like refreshing UI as GeneralComunicator.refreshUI(). OpenKM Communicators API has read and write methods to interact with internal OpenKM UI objects.


Nota clasica.png Creating OpenKM plugin extensions is easy but you need some java knowledge and pay special attention to the Google Web ToolKit API that's used to build OpenKM UI. http://code.google.com/webtoolkit/

Extension

Handlers

Comunicators

UI Constants


Misc

Best practices