Providers contain required properties and general properties. This chapter contains the following sections, which describe the general properties of providers.
By editing the provider properties in the display profile XML files, you can create customized display profile provider definitions. Any time you modify a display profile document, use the psadmin command (or the administration console) to store it in LDAP.
The Portal Server software sample portal display profile XML fragments define the default values for all expected properties, so that channels that use the supplied providers do not have to define all the properties, only the ones that need to be different.
Depending on the merge priorities and locking assigned to the display profile documents that make up a user’s display profile, the ultimate property values that are returned to a user’s Desktop can change.
The list of common properties for a <Provider> definition and their description is provided below. In addition to the following properties, there are properties that are used in specific providers. For example, the lines and maxLines properties are required by the notes provider code.
Specifies the title that appears in the channel title bar in the Desktop.
The description is displayed on the content page to give the user a little more information about what the channel is more. For example:
title: Bookmarks description: manage your portal-specific bookmarks
The refreshTime property controls how often a channel’s content is reloaded.
Specifies the edit type, either edit_complete or edit_subset. If edit_complete, the provider’s getEdit() method is responsible for generating the complete Edit page content. If edit_subset, a generic edit provider container is used to put a frame around the Edit page. The provider’s getEdit() page is then called, and displays the content of the Edit page.
Determines if the provider has an edit view. If true, the Edit button is generated in the channel title bar. By clicking the Edit button, users can display an Edit page and customize channel settings such as whether the channel is minimized or detached. The Edit page is generated by the Provider.getEdit() method.
If isEditable is false, no edit view is provided and no Edit button is generated in the title bar and users cannot change the settings for the channel. To implement an editable provider, the default no-operation implementations of ProviderAdapter.getEdit() and ProviderAdapter.processEdit() must be overridden.
If the provider has the getEdit() and processEdit() methods defined, you can change the value of isEditable from false to true to cause the Edit button to appear in the channel title bar.
A channel’s width setting is a suggestion for containing channels as to how much screen real estate the channel may require. This value is only a suggestion; a container is not required to utilize this value for its contained channels. Possible values are thin, thick, full_top, or full_bottom. In general, these values only make sense for an HTML-based Desktop.
Specifies the online help URL, which can be either a fully qualified URL value or a relative path to the doc root location. For example, the online help URL for the bookmark channel is:
This URL could also be defined as desktop/bmark.html. In this case, the provider context code figures out the doc root and the user locale, and locates the online help URL.
A return value of null signifies that this provider does not have a help page.
To have the provider code not generate a Help icon on the title bar for the channel, use a value of “”.
Specifies the default font face for the channel, for example, Sans-serif.
Specifies the name of the product, for example, Sun Java System Portal Server. This is not required by all providers.
Required properties and their values for the <Provider> definition are based on the Provider interface. The required properties are necessary for the provider code if the provider class extends ProviderAdapter or the ProfileProviderAdapter class. Note that the channel can set its own properties that override these values.
The authlessState property determines how client specific state is managed when the Desktop is operating in authless mode. Client specific state is accessed via the ProviderContext.get/setClientProperty() methods. The authlessState client type property can take on three values: client, server, and none. When set to:
client, authless state is stored on the client.
server, authless state is stored on the server.
none, no authless state is recorded and the ProviderContext.get/setClientProperty() methods have no effect.
By default, the authlessState client type property is not present, and defaults to client for HTML devices, and none for non-HTML devices. To modify the default value for a specific client type, add the authlessState client type property and set its value to either client, server, or none.
The encoderClassName client type property maps an encoding algorithm (class) to a specific client type. This information is used by the ProviderContext.escape() method to escape strings in a client type specific manner.
This provides a generic operation for retrieving conditional properties. The most common conditions are locale and clientType, but the API is generic in that it allows you to define and base properties on any sort of condition.
In the administration console, the conditional properties are displayed as condition-value and can be edited like collections. The conditional properties can be nested and can be added to a channel or inside another conditional property. Use the Add Property page to add a new conditional property.
The <ConditionalProperties> tag must be used to define the filtering criteria. The tag contains the following required attributes:
Specifies name of the filter
Specifies the value to be used in the filter
In the display profile, the <ConditionalProperties> tag can be defined as outlined in the following example.
<Properties> <String name="foo" value="bar"> <ConditionalProperties condition="locale" value="de"> <String name="foo" value="german bar"> <String name="baz" value="a german baz value"> </ConditionalProperties> <ConditionalProperties condition="client" value="nokia"> <ConditionalProperties condition="locale" value="de"> <String name="foo" value="nokia german bar"> </ConditionalProperties> </ConditionalProperties> </Properties>