Extension Point for Contributing Tooling for XPages Controls

Identifier:
com.ibm.designer.domino.xsp.editor.component

Since:
IBM Domino Designer 8.5.3

Description:
This extension point is used to provide design time support for XPages controls. Clients interested in contributing tooling to IBM Domino Designer for their XPages controls should use this extension point to contribute custom properties panels and palette drop actions.

Configuration Markup:

<!ELEMENT extension (components+)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED

>

A 'universal' extension point that is used to contribute the tooling for XPage controls.



<!ELEMENT components (component+ , paletteInfo?)>

<!ATTLIST components

schemaUri          CDATA #REQUIRED

panelsFactory      CDATA #IMPLIED

id                 CDATA #REQUIRED

name               CDATA #IMPLIED

neverShowInPalette (true | false)

>

Container element that define the design time support for a particular schemaUri. It provides global behaviour through its factory attributes to each of its component elements. Note that in most cases, these factories can be overriden at the component level



<!ELEMENT paletteInfo (category)>

Generic Controls Palette information for this group of controls.



<!ELEMENT category EMPTY>

<!ATTLIST category

iconSmall   CDATA #IMPLIED

iconLarge   CDATA #IMPLIED

label       CDATA #IMPLIED

description CDATA #IMPLIED

visible     (true | false)

id          CDATA #IMPLIED

>

Provides Controls Palette drawer information. Note that each component may override, and provide alternative drawer information.



<!ELEMENT component (paletteItem? , panels? , alternateTags?)>

<!ATTLIST component

tagName              CDATA #REQUIRED

panelsFactory        CDATA #IMPLIED

neverShowInPalette   (true | false)

visualizationFactory CDATA #IMPLIED

>

Design time support of an individual XPages control. Each 'component' will typically have a paletteItem and panels item associated with it.



<!ELEMENT paletteItem EMPTY>

<!ATTLIST paletteItem

label       CDATA #IMPLIED

iconSmall   CDATA #IMPLIED

iconLarge   CDATA #IMPLIED

visible     (true | false)

description CDATA #IMPLIED

action      CDATA #IMPLIED

id          CDATA #IMPLIED

>

Palette Item information about the enclosed component.



<!ELEMENT panels (panel+)>

List of panel elements for the enclosed component element



<!ELEMENT panel EMPTY>

<!ATTLIST panel

title     CDATA #REQUIRED

id        CDATA #REQUIRED

indented  (true | false)

lazyInit  (true | false)

icon      CDATA #IMPLIED

contextId CDATA #IMPLIED

>

Property panel information. A panel element represents a single property panel tab in the attributes view.



<!ELEMENT alternateTags (alternateTagName+)>



<!ELEMENT alternateTagName EMPTY>

<!ATTLIST alternateTagName

tagName CDATA #REQUIRED

>

Describes alternative tags that use the same control information. For instance a text field and a password field might have identical tooling needs, in which case it would not be necessary to redefine the same information twice.



Examples:

 
<extension point="com.ibm.designer.domino.xsp.editor.component">
  <!-- Define the top level information such as the namespace URI for the library and the 
  factory that is to be used to create the Property Panels -->
  
  <components schemaUri="http://www.myco.com/xsp/ext" panelsFactory="com.myco.xpages.tooling.panels.MyPanelsFactory">
  <!-- Define a Palette Drawer -->
   <paletteInfo>
    <category iconSmall="icons/palette/mySmallComponents.gif" 
     iconLarge="icons/palette/myLargeComponents.gif" 
     label="My XPage Controls"
     description="XPage controls created via the XPages extensibility APIs"
     id="com.myco.mypalette.drawer.category" 
     visible="true">
    </category>
   </paletteInfo>
   
   
   <!-- Define the tooling for a particular control
   In this case we are tooling the pieChart control.-->
   
   <component tagName="pieChart"
   visualizationFactory="com.myco.charts.visual.BarChartFactory">
    <!-- Create a palette entry for the control -->
    <paletteItem label="Pie Chart" 
     iconSmall="icons/palette/pieChart_16.gif"  
     iconLarge="icons/palette/pieChart_24.gif"
     description="A pie chart control"
     visible="true">
    </paletteItem>
    
    <panels>
    <!-- We have three panels, Basics, Format and Data. 
    These panel IDs will be resolved by the panels factory-->
        <panel title="Basic" id="com.myco.charts.basic.panel.id"/>
        <panel title="Format" id="com.myco.charts.format.panel.id"/>
        <panel title="Data" id="com.myco.charts.pie.data.panel.id"/>
    </panels>   
   </component>
   
   <!-- Define the tooling for the barChart control -->
   
   <component tagName="barChart">
    <!-- Define the palette item -->
    <paletteItem label="Bar Chart" 
     iconSmall="icons/palette/barChart_16.gif"  
     iconLarge="icons/palette/barChart_24.gif"
     description="A bar chart control"
     class="com.myco.xpages.tooling.palette.BarChartDropAction"
     visible="true">
    </paletteItem>
    <panels>
    <!-- We have four panels, Basics, Format, Data, and Legend. 
    These panel IDs will be resolved by the panels factory-->
        <panel title="Basic" id="com.myco.charts.basic.panel.id"/>
        <panel title="Format" id="com.myco.charts.format.panel.id"/>
        <!-- Notice two of the IDs are the same as the previous control and two are different.
        This is because the two fictional controls have the exact same Basic and Format panels
        but have a different Data panels.
        -->
        <panel title="Data" id="com.myco.charts.bar.data.panel.id"/>
        <panel title="Legend" id="com.myco.charts.legend.panel.id"/>
    </panels>
   </component>
  </components>
 </extension>


 

API Information:
Clients who are interested in creating custom tooling for their XPage controls must implement the APIs corresponding to this extension point. It is strongly advised that clients extend the default implementation rather than re-implementing the interfaces entirely from scratch.

Supplied Implementation:
com.ibm.designer.domino.xsp.api.palette.XPagesPaletteDropActionDelegate is the default drop action delegate for all palette drop actions. Controls will use this action by default if not overridden by the component extension.


(C) Copyright IBM Corp. 2011, 2014