When you add custom vSphere objects, use the extension templates to make the vSphere Web Client user interface consistent.

vsphere.core.inventory.objectViewTemplate

Flex Client

HTML Client

Compatibility

yes

yes

Creates a complete object workspace for a given custom object type. When you create an instance of the objectViewTemplate, the vSphere Web Client generates an extension point for each of the standard object workspace tabs, second-level tabs, and views.

Requires the following variables:

namespace - plugin-specific prefix to use in all extension IDs of the template. A best practice is to use reverse domain naming, such as com.myCompany, to start the namespace name, followed by a unique extension name. For example, if your company name is Acme, and you create a plug-in for a custom object called Rack, you could use the namespace com.acme.plugin01.rack.

objectType - custom object type of the instance. Should be qualified with its own namespace to avoid collisions.

The objectViewTemplate creates extension points in the format namespace.extension-point-name. To continue the previous example, one extension point might be com.acme.plugin01.rack.monitorViews.

For the full list of object workspace extension points, see Custom Object Extension Points. A given tab does not appear in the vSphere Client or vSphere Web Client user interface unless you explicitly create an extension that references that tab's extension point.

Example:

<templateInstance id="com.vmware.samples.chassisb.viewTemplateInstance">
   <templateId>vsphere.core.inventory.objectViewTemplate</templateId>
   <variable name="namespace" value="com.vmware.samples.chassisb"/>
   <variable name="objectType" value="samples:ChassisB"/>
</templateInstance>

vsphere.core.inventorylist.objectCollectionTemplate

Flex Client

HTML Client

Compatibility

yes

yes

Creates an object collection node in the object navigator for a given custom object type.

Requires the following variables:

namespace - plugin-specific prefix to use in all extension IDs of the template. It must be different than the one in objectViewTemplate.

title - custom object title or its resource ID.

icon - 18x18 custom object icon resource ID.

objectType - custom object type of the instance. Should be qualified with its own namespace to avoid collisions.

listViewId - container view ID for the current object collection.

parentUid - extension ID of the category node which the current node belongs to.

Example:

<templateInstance id="com.vmware.samples.lists.allChassis">
   <templateId>vsphere.core.inventorylist.objectCollectionTemplate</templateId>
   <variable name="namespace" value="com.vmware.samples.chassisb_collection"/>
   <variable name="title" value="Chassis"/>
   <variable name="icon" value="#{chassis}"/>
   <variable name="objectType" value="samples:ChassisB"/>
   <variable name="listViewId" value="com.vmware.samples.chassisb.list"/>
   <variable name="parentUid" value="com.vmware.samples.chassisBCategory"/>
</templateInstance>