Usages

Abstract Class

org.joget.apps.userview.model.UserviewMenu

Field Detail

Constants
REDIRECT_URL_PROPERTY
public static final java.lang.String REDIRECT_URL_PROPERTY = "userviewRedirectUrl";

Property key to set a url for redirection.

REDIRECT_PARENT_PROPERTY
public static final java.lang.String REDIRECT_PARENT_PROPERTY = "userviewRedirectParent";

Property key to set the redirection target to parent window. The property expecting "true" or "false" as value.

ALERT_MESSAGE_PROPERTY
public static final java.lang.String ALERT_MESSAGE_PROPERTY = "userviewAlertMessage";

Property key to set a alert message to show when a page loaded.

Method Detail

Abstract Methods
getCategory
public abstract java.lang.String getCategory()

Category to be displayed in Userview Builder palette 

getIcon
public abstract java.lang.String getIcon()

Icon path to be displayed in Userview Builder palette

getRenderPage
public abstract java.lang.String getRenderPage()

Get render HTML template for UI

isHomePageSupported
public abstract boolean isHomePageSupported()

Used to determine this menu item can used as home page or not.

getDecoratedMenu
public abstract java.lang.String getDecoratedMenu()

Get Decorated menu HTML for rendering.

Overridable Methods
getMenu
public java.lang.String getMenu()

Get menu html for rendering. It will call getDecoratedMenu method to retrieve the menu HTML. If empty value is return, a default menu HTML will be generated based on getURL method and "label" property.

getJspPage
public java.lang.String getJspPage()

Get path of JSP file to render the HTML template. If this value is not NULL, value returned by getRenderPage will be ignored.

It is used to use the system predefined template for rendering. Options are as following:

- userview/plugin/datalist.jsp

- userview/plugin/form.jsp

- userview/plugin/runProcess.jsp

- userview/plugin/unauthorized.jsp

Utility Methods
getUrl
public java.lang.String getUrl()

Gets URL of this menu

setUrl
public void setUrl(java.lang.String url)

Sets URL of this menu

getKey
public java.lang.String getKey()

Gets userview key of this menu

setKey
public void setKey(java.lang.String key)

Sets userview key of this menu

getRequestParameters
public java.util.Map getRequestParameters()

Gets request parameters

setRequestParameters
public void setRequestParameters(java.util.Map requestParameters)

Sets request parameters

getRequestParameter
public java.lang.Object getRequestParameter(java.lang.String requestParameter)

Convenience method to get a parameter value

getRequestParameterString
public java.lang.String getRequestParameterString(java.lang.String requestParameter)

Convenience method to get a parameter String value.

Return Empty string instead of NULL.

getReadyJspPage
public java.lang.String getReadyJspPage()

Used by the system to retrieve the JSP file page to avoid the logic to run again. It will called the getJspPage method once to initial the value.

getReadyRenderPage
public java.lang.String getReadyRenderPage()

Used by the system to retrieve the HTML template to avoid the logic to run again. It will called the getRenderPage method once to initial the value.

getUserview
public org.joget.apps.userview.model.Userview getUserview()

Gets the userview which this menu is belongs to.

setUserview
public void setUserview(org.joget.apps.userview.model.Userview userview)

Sets the userview which this menu is belongs to.

setRedirectUrl
public void setRedirectUrl(java.lang.String redirectUrl)

Set this property to force the userview to redirect to a specific URL.

setRedirectUrl
public void setRedirectUrl(java.lang.String redirectUrl, boolean redirectToParent)

Set this property to force the userview to redirect to a specific URL with option to redirect in the parent window.

setAlertMessage
public void setAlertMessage(java.lang.String message)

Set this property to display an alert message/prompt.

Plugin Properties Options

Mandatory Property

id

  • All Userview Menu Plugin must has this property appear in the Properties Options JSON. 
  • This is used by the system to store the dynamic generated UUID.
    {
        name : 'id',
        label : 'ID',
        type : 'hidden'
    }

customId

  • All Userview Menu Plugin must has this property appear in the Properties Options JSON. 
  • This is used for admin user to key in a desired menu id.
    {
        name : 'customId',
        label : '@@userview.datalistmenu.customId@@',
        type : 'textfield',
        regex_validation : '^[a-zA-Z0-9_]+$',
        validation_message : '@@userview.datalistmenu.invalidId@@'
    }

label

  • All Userview Menu Plugin must has this property appear in the Properties Options JSON. 
  • This is used for admin user to key in a display label for the menu.
    {
        name : 'label',
        label : '@@userview.datalistmenu.label@@',
        type : 'textfield',
        required : 'True',
        value : 'List'
    }

Userview Menu Plugin Template Sample

Following is a sample menu template of a HTML Page menu element. It is constructed using FreeMaker syntax. This template will be used and returned by getRenderPage method.

    public String getRenderPage() {
        PluginManager pluginManager = (PluginManager) AppUtil.getApplicationContext().getBean("pluginManager");

        Map dataModel = new HashMap();
        dataModel.put("element", this);
    
        return pluginManager.getPluginFreeMarkerTemplate(dataModel, getClassName(), "/templates/htmlPageMenu.ftl", null);
    }
<div class="ui-html">
    ${element.properties.content!}
</div>

Explanations

    • There are no specify format need to follow.
    • Please take note that your html template need to disable all user action when it is in preview mode. You decide it is preview mode or not by following code:
"true".equals(getRequestParameterString("isPreview")

Tutorials

Related Community Plugins

  • List Menu
    org.joget.apps.userview.lib.DataListMenu (wflow-core)
  • Form Menu
    org.joget.apps.userview.lib.FormMenu (wflow-core)
  • HTML Page
    org.joget.apps.userview.lib.HtmlPage (wflow-core)
  • Inbox
    org.joget.apps.userview.lib.InboxMenu (wflow-core)
  • Link
    org.joget.apps.userview.lib.Link (wflow-core)
  • Run Process
    org.joget.apps.userview.lib.RunProcess (wflow-core)
  • No labels