How to Create Portlet Alternating Between Chart and HTML
The following example shows a dashboard logic which can switch to an HTML (e.g. such a nicely looking error message; here represented by the PFX logo) based on a condition (here represented by the 'decision').
def fields = [ [name: "String value", type: FieldFormatType.TEXT], [name: "Integer value", type: FieldFormatType.INTEGER], [name: "Numeric value", type: FieldFormatType.NUMERIC], [name: "Percent value", type: FieldFormatType.PERCENT], [name: "Date value", type: FieldFormatType.DATE], ]; def m = api.newMatrix(fields.collect{it -> it.name}); def rows = []; def d = new Date(); for (int i=0; i< 500; i++) { rows << ["string text "+i, i, 0.11*i, 0.01*i, d-i]; } fields.each {field -> m.setColumnFormat(field.name, field.type); } rows.each {row -> m.addRow((0..row.size()-1).collectEntries{index -> [fields[index].name, row[index]] }); } ///end matrix def controller = api.newController() controller.addHTML("<img src='https://www.pricefx.eu/site/wp-content/uploads/2016/02/logo.png' width=147 height=36/>") return decision() ? m : controller; boolean decision() { def m2 = new Date() return new BigDecimal(m2.getTime()).remainder( 2 ) != 0 }
Found an issue in documentation? Write to us.