...
- Custom Builder Plugin is used for extends to extend the builder feature in addition to the default form, list, userview & process builder.
- Custom Builder Plugin let app designer build extra definition which auto handles the load/store/merge/export/import by the platform.
- A useable usable Custom Builder Plugin must extend org.joget.apps.app.model.CustomBuilderAbstract abstract class.
...
- Please refer to Plugin Properties Options for more information.
Custom Builder Javascript Object
English |
---|
Utility methods and fields to use in the builder javascript. |
Fields
appId
The app id of current editing
appVersion
The app version of current editing
builderType
The builder object name return by the custom builder plugin
builderLabel
The builder object label return by the custom builder plugin
json
The JSON definition of current canvas
data
The dataobject of current canvas
paletteElements
The list of palette elements and its properties option and data.
Methods
CustomBuilder.callback(name, args)
To call a method by name
Parameters
- name - a method name.
- args - arguments to pass to the method call
CustomBuilder.initConfig(config)
To initialize the builder configuration by the platform
Parameters
- config - the configuration object.
CustomBuilder.initPropertiesOptions(options)
To initialize the builder properties tab by the platform
Parameters
- options - the builder properties options
CustomBuilder.initBuilder(callback)
To initialize the builder by the platform
Parameters
- callback - the callback method to call after builder initialized.
To show the builder properties in a popup editor.
CustomBuilder.saveBuilderProperties(container, properties)
To save the builder properties
Parameters
- container - the property editor container
- properties - the properties to save
CustomBuilder.initPaletteElement(category, className, label, icon, propertyOptions, defaultPropertiesValues, render, css, metaData)
To populate elements(plugins) in the side palette.
Parameters
- category - the category of the elements(plugins)
- className - the classname of the elements(plugins)
- label - the label of the elements(plugins)
- icon - the label of the elements(plugins)
- propertyOptions - the plugin properties options the edit the element(plugin)
- defaultPropertiesValues - the default properties values to set to a new element object added to canvas.
- render - set to false to not render the elements(plugins) in side palette
- css - the css class to palette element
- metaData - the additional data of the elements(plugins) to used by the builder
CustomBuilder.loadJson(json)
To load a json to the builder
Parameters
- json - the JSON definition to load
CustomBuilder.update(addToUndo)
Update the CustomBuilder.json based on the data stored in CustomBuilder.data
Parameters
- addToUndo - true to add the previous stored JSON definition to undo stack.
CustomBuilder.updateJson(json, addToUndo)
Update CustomBuilder.json to the pass in JSON.
Parameters
- json - the JSON definition to update to CustomBuilder.json.
- addToUndo - true to add the previous stored JSON definition to undo stack.
CustomBuilder.getJson()
Get the value in CustomBuilder.json.
CustomBuilder.mergeAndSave()
To save the builder JSON definition.
CustomBuilder.preview()
Preview the builder result of CustomBuilder.json in a new browser tab.
CustomBuilder.updateFromJson()
Update the CustomBuilder.json based on edited JSON in advance tool definition tab.
CustomBuilder.undo()
Load the latest stored JSON definition from undo stack and add current JSON definition to redo stack.
CustomBuilder.redo()
Load the latest stored JSON definition from redo stack and add current JSON definition to undo stack.
CustomBuilder.addToUndo(json)
Add JSON definition to undo stack.
Parameters
- json - the JSON definition to add to undo stack
CustomBuilder.adjustJson()
To trigger change event to update advance tools
CustomBuilder.updateSaveStatus(mode)
To update the save button status by the undo/redo function
Parameters
- mode - "+" or "-" to represent undo and redo
CustomBuilder.showMessage(message)
To fade in a message on top center of the builder
Parameters
- message - the message to show.
CustomBuilder.getCopiedElement()
To retrieve the current copied element.
Return a object with "type" and "object" attribute. The "object" is the element object.
CustomBuilder.copy(element, type)
To copy an element object to local storage.
Parameters
- element - the element object to copy
- type - the type of the element object
CustomBuilder.updatePasteIcon(type)
To enable/disable all paste icons based on the type
Parameters
- type - the type of the copied element
CustomBuilder.editProperties(elementClass, elementProperties)
To edit the properties of an element
Parameters
- elementClass - the element plugin class name
- elementProperties - the element properties to edit
CustomBuilder.uuid()
To generate uuid.
Create Custom Plugin Interface/Abstract Class for Custom Builder
- Create a maven project contains only plugin interface, abstract class and APIs. This maven project will share with other developers who want to extend the feature of a custom builder.
- Include the maven project as a dependency of the custom builder project.
Modify the custom builder project POM file to adding the package of plugin interface, abstract class and APIs to the <Export-Package>.
Code Block |
---|
|
<Export-Package>org.joget.pbuilder,org.joget.pbuilder.api.*</Export-Package> |
Register the plugin interface and abstract class in Activator class
Code Block |
---|
|
PluginManager.registerCustomPluginInterface(new CustomPluginInterface(PageWidget.class, "pageBuilder.pageWidget", PageBuilder.MESSAGE_PATH)); |
Sample Plugins
...