Show / Hide Table of Contents

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, params 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.
It is strongly suggested that the convention of using name=value for each string array element be followed here. Also, names should be prefixed with the plugin name to distinguish them, in case more than one party injects values.

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. ///

Extension Methods

EnumUtil.MapEnums<From, To>(From)
Converters.MapEnums<From, To>(From)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top