--- title: Component Extensions order: 6 layout: page --- [[components.extensions]] = Component Extensions Components and UIs can have extensions which are attached to the component dynamically. Especially, many add-ons are extensions. How a component is extended depends on the extension. Typically, they have an [methodname]#extend()# method that takes the component to be extended as the parameter. [source, java] ---- TextField tf = new TextField("Hello"); layout.addComponent(tf); // Add a simple extension new CapsLockWarning().extend(tf); // Add an extension that requires some parameters CSValidator validator = new CSValidator(); validator.setRegExp("[0-9]*"); validator.setErrorMessage("Must be a number"); validator.extend(tf); ---- Development of custom extensions is described in <>.