Interface ICustomUIProvider
Interface used by plugin modules that wish to declare a custom GUI, using the PageBuilder
Namespace: SuperOffice.UI.Configuration
Assembly: SuperOffice.Plugins.dll
Syntax
public interface ICustomUIProvider
Methods
GetCustomUi(String, String, String[])
Get a custom GUI for a given operation and client
Declaration
View GetCustomUi(string guiName, string clientHint, params string[] additionalData)
Parameters
Type | Name | Description |
---|---|---|
String | guiName | Name of GUI element requested. The name 'SuperOffice:DocumentDialog' is reserved and denotes the custom GUI view in the document dialog. Other custom GUI names are defined by the document (or other) plugin itself, and should be prefixed with the plugin name to keep them unique. |
String | clientHint | Client hint, currently SuperOffice:None', 'SuperOffice:6.Web' and 'SuperOffice:PocketCRM' are used. See the class Constants.Clients for predefined values. |
String[] | additionalData | Array of strings containing whatever additional data the plugin
may need. This parameter is intended for authors of more complex custom GUI's and works as
a tunnel between the ultimate client and the document plugin. Standard GUI made by SuperOffice,
such as a context menu connected to a document item in an archive, will not populate this
member. |
Returns
Type | Description |
---|---|
View | GUI structure, rooted in a View object. If there is no custom GUI for this name, null should be returned. |
Remarks
A custom GUI is declared as a View, containing one or more ControlGroups, in turn containing controls. Standard SuperOffice controls can be used for simpler GUI's, or a custom control with arbitrary internal logic can be implemented and requested through this mechanism.
The clienthint is used to inform the document plugin of what kind of client is at the other end. A document plugin or other custom UI provider is free to ignore this field, but may find it useful to adapt to gross differences between user interface platforms - for instance, large-screen Web vs. handheld device. Note that a plugin implementing this interface might choose to present a GUI directly when running in a context with direct access to the user, as on a Windows Client - in this case returning NULL as the return value (since the GUI has already been run by the time the call returns). On non-interactive clients that implement the PageBuilder controlled user interface (like 6.web), a declarative approach is used instead. ///