Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Wiki Markup
{scrollbar}

XUL 1.0 Extensions and the Pentaho XUL Namespace

The Pentaho XUL Specification Extension exists to accommodate extended adds extra functionality and components that are do not currently represented exist in the Mozilla XUL 1.0 specification. The elements and attributes listed below must be prefixed by the Pentaho namespace prefix in order for the Pentaho XUL Framework to recognize and render them properly. If another engine is processing the XUL, or the appropriate handlers are not available for the extended references, then the attribute or element will be ignored.

The Pentaho XUL Namespace

The Pentaho XUL namespace is "These Pentaho-specific elements are explained in later portions of this guide. In order to use them, you must use the Pentaho namespace prefix:

http://www.pentaho.org/2008/xul". When using extensions, this should

This must be placed on in the top level node in your XUL document with a namespace prefix, along with the default XUL namespace as default. Example:

Code Block
XMLXML

<window id="general-datasource-window"
    	title="Database Connection"
 	   orient="vertical"
    	height="605" width="700"
	    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
   	 xmlns:pen="http://www.pentaho.org/2008/xul"  >
	
   
    ...
	

Extension Elements

...

If another engine processes a XUL file that contains Pentaho-specific XUL extensions without calling the Pentaho namespace, or if the appropriate handlers are not available for the extended references, then the XUL engine will ignore those attributes and elements.

Extension Attributes Defined for All XUL Elements

The following attributes are common extensions to all XUL elements:

customclass

The customclass attribute allows you to override one of the standard component rendering classes with a custom class for that element. The String value of the customclass element should be the name of the handler that is mapped to the custom classname in the framework's loading engine.

The custom class customclass is required to implement the same interface that the standard element implements, in order to keep the functional code clean (without references to the custom components). For example, if I declare consider the following definition:

Code Block

 ...

<label id="custom-url-label" value="Custom Connection URL:" />
<textbox pen:customclass="variabletextbox" id="custom-url-text" />

...

Since the XUL textbox element renders an implementation of the XulTextbox interface, then the class that my "the variabletextbox" name maps to must also implement the XulTextbox interface. For an understanding of what interfaces are implemented for which elements, download the source and inspect the implementations of the XulLoader interface. The XulLoader impl classes hold the references to the handler mappings (element to implementing renderer Java class name).. This is the most common way to inject a customized component into the framework.

Wiki Markup
{scrollbar}